From 62fdae5055cbdb936d809a15106d82316a391bf5 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 3 Mar 2009 17:21:26 +0000 Subject: [PATCH] Mon Mar 2 11:58:01 CST 2009 Pekka Pessi * nta.c: use already-resolved transport for CANCEL/ACK to [3456]XX git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12379 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/sofia-sip/.update | 2 +- libs/sofia-sip/libsofia-sip-ua/nta/nta.c | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index 2fdaa38096..d319ba2c0d 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Tue Mar 3 11:20:37 CST 2009 +Tue Mar 3 11:21:02 CST 2009 diff --git a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c index 08a53a4e02..287dead54d 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nta/nta.c +++ b/libs/sofia-sip/libsofia-sip-ua/nta/nta.c @@ -7679,7 +7679,17 @@ nta_outgoing_t *outgoing_create(nta_agent_t *agent, } } - if (route_url && !orq->orq_user_tport) { + if (tpn) { + /* CANCEL or ACK to [3456]XX */ + invalid = tport_name_dup(home, orq->orq_tpn, tpn); +#if HAVE_SOFIA_SRESOLV + assert(tport_name_is_resolved(orq->orq_tpn)); +#endif + resolved = tport_name_is_resolved(orq->orq_tpn); + orq->orq_url = url_hdup(home, sip->sip_request->rq_url); + scheme = "sip"; /* XXX */ + } + else if (route_url && !orq->orq_user_tport) { invalid = nta_tpn_by_url(home, orq->orq_tpn, &scheme, &port, route_url); if (override_tport) { /* Use transport protocol name from transport */ @@ -7692,15 +7702,6 @@ nta_outgoing_t *outgoing_create(nta_agent_t *agent, if (route_url != (url_string_t *)agent->sa_default_proxy) orq->orq_route = url_hdup(home, route_url->us_url); } - else if (tpn) { - invalid = tport_name_dup(home, orq->orq_tpn, tpn); -#if HAVE_SOFIA_SRESOLV - assert(tport_name_is_resolved(orq->orq_tpn)); -#endif - resolved = tport_name_is_resolved(orq->orq_tpn); - orq->orq_url = url_hdup(home, sip->sip_request->rq_url); - scheme = "sip"; /* XXX */ - } else { invalid = nta_tpn_by_url(home, orq->orq_tpn, &scheme, &port, (url_string_t *)sip->sip_request->rq_url);