1. 09 Oct, 2014 2 commits
  2. 25 Sep, 2014 1 commit
    • Philip Withnall's avatar
      agent: Check STUN buffer is non-NULL before getting its message ID · ec3783f7
      Philip Withnall authored
      This should fix a crash, as detected by Valgrind:
        ==28354== Invalid read of size 2
        ==28354==    at 0x4C2B5B0: memcpy@@GLIBC_2.14 (in
        ==28354==    by 0x50C17E2: stun_message_id (stunmessage.c:658)
        ==28354==    by 0x509E4E7: candidate_check_pair_fail (conncheck.c:254)
        ==28354==    by 0x50A4EDB: conn_check_prune_socket (conncheck.c:3145)
        ==28354==    by 0x509B6F8: component_io_cb (agent.c:3951)
  3. 24 Sep, 2014 1 commit
  4. 23 Sep, 2014 1 commit
  5. 22 Sep, 2014 3 commits
  6. 19 Sep, 2014 2 commits
    • Philip Withnall's avatar
      agent: Clear existing GSource timeouts before adding new ones · 5ed865fb
      Philip Withnall authored
      Modify agent_timeout_add_with_context() to force destroying and freeing
      of an existing GSource before overwriting it with a new one (probably
      with an updated timeout period).
      This fixes a case in priv_map_reply_to_relay_refresh() where the TURN
      candidate refresh timer was being overwritten with a new one, without
      the old one being destroyed. This lead to two timeouts existing, only
      one of which would be destroyed when the CandidateRefresh struct was
      freed, leaking the other one (in the main context) and allowing it to be
      later dispatched with a dangling CandidateRefresh pointer.
      The modification to agent_timeout_add_with_context() should prevent this
      happening in new code in future.
    • Philip Withnall's avatar
      agent: Add names to timer GSources · e5fbdbe6
      Philip Withnall authored
      Modify the agent_timeout_add_with_context() utility function to
      automatically add names to the timer GSources it creates. This makes
      them a little easier to identify when debugging.
  7. 01 Sep, 2014 2 commits
  8. 21 Aug, 2014 2 commits
  9. 12 Aug, 2014 1 commit
  10. 08 Aug, 2014 1 commit
  11. 31 Jul, 2014 1 commit
  12. 23 Jul, 2014 1 commit
  13. 17 May, 2014 6 commits
    • Youness Alaoui's avatar
      Add TCP server reflexive candidates · 9f0dfa2d
      Youness Alaoui authored
      For TCP server reflexive candidates, since STUN can't work on TCP
      candidates, we will use STUN on UDP or TCP and once we get an
      externally mapped address, we will create a server reflexive candidate
      for all local TCP candidates that share the same base address, and use
      the same mapped port as the base addresse's port.
    • Youness Alaoui's avatar
      Add some informative debug messaging · 31fb8f44
      Youness Alaoui authored
    • Youness Alaoui's avatar
      Add support for ICE-TCP · a6954838
      Youness Alaoui authored
      This is a massive commit that can't be split. We add ice-tcp support
      into the agent by creating local host tcp-active/tcp-passive candidates.
      We also need to find the local and remote candidates whenever we discover
      a peer-reflexive because their data is important to setup the peer-reflexive
      so a few changes were added to look for the local or remote candidate.
      For TCP-ACTIVE remote peer-reflexive candidates, we can't add conncheck
      pairs normally because TCP-PASSIVE (local) do not generate candidate pairs,
      and we also can't have a connection from any local host, so we can only create
      a single candidatepair with the local/remote that are connected.
      The pair->socket of a candidate check pair will hold the connected tcp socket
      (through connect for ACT or accept for PASS) and we will either have a
      remote or a local peer-reflexive which will create a new candidate pair,
      we cannot trigger checks on the initial candidate pair, we must only do it
      on the new check pairs. but in the case of a tcp-passive, we don't get a new
      local peer-reflexive candidate, so there is no new candidate with a new NiceSocket, so
      when we get a triggered check, we need to match it to the candidate check pair
      or when we select a pair, it will still use the original TCP-PASS socket.
      We must store the new connected tcp socket in the peer reflexive candidates
      since they represent that unique peer-reflx candidate's connection
    • Youness Alaoui's avatar
    • Youness Alaoui's avatar
    • Youness Alaoui's avatar
      Set pair->sockptr when discovering peer-reflexive candidates · 7923b33d
      Youness Alaoui authored
      Fixes Issue #1
  14. 15 May, 2014 16 commits