summaryrefslogtreecommitdiff
path: root/third-party/pjproject/patches/0030-sip_transport-Destroy-transports-not-in-hash.patch
blob: e42b0f7c64adba8fd6a430dcc3a0d8bc95e8a046 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c
index e4bec24..a39b56e 100644
--- a/pjsip/src/pjsip/sip_transport.c
+++ b/pjsip/src/pjsip/sip_transport.c
@@ -957,7 +957,21 @@ static pj_bool_t is_transport_valid(pjsip_tpmgr *tpmgr, pjsip_transport *tp,
 				    const pjsip_transport_key *key,
 				    int key_len)
 {
-    return (pj_hash_get(tpmgr->table, key, key_len, NULL) == (void*)tp);
+    transport *tp_iter;
+
+    if (pj_hash_get(tpmgr->table, key, key_len, NULL) == (void*)tp) {
+        return PJ_TRUE;
+    }
+
+    tp_iter = tpmgr->tp_list.next;
+    while (tp_iter != &tpmgr->tp_list) {
+        if (tp_iter->tp == tp) {
+            return PJ_TRUE;
+        }
+        tp_iter = tp_iter->next;
+    }
+
+    return PJ_FALSE;
 }
 
 /*