1. 17 Sep, 2019 1 commit
  2. 05 Aug, 2019 2 commits
  3. 02 Aug, 2019 7 commits
  4. 01 Aug, 2019 1 commit
  5. 31 Jul, 2019 14 commits
  6. 30 Jul, 2019 2 commits
    • Fabrice Bellet's avatar
      conncheck: ignore selected pairs for nomination that failed · ae2fb900
      Fabrice Bellet authored
      When evaluating the stopping criterion, failed pairs from other streams
      having the "use_candidate_on_next_check" flag set should be
      ignored.
      
      This should normally not happen, because a pair selected for nomination
      has no reason to fail when being rechecked, since it previously
      worked... but it may happen with Skype for Business, when libnice
      selects a tcp pair for component 1, the peer seems to have no interest
      in the second component and lets it fail in the middle of the conncheck.
      ae2fb900
    • Fabrice Bellet's avatar
      conncheck: make the stopping criterion a bit more clear · 0176c2fa
      Fabrice Bellet authored
      This patch doesn't change the logic of the selection of the pair for
      nomination, it makes the code a bit more simple to read.
      0176c2fa
  7. 29 Jul, 2019 2 commits
    • Fabrice Bellet's avatar
      agent: fix a regression when updating foundations · acda4a08
      Fabrice Bellet authored
      A previous commit c1fb6f28 introduced a regression in the way the
      foundation of a selected pair is updated and signaled, when the
      foundation of its remote candidate changes. The previous comparison was
      made on *always* identical strings, so the update of the selected pair
      was *never* signaled.
      acda4a08
    • Fabrice Bellet's avatar
      conncheck: update a misleading debug statement · 1607f920
      Fabrice Bellet authored
      We may not have received remote candidates yet, but we may have
      discovered remote candidates from the early incoming checks. Only
      having stream credentials is required to react to these checks.
      1607f920
  8. 28 Jul, 2019 1 commit
  9. 22 Jul, 2019 1 commit
    • Jakub Adam's avatar
      discovery: Don't start STUN/TURN disco on errorneous socket · 702fcba9
      Jakub Adam authored
      If the initial attempt at sending discovery message returns a socket
      error, don't start the retransmit timer and immediately mark such
      discovery item as done. This is to quickly eliminate clearly
      non-functioning items from the discovery process.
      
      Particularly improves times to finish discovery on Windows, where
      sending data from a link-local (169.254.0.0/16) IP to a destination not
      on the same subnet leads to "A socket operation was attempted to an
      unreachable network" error. Pointless retransmissions on those sockets
      prolonged discovery in the order of seconds.
      702fcba9
  10. 19 Jul, 2019 2 commits
    • Jakub Adam's avatar
    • Fabrice Bellet's avatar
      agent: fix server-reflexive candidates with oc2007r2 · c2ace8ea
      Fabrice Bellet authored
      The nomination of a pair having such a local candidate breaks SfB when
      the libnice agent is behind a nat that does not do port mapping
      randomization. In that case a server reflexive local candidate usually
      lead to a nominated pair.
      
      The guess made here from observing this behavior is that, it is valid to
      discover and signal these local server reflexive candidates to our peer,
      but they should be removed from our local candidates list thereafter, so
      they do not contribute to build a valid and *even worse* a nominated
      pair with the type server-reflexive. They do not appear in the conncheck
      list per design anyway.
      
      Instead, the same candidate is discovered again later during the
      conncheck, with a peer-reflexive type this time, and with that type, it
      just works.
      
      Closes #90
      c2ace8ea
  11. 12 Jul, 2019 4 commits
    • Fabrice Bellet's avatar
      conncheck: avoid transport association mismatch · 85a5c0a0
      Fabrice Bellet authored
      In some rare cases, the same address and port number may match two
      remotes candidates, a tcp and an udp one, and lead to buggy pair
      construction with incompatible transport. This supplementary check
      prevents this problem. The matching test is not aimed to be exhaustive
      but just a way to discard obviously broken associations, and fallback to
      accept everything else (because socket type has a great diversity, with
      socket types based on other sockets types).
      
      It should fix #81, where such bogus transport association has been
      reported (tcp-pass:udp).
      85a5c0a0
    • Jakub Adam's avatar
      interfaces: ignore only interfaces we really want to · bd4b4781
      Jakub Adam authored
      Once an interface got ignored, ALL interfaces coming after it were
      dropped too.
      bd4b4781
    • Jakub Adam's avatar
      candidate: replace uint8_t -> guint8 · 8e6b8446
      Jakub Adam authored
      Fixes MSVC build.
      8e6b8446
    • Jakub Adam's avatar
      debug: fix verbose mode · e7237a6e
      Jakub Adam authored
      Since g_parse_debug_string() was looking only at the first 4 items in
      GDebugKey arrays, "libnice-verbose" couldn't get activated.
      e7237a6e
  12. 11 Jul, 2019 3 commits
    • Fabrice Bellet's avatar
      examples: fix compiler extra warnings · bb7bea87
      Fabrice Bellet authored
      bb7bea87
    • Fabrice Bellet's avatar
      agent: fix condition for turn-tcp discovery creation · d8d2c041
      Fabrice Bellet authored
      We support turn-tcp in oc2007 compatibility only and when the
      host candidate transport is compatible, ie when reliable_tcp is true.
      d8d2c041
    • Fabrice Bellet's avatar
      conncheck: test inbound stun address on the candidate base address · 0b70e024
      Fabrice Bellet authored
      When receiving an stun packet on a socket, and looking for the matching
      local candidate, normally it doesn't make a difference to test the
      address or the base address. Because a pair cannot have a local candidate
      of type srv-rflx, where there would be a difference, the local candidate
      obtained will be part of a pair of the conncheck list.
      
      Except for the case of a pairs with tcp-act local candidate, where the
      addr has a port number of zero (tcp-act socket before connect), and the
      socket of the stun packet has a non-null port number (tcp-act socket
      after connect), corresponding to the base address of another
      peer-reflexive tcp-act local candidate, previously discoverd.
      
      The selection of the local candidate concerned by an inbound stun
      request happens when early incoming checks are processed, and when
      inbound stun packets are normally received during the conncheck.
      
      This commit complete commit e6a19418 (for early incoming checks)
      in the normal inbound stun packets code path, where is similar
      modification is needed.
      0b70e024