From 47563d0202213cc38e27563806e1c0ed8e27cf8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Wed, 9 Dec 2020 00:37:07 -0500 Subject: [PATCH] sipaccount: cleanup stun configuration Change-Id: I724883bf523ce7670f87979c884d97a86688cc38 --- src/sip/sipaccount.cpp | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/src/sip/sipaccount.cpp b/src/sip/sipaccount.cpp index f501adaae6..d77009e7ec 100644 --- a/src/sip/sipaccount.cpp +++ b/src/sip/sipaccount.cpp @@ -73,6 +73,7 @@ #include <thread> #include <chrono> #include <ctime> +#include <charconv> #ifdef _WIN32 #include <lmcons.h> @@ -985,10 +986,7 @@ SIPAccount::doRegister2_() } // Init STUN settings for this account if the user selected it - if (stunEnabled_) - initStunConfiguration(); - else - stunServerName_ = pj_str((char*) stunServer_.c_str()); + initStunConfiguration(); // In our definition of the ip2ip profile (aka Direct IP Calls), // no registration should be performed @@ -1396,23 +1394,15 @@ SIPAccount::initTlsConfiguration() void SIPAccount::initStunConfiguration() { - size_t pos; - std::string stunServer, serverName, serverPort; - - stunServer = stunServer_; - // Init STUN socket - pos = stunServer.find(':'); - - if (pos == std::string::npos) { - stunServerName_ = pj_str((char*) stunServer.data()); + std::string_view stunServer(stunServer_); + auto pos = stunServer.find(':'); + if (pos == std::string_view::npos) { + stunServerName_ = sip_utils::CONST_PJ_STR(stunServer); stunPort_ = PJ_STUN_PORT; - // stun_status = pj_sockaddr_in_init (&stun_srv.ipv4, &stun_adr, (pj_uint16_t) 3478); } else { - serverName = stunServer.substr(0, pos); - serverPort = stunServer.substr(pos + 1); - stunPort_ = atoi(serverPort.data()); - stunServerName_ = pj_str((char*) serverName.data()); - // stun_status = pj_sockaddr_in_init (&stun_srv.ipv4, &stun_adr, (pj_uint16_t) nPort); + stunServerName_ = sip_utils::CONST_PJ_STR(stunServer.substr(0, pos)); + auto serverPort = stunServer.substr(pos + 1); + std::from_chars(serverPort.data(), serverPort.data() + serverPort.size(), stunPort_); } } -- GitLab