1. 22 Jul, 2020 2 commits
    • Olivier Crête's avatar
      agent: Accept duplicated ports if no other option · 8fe72dce
      Olivier Crête authored
      Commit a04fa4d4 introduced a new feature to try to have a different port for every
      local candidate, even if they are on different interfaces. This breaks setups where the
      application really wants a specific port and sets a range of exactly 1 port or a very small range.
      In that case, if we can't find non-duplicated ports, then we just go around again and skip that check,
      but only if both ports are in the same stream and component. Otherwise, we fail the whole component!
    • Olivier Crête's avatar
      candidate: Make debug string functions public · 0b3d9f34
      Olivier Crête authored
      Adds new public APIs, nice_candidate_type_to_string() and
  2. 09 Jul, 2020 5 commits
  3. 26 Jun, 2020 1 commit
  4. 25 Jun, 2020 1 commit
    • Nirbheek Chauhan's avatar
      stund: Use lowercase winsock2.h · aa055b36
      Nirbheek Chauhan authored
      Windows ships with `WinSock2.h` but mingw ships with `winsock2.h`.
      This is fine on Windows because files are case-insensitive, but on
      Linux it causes the compiler to not find the header.
      All other #includes are lowercase, so just use that.
  5. 15 Jun, 2020 2 commits
  6. 22 May, 2020 16 commits
  7. 19 May, 2020 1 commit
    • Fabrice Bellet's avatar
      conncheck: do not always remove pair in triggered check list · 4c53dc2f
      Fabrice Bellet authored
      This patch reenables an interesting side effect that existed before
      commit 263c0903, when the state of a pair state in the triggered check
      list was changed to in-progress. Such "triggered" pairs with this state
      were selectively pruned from the conncheck list according to their
      priority in priv_prune_pending_checks(), meaning that pairs with a high
      priority were conserved, and quickly rechecked.
      Retrospectively, I suspect that this side effect was the initial
      motivation for changing the state of a "triggered" pair.
      Commit 263c0903 disabled that behaviour, for the sake of clarity, but it
      seems important to restore it, because these "triggered" pairs are often
      retriggered for a good reason, and frequently lead to a nominated pair.
      And loosing the opportunity to nominate a pair may be critical in
      controlled role when the peer agent is in aggressive nomination mode.
  8. 18 May, 2020 7 commits
  9. 14 May, 2020 3 commits
    • Fabrice Bellet's avatar
      conncheck: rework the stun requests ordering per timer tick · 72ccb1a2
      Fabrice Bellet authored
      With this patch, we merge the two variables stun_sent and
      keep_timer_going. The three functions that are a possible source of a
      new stun request returns a boolean value stating if a request has been
      sent.  The semantic of keep_timer_going can now be deduced from
      stun_sent and from the result of priv_conn_check_stream_nominate().
      The trick that makes this merge possible is to repurpose the return
      value of priv_conn_check_tick_stream(), because keep_timer_going set
      when the conncheck list contains in-progress pairs in this function is
      redundant with the same check later in function
    • Fabrice Bellet's avatar
      conncheck: explicitely order the type of stun requests per timer tick · 90c21bf9
      Fabrice Bellet authored
      With this patch, we try to make more explicit the process order between
      the different types of stun requets, according that only one request is
      sent per callback timer tick, ie every 20ms, to respect the stun pacing
      of the spec. We implement the follow priority:
       * triggered checks
       * stun retransmissions
       * ordinary checks
      In a concrete case, while a stream has stun requests related to
      triggered checks to be sent, all other stun transactions are delayed to
      the next timer ticks.
      The goal of this patch is to make this priority explicit, and more
      easily swappable if needed. Triggered checks have more probability to
      succeed than stun retransmissions, this is the reason why they are
      handled before. Ordinary checks on the contrary can be performed on a
      lower priority basis, after all other stun requests.
      The problem that can be sometime observed with a large number of stun
      transactions is that stun retransmissions may suffer from a delay after
      they have reached their deadline. This delay should remain small thanks
      to the design of the initial retransmission timer (RTO), that takes into
      account the overall number of scheduled stun requests. It allows all
      stun requests to be sent and resent at a predefined "pacing" frequency
      without much extra delay.
      This ordering not perfect, because stun requests of a given type are
      examinated per-stream, by looking at the first stream before the others,
      so it introduces a natural priority for the first stream.
    • Olivier Crête's avatar
      gitlab-ci: Actually gnore mingw failure · 3eadfe34
      Olivier Crête authored
  10. 13 May, 2020 1 commit
  11. 12 May, 2020 1 commit