From e6235bc3405071adc302833c0b4d968573bbaba6 Mon Sep 17 00:00:00 2001 From: Tom Early Date: Fri, 4 Sep 2020 17:09:27 -0700 Subject: [PATCH] can do an .c_str() on a temp std::string! --- src/ccodecstream.cpp | 10 +++++----- src/cg3protocol.cpp | 3 ++- src/cprotocol.cpp | 3 ++- src/ctranscoder.cpp | 10 +++++----- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/ccodecstream.cpp b/src/ccodecstream.cpp index 3b5a0d5..1047205 100644 --- a/src/ccodecstream.cpp +++ b/src/ccodecstream.cpp @@ -89,14 +89,14 @@ bool CCodecStream::Init(uint16 uiPort) // create socket address, family based on transcoder listen address #ifdef LISTEN_IPV4 #ifdef LISTEN_IPV6 - s = (AF_INET == m_Ip.GetFamily()) ? g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY).c_str() : g_Reflector.m_Address.GetV6Address(PROTOCOL_ANY).c_str(); + const auto paddr = (AF_INET == m_Ip.GetFamily()) ? g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY) : g_Reflector.m_Address.GetV6Address(PROTOCOL_ANY); #else - s = g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY).c_str(); + const auto paddr = g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY); #endif #else - s = g_Reflector.m_Address.GetV6Address(PROTOCOL_ANY).c_str(); + const auto paddr = g_Reflector.m_Address.GetV6Address(PROTOCOL_ANY); #endif - CIp ip(m_Ip.GetFamily(), m_uiPort, s); + CIp ip(m_Ip.GetFamily(), m_uiPort, paddr.c_str()); // create our socket if (ip.IsSet()) @@ -109,7 +109,7 @@ bool CCodecStream::Init(uint16 uiPort) } else { - std::cerr << "Could not initialize Codec Stream on " << s << std::endl; + std::cerr << "Could not initialize Codec Stream on " << paddr << std::endl; return false; } diff --git a/src/cg3protocol.cpp b/src/cg3protocol.cpp index 75a009e..3058eae 100644 --- a/src/cg3protocol.cpp +++ b/src/cg3protocol.cpp @@ -53,7 +53,8 @@ bool CG3Protocol::Initialize(const char */*type*/, const int /*type*/, const uin //m_ReflectorCallsign.PatchCallsign(0, (const uint8 *)"XLX", 3); // create our sockets - CIp ip(AF_INET, G3_DV_PORT, g_Reflector.m_Address.GetV4Address(PROTOCOL_G3).c_str()); + auto s = g_Reflector.m_Address.GetV4Address(PROTOCOL_G3); + CIp ip(AF_INET, G3_DV_PORT, s.c_str()); if ( ip.IsSet() ) { if (! m_Socket4.Open(ip)) diff --git a/src/cprotocol.cpp b/src/cprotocol.cpp index 7263121..deca34c 100644 --- a/src/cprotocol.cpp +++ b/src/cprotocol.cpp @@ -72,7 +72,8 @@ bool CProtocol::Initialize(const char *type, int ptype, const uint16 port, const #ifdef LISTEN_IPV4 if (has_ipv4) { - CIp ip4(AF_INET, port, g_Reflector.m_Address.GetV4Address(ptype).c_str()); + const auto s = g_Reflector.m_Address.GetV4Address(ptype); + CIp ip4(AF_INET, port, s.c_str()); if ( ip4.IsSet() ) { if (! m_Socket4.Open(ip4)) diff --git a/src/ctranscoder.cpp b/src/ctranscoder.cpp index ae145a8..6a58c83 100644 --- a/src/ctranscoder.cpp +++ b/src/ctranscoder.cpp @@ -82,14 +82,14 @@ bool CTranscoder::Init(void) // now open the transcoder port #ifdef LISTEN_IPV4 #ifdef LISTEN_IPV6 - s = (AF_INET == m_Ip.GetFamily()) ? g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY).c_str() : g_Reflector.m_Address.GetV6Address(PROTOCOL_ANY).c_str(); + const auto paddr = (AF_INET == m_Ip.GetFamily()) ? g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY) : g_Reflector.m_Address.GetV6Address(PROTOCOL_ANY); #else - s = g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY).c_str(); + const auto paddr = g_Reflector.m_Address.GetV4Address(PROTOCOL_ANY); #endif #else - s = g_Reflector.m_address.GetV6Address(PROTOCOL_ANY).c_str(); + const auto paddr = g_Reflector.m_address.GetV6Address(PROTOCOL_ANY); #endif - CIp tc(m_Ip.GetFamily(), TRANSCODER_PORT, s); + CIp tc(m_Ip.GetFamily(), TRANSCODER_PORT, paddr.c_str()); // create our socket if (tc.IsSet()) @@ -103,7 +103,7 @@ bool CTranscoder::Init(void) else { // something bad was specified for the transcoder IP? - std::cerr << "Error initializing transcoder port using " << ((AF_INET == m_Ip.GetFamily()) ? "IPv4" : "IPv6") << " on " << s << std::endl; + std::cerr << "Error initializing transcoder port using " << ((AF_INET == m_Ip.GetFamily()) ? "IPv4" : "IPv6") << " on " << paddr << std::endl; return false; }