From 5ae120449f6ba37bd4ac82d37c49f7ddf0d2d2a1 Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.com> Date: Tue, 17 Apr 2012 13:35:31 -0400 Subject: [PATCH] #9623: fixed tls registration --- daemon/src/sip/siptransport.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index 984947e4cd..3204df032e 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -294,14 +294,26 @@ SipTransport::createTlsTransport(const std::string &remoteAddr, pjsip_tls_setting *tlsSettings) { pjsip_transport *transport = NULL; + std::string ipAddr = ""; + int port = DEFAULT_SIP_TLS_PORT; + + DEBUG("SipTransport: Create sip transport on %s:%d at destination %s", interface.c_str(), tlsListenerPort, remoteAddr.c_str()); + + // parse c string + size_t pos = remoteAddr.find(":"); + if(pos != std::string::npos) { + ipAddr = remoteAddr.substr(0, pos); + port = atoi(remoteAddr.substr(pos+1, remoteAddr.length() - pos).c_str()); + } + else { + ipAddr = remoteAddr; + } pj_str_t remote; - pj_cstr(&remote, remoteAddr.c_str()); + pj_cstr(&remote, ipAddr.c_str()); pj_sockaddr_in rem_addr; - pj_sockaddr_in_init(&rem_addr, &remote, (pj_uint16_t) DEFAULT_SIP_TLS_PORT); - - DEBUG("SipTransport: Create sip transport on %s:%d at destination %s", interface.c_str(), tlsListenerPort, remoteAddr.c_str()); + pj_sockaddr_in_init(&rem_addr, &remote, (pj_uint16_t) port); // The local tls listener static pjsip_tpfactory *localTlsListener = NULL; @@ -309,6 +321,7 @@ SipTransport::createTlsTransport(const std::string &remoteAddr, if (localTlsListener == NULL) createTlsListener(interface, tlsListenerPort, tlsSettings, &localTlsListener); + DEBUG("SipTransport: Get new tls transport from transport manager"); pjsip_endpt_acquire_transport(endpt_, PJSIP_TRANSPORT_TLS, &rem_addr, sizeof rem_addr, NULL, &transport); -- GitLab