1. 09 Oct, 2014 4 commits
  2. 08 Oct, 2014 1 commit
  3. 26 Sep, 2014 3 commits
  4. 25 Sep, 2014 8 commits
  5. 24 Sep, 2014 1 commit
  6. 23 Sep, 2014 5 commits
  7. 22 Sep, 2014 6 commits
  8. 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
  9. 02 Sep, 2014 2 commits
  10. 01 Sep, 2014 4 commits
  11. 27 Aug, 2014 2 commits
    • Philip Withnall's avatar
      agent: Fix locking when calling component_free() · 754596c8
      Philip Withnall authored
      As mentioned in the previous commit message, component_free() requires
      the agent lock to be released, but component_close() requires it to be
      held. Fix the locking in nice_agent_remove_stream() to do that.
      754596c8
    • Philip Withnall's avatar
      agent: Split component_free() into component_[close|free]() · 56e04b56
      Philip Withnall authored
      Closing a component and freeing it are slightly conceptually different.
      As it happens, freeing it can result in the disposal of the component's
      NiceIOStream, which requires the agent lock to be released — but closing
      the rest of the Component requires the agent lock to be held. Splitting
      the function up simplifies locking handling in other parts of the code
      (see next commit).
      56e04b56
  12. 25 Aug, 2014 2 commits