diff options
Diffstat (limited to 'third-party/pjproject/patches/0001-sip_transport-Search-for-transport-even-if-listener-.patch')
-rw-r--r-- | third-party/pjproject/patches/0001-sip_transport-Search-for-transport-even-if-listener-.patch | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/third-party/pjproject/patches/0001-sip_transport-Search-for-transport-even-if-listener-.patch b/third-party/pjproject/patches/0001-sip_transport-Search-for-transport-even-if-listener-.patch deleted file mode 100644 index 001912cfe..000000000 --- a/third-party/pjproject/patches/0001-sip_transport-Search-for-transport-even-if-listener-.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 552194179eb6deae8326eb0fef446e69240ea41b Mon Sep 17 00:00:00 2001 -From: George Joseph <george.joseph@fairview5.com> -Date: Fri, 19 Feb 2016 17:05:53 -0700 -Subject: [PATCH] sip_transport: Search for transport even if listener was - specified. - -If a listener was specified when calling pjsip_tpmgr_acquire_transport2, -a new transport was always created instead of using an existing one. This -caused several issues mostly related to the remote end not expecting a new -connection. I.E. A TCP client who registered to a server is not going to -be listening for connections coming back from the server and refuses the -connection. - -Now when pjsip_tpmgr_acquire_transport2 is called with a listener, the -registry is still searched for an existing transport and the listener -is used as a factory only if no existing transport can be found. ---- - pjsip/src/pjsip/sip_transport.c | 68 ++++++++++++++++++++--------------------- - 1 file changed, 34 insertions(+), 34 deletions(-) - -diff --git a/pjsip/src/pjsip/sip_transport.c b/pjsip/src/pjsip/sip_transport.c -index 0410324..620b9c0 100644 ---- a/pjsip/src/pjsip/sip_transport.c -+++ b/pjsip/src/pjsip/sip_transport.c -@@ -1999,29 +1999,11 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr, - - TRACE_((THIS_FILE, "Transport %s acquired", seltp->obj_name)); - return PJ_SUCCESS; -- -- -- } else if (sel && sel->type == PJSIP_TPSELECTOR_LISTENER && -- sel->u.listener) -- { -- /* Application has requested that a specific listener is to -- * be used. In this case, skip transport hash table lookup. -- */ -- -- /* Verify that the listener type matches the destination type */ -- if (sel->u.listener->type != type) { -- pj_lock_release(mgr->lock); -- return PJSIP_ETPNOTSUITABLE; -- } -- -- /* We'll use this listener to create transport */ -- factory = sel->u.listener; -- - } else { - - /* - * This is the "normal" flow, where application doesn't specify -- * specific transport/listener to be used to send message to. -+ * specific transport to be used to send message to. - * In this case, lookup the transport from the hash table. - */ - pjsip_transport_key key; -@@ -2081,22 +2063,40 @@ PJ_DEF(pj_status_t) pjsip_tpmgr_acquire_transport2(pjsip_tpmgr *mgr, - return PJ_SUCCESS; - } - -- /* -- * Transport not found! -- * Find factory that can create such transport. -- */ -- factory = mgr->factory_list.next; -- while (factory != &mgr->factory_list) { -- if (factory->type == type) -- break; -- factory = factory->next; -- } -+ if (sel && sel->type == PJSIP_TPSELECTOR_LISTENER && -+ sel->u.listener) -+ { -+ /* Application has requested that a specific listener is to -+ * be used. -+ */ -+ -+ /* Verify that the listener type matches the destination type */ -+ if (sel->u.listener->type != type) { -+ pj_lock_release(mgr->lock); -+ return PJSIP_ETPNOTSUITABLE; -+ } - -- if (factory == &mgr->factory_list) { -- /* No factory can create the transport! */ -- pj_lock_release(mgr->lock); -- TRACE_((THIS_FILE, "No suitable factory was found either")); -- return PJSIP_EUNSUPTRANSPORT; -+ /* We'll use this listener to create transport */ -+ factory = sel->u.listener; -+ -+ } else { -+ /* -+ * Transport not found! -+ * Find factory that can create such transport. -+ */ -+ factory = mgr->factory_list.next; -+ while (factory != &mgr->factory_list) { -+ if (factory->type == type) -+ break; -+ factory = factory->next; -+ } -+ -+ if (factory == &mgr->factory_list) { -+ /* No factory can create the transport! */ -+ pj_lock_release(mgr->lock); -+ TRACE_((THIS_FILE, "No suitable factory was found either")); -+ return PJSIP_EUNSUPTRANSPORT; -+ } - } - } - --- -2.5.0 - |