1. 13 Feb, 2020 5 commits
  2. 11 Feb, 2020 4 commits
    • Fabrice Bellet's avatar
      30d592e8
    • Fabrice Bellet's avatar
      agent: update the selected pair priority when foundation changes · dec008ca
      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().
      dec008ca
    • Fabrice Bellet's avatar
      a0b48d44
    • Fabrice Bellet's avatar
      agent: verify the best nominated pair after priorities recalculation · 8a3e8c76
      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.
      8a3e8c76
  3. 10 Feb, 2020 5 commits
    • Fabrice Bellet's avatar
      conncheck: send keepalive for candidates until connected state · 36d7f814
      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.
      36d7f814
    • Fabrice Bellet's avatar
      conncheck: fix peer-reflexive priority in discovered pair · 061c627e
      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.
      061c627e
    • Fabrice Bellet's avatar
    • Fabrice Bellet's avatar
      conncheck: do not create a pair from peer-reflexive local candidate · b72ba9fb
      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".
      b72ba9fb
    • Fabrice Bellet's avatar
      conncheck: prune oversized conncheck list based on pair state · 6afcb580
      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
      6afcb580
  4. 06 Feb, 2020 9 commits
  5. 05 Feb, 2020 2 commits
  6. 17 Dec, 2019 1 commit
    • Xavier Claessens's avatar
      Fix building doc when libnice is a subproject · d4ef6b69
      Xavier Claessens authored
      When passing strings to 'src_dir', they are assumed to be relative to
      the root source dir of main project. That's possibly a Meson bug, it
      should be relative to current source dir. In any case, it's better to
      use include_directories() to avoid any confusion.
      d4ef6b69
  7. 11 Dec, 2019 1 commit
  8. 06 Dec, 2019 3 commits
  9. 26 Nov, 2019 1 commit
    • Jakub Adam's avatar
      conncheck: fix long time to connect if conncheck list gets filled late · da7acb34
      Jakub Adam authored
      When a stream's conncheck list is empty during
      priv_conn_check_unfreeze_related() and the check pairs get added only
      afterwards, the whole list may remain in frozen state for tens of
      seconds until the lists of all other streams are completed.
      
      If a connection check list missed the opportunity to be unfrozen
      according to the process in RFC 5245 Section 7.1.3.2.3 because it was
      empty at the time, unfreeze it immediately once some check pair gets
      added.
      da7acb34
  10. 17 Sep, 2019 1 commit
  11. 05 Aug, 2019 2 commits
  12. 02 Aug, 2019 6 commits