1. 02 Mar, 2020 10 commits
  2. 28 Feb, 2020 1 commit
  3. 17 Feb, 2020 2 commits
  4. 14 Feb, 2020 2 commits
    • Jakub Adam's avatar
      conncheck: Connection check reply must have a remote candidate · 502ddb83
      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.
      502ddb83
    • Jakub Adam's avatar
      conncheck: Typo fix · 7af761f3
      Jakub Adam authored
      7af761f3
  5. 13 Feb, 2020 9 commits
  6. 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
  7. 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
  8. 06 Feb, 2020 7 commits