conncheck: fix pruning conn checks with TCP active sockets
authorJakub Adam <jakub.adam@ktknet.cz>
Tue, 31 May 2016 09:27:03 +0000 (09:27 +0000)
committerOlivier CrĂȘte <olivier.crete@collabora.com>
Tue, 31 May 2016 18:24:24 +0000 (14:24 -0400)
TCP active socket makes a NiceSocket for each peer in conn_check_send()
and this new socket is then stored as CandidateCheckPair's 'sockptr'.
We thus have to look also at the 'sockptr' value when eliminating
sockets which have received HUP from connection checks.
Differential Revision: https://phabricator.freedesktop.org/D1034

agent/conncheck.c

index 70e35c5..57dba2f 100644 (file)
@@ -3659,7 +3659,8 @@ conn_check_prune_socket (NiceAgent *agent, NiceStream *stream, NiceComponent *co
     CandidateCheckPair *p = l->data;
 
     if ((p->local != NULL && p->local->sockptr == sock) ||
-        (p->remote != NULL && p->remote->sockptr == sock)) {
+        (p->remote != NULL && p->remote->sockptr == sock) ||
+        (p->sockptr == sock)) {
       nice_debug ("Agent %p : Retransmissions failed, giving up on "
           "connectivity check %p", agent, p);
       candidate_check_pair_fail (stream, agent, p);