1. 09 Oct, 2014 1 commit
  2. 23 Sep, 2014 1 commit
  3. 22 Sep, 2014 1 commit
    • Philip Withnall's avatar
      agent: Remove dangling pointers on NiceSocket destruction · f6337b53
      Philip Withnall authored
      If a NiceSocket is destroyed, various pointers are currently left
      dangling to it in the conncheck state. These can cause crashes if (for
      example) a CandidateCheckPair with such a dangling pointer is then used;
      the GSocket methods will fail.
      
      Fix this by explicitly removing the socket and all NiceCandidates which
      wrap it from various areas of the state.
      f6337b53
  4. 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.
      5ed865fb
    • 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.
      e5fbdbe6
  5. 25 Jul, 2014 1 commit
  6. 23 Jul, 2014 1 commit
  7. 17 May, 2014 8 commits
    • Olivier Crête's avatar
      agent: Separate reliability from ice-tcp vs ice-udp · 18e5dff4
      Olivier Crête authored
      We want ICE-TCP to not have reliable behavior unless the agent
      is reliable otherwise it will confuse existing VoIP applications.
      18e5dff4
    • Olivier Crête's avatar
      discovery: Make it less likely that a locally assigned remote foundation... · 4b7ae860
      Olivier Crête authored
      discovery: Make it less likely that a locally assigned remote foundation clashes with the remote one.
      4b7ae860
    • Olivier Crête's avatar
      discovery: Compare turn server when assigning foundations · 9be4b5a0
      Olivier Crête authored
      The RFC says that "for reflexive and relayed candidates, the STUN or TURN servers
      used to obtain them have the same IP address."
      9be4b5a0
    • Olivier Crête's avatar
      291ead7a
    • Olivier Crête's avatar
    • Olivier Crête's avatar
      discovery: Differentiate socket creation failure from other errors · 747364e2
      Olivier Crête authored
      If the socket can't be bound, then trying another port makes sense,
      otherwise it doesn't.
      747364e2
    • 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.
      9f0dfa2d
    • 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
      a6954838
  8. 15 May, 2014 7 commits
  9. 25 Apr, 2014 6 commits
  10. 01 Apr, 2014 1 commit
  11. 31 Mar, 2014 1 commit
  12. 24 Feb, 2014 1 commit
  13. 31 Jan, 2014 3 commits
  14. 18 Dec, 2013 1 commit
  15. 30 Apr, 2012 1 commit
  16. 09 Feb, 2012 1 commit
    • Madaro Livio's avatar
      Disable retransmission of turn messages for reliable socket. · e4eb5659
      Madaro Livio authored
      If a client connects to a TURN server using a reliable socket (TCP)
      then retransmission of TURN messages (allocation request) is not needed.
      Libnice 0.1.1 retransmit the TURN messages (allocation request) in the
      same way for reliable (TCP) and not reliable (UDP) socket.
      e4eb5659
  17. 21 Sep, 2011 1 commit
  18. 21 Jan, 2011 1 commit
  19. 01 Oct, 2010 1 commit