- 02 Mar, 2020 7 commits
-
-
Fabrice Bellet authored
This is a unix-only test
-
Fabrice Bellet authored
-
Fabrice Bellet authored
The local preference of UDP candidates is (now) determined by the position of the IP address in the list returned by nice_interfaces_get_local_ips().
-
Fabrice Bellet authored
udp candidates failed to call nice_candidate_ip_local_preferences() and were all given the same local preference priority.
-
Fabrice Bellet authored
In a way similar to other stun packets, we add a delay of Timer TA (default is 20 ms) between each refresh candidate processing.
-
Fabrice Bellet authored
Keepalives STUN requests should not be sent for each local host candidate or each selected candidate in the single loop, but with a pacing of at least Timer TA (default is 20 ms) between each request. It remains compatible with a pause of Timer TR (default is 20 seconds) between each keepalives batch.
-
Fabrice Bellet authored
Only a single STUN request should be sent per discovery tick to enforce an overall pacing of 20ms per default between two STUN requests.
-
- 28 Feb, 2020 1 commit
-
-
Stefan Becker authored
This improves commit bd4b4781 There is a second place where this fix is needed.
-
- 17 Feb, 2020 2 commits
-
-
Olivier Crête authored
-
Olivier Crête authored
-
- 14 Feb, 2020 2 commits
-
-
Jakub Adam authored
Ensure that a conncheck reply is coming from an address and port of a known remote candidate and that the type of incoming socket matches that candidate's transport. Attemps to fix a Coverity issue in which no matching remote_candidate gets found for a connectivity reply in conn_check_handle_inbound_stun() (apparently due to transport mismatch), yet priv_map_reply_to_conn_check_request() still successfully matches it with a previous request.
-
Jakub Adam authored
-
- 13 Feb, 2020 9 commits
-
-
Fabrice Bellet authored
We display 32-bit candidate priorities in hexadecimal to identify each 8-bit-aligned field more easily: type preference, local preference, and component id. We display 64-bit pair priority by splitting their local and remote part. See RFC-8445, section 5.1.2.1. "Recommended Formula", and section 6.1.2.3. "Computing Pair Priority and Ordering Pairs".
-
Fabrice Bellet authored
This patch makes IPv6 link-local addresses obtain a unique ice local preference when computing their priority, by stripping the "%<interfacename>" added to them by getnameinfo(). Previously, all these addresses obtained the same preference value, since the whole local ips list was checked without finding a match.
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
Errors found by coverity
-
Olivier Crête authored
-
Olivier Crête authored
The order of the passed arguments doesn't match the prototype of the function. We exchange the local and remote candidates.
-
Olivier Crête authored
-
Olivier Crête authored
-
- 11 Feb, 2020 4 commits
-
-
Fabrice Bellet authored
-
Fabrice Bellet authored
The component selected pair priority may have its priority modified if the foundation of its remote candidate changes. This update needs to be recorded, even if its not signalled, since this value is used in the conncheck in priv_update_selected_pair().
-
Fabrice Bellet authored
-
Fabrice Bellet authored
When we get a set_remote_candidate late after the start of the conncheck, some remote candidates type may change from peer-reflexive to server-reflexive. This required a recalculation of the foundations and of the priorities of the related pairs. This recalculation may change the pairs ordering in the conncheck list: a srflx:prflx pair becoming a srflx:srflx pair will have a lower priority (RFC 8445, section 5.1.2.1 "Recommended Formula", "the type preference for peer-reflexive candidates MUST be higher than that of server-reflexive candidates.") This recalculation is required to maintain the same pairs ordering in both agent. But in some cases, in aggressive nomination mode, this may also change the selected pair, if this recalculation changed the highest priority pair with the nominated flag.
-
- 10 Feb, 2020 5 commits
-
-
Fabrice Bellet authored
We can start sending keepalive stun request for the selected pair, and stop sending keepalive for candidates as soon as the conncheck reaches state connected and not ready.
-
Fabrice Bellet authored
The peer-reflexive priority used in the STUN request is copied from the parent succeeded pair to the discovered pair. This value is not required for discovered pair, that won't emit stun requests themselves, but may be used when such pair becomes the selected pair, and when keepalive stun are emitted, using the sockptr and prflx_priority values from the succeeded pair.
-
Fabrice Bellet authored
-
Fabrice Bellet authored
The usual case when forming the initial conncheck list from local and remote candidates is to discard server-reflexive local candidates, since the agent can not send requests directly from these candidates. But it also may happen, when the remote candidates are received late after the beginning of the conncheck, that we also have discovered peer-reflexive local candidates, that must be discarded as well. See RFC 8445, section 6.1.2.4 "Pruning the Pairs".
-
Fabrice Bellet authored
Removing lower-priority pairs to keep the conncheck list under a fixed size (RFC 8445, sect 6.1.2.5) may accidently remove pairs that we want to preserve, like succeeded and discovered pairs. We choose to only remove pairs that are not engaged yet in the connection check processing, those in frozen state. Fixes #95
-
- 06 Feb, 2020 9 commits
-
-
sergey radionov authored
fix #99
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
-
Olivier Crête authored
This setup stores more debug info
-
Olivier Crête authored
We're not sure that our callback will be called again if we haven't filled the pipe.
-
- 05 Feb, 2020 1 commit
-
-
Fabrice Bellet authored
-