From 63b32dfdea77284d58d4f21da6c7d67e419008ba Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.com> Date: Tue, 17 Apr 2012 10:35:44 -0400 Subject: [PATCH] #9623: Allow for changing interface / port for tls transport --- daemon/src/sip/siptransport.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/daemon/src/sip/siptransport.cpp b/daemon/src/sip/siptransport.cpp index e173692794..984947e4cd 100644 --- a/daemon/src/sip/siptransport.cpp +++ b/daemon/src/sip/siptransport.cpp @@ -249,10 +249,13 @@ pj_status_t SipTransport::destroyStunResolver(const std::string &serverName) void SipTransport::createTlsListener(const std::string &interface, pj_uint16_t tlsListenerPort, pjsip_tls_setting *tlsSetting, pjsip_tpfactory **listener) { + pj_status_t status; pj_sockaddr_in local_addr; pj_sockaddr_in_init(&local_addr, 0, 0); local_addr.sin_port = pj_htons(tlsListenerPort); + DEBUG("SipTransport: Create TLS listener %s:%d", interface.c_str(), tlsListenerPort); + if (tlsSetting == NULL) { ERROR("SipTransport: Error TLS settings not specified"); return; @@ -274,15 +277,13 @@ void SipTransport::createTlsListener(const std::string &interface, pj_uint16_t t } pj_str_t pjAddress; - pj_cstr(&pjAddress, PJ_INADDR_ANY); + pj_cstr(&pjAddress, listeningAddress.c_str()); pj_sockaddr_in_set_str_addr(&local_addr, &pjAddress); + pj_sockaddr_in_set_port(&local_addr, tlsListenerPort); - pjsip_host_port a_name = { - pj_str((char*) listeningAddress.c_str()), - local_addr.sin_port - }; - - pjsip_tls_transport_start(endpt_, tlsSetting, &local_addr, &a_name, 1, listener); + status = pjsip_tls_transport_start(endpt_, tlsSetting, &local_addr, NULL, 1, listener); + if(status != PJ_SUCCESS) + ERROR("SipTransport: Error Failed to start tls listener"); } @@ -300,6 +301,8 @@ SipTransport::createTlsTransport(const std::string &remoteAddr, 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()); + // The local tls listener static pjsip_tpfactory *localTlsListener = NULL; -- GitLab