From 220da86aa037f2b105a4742c8f9540c4dc95fade Mon Sep 17 00:00:00 2001 From: Geoffrey Merck Date: Thu, 8 Oct 2020 18:50:06 +0200 Subject: [PATCH] Avoid using public IP for transcoder connection --- src/ccodecstream.cpp | 2 +- src/ctranscoder.cpp | 2 +- src/cudpsocket.cpp | 7 ++++++- src/cudpsocket.h | 1 + 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ccodecstream.cpp b/src/ccodecstream.cpp index 7d8e0c8..10d9a2b 100644 --- a/src/ccodecstream.cpp +++ b/src/ccodecstream.cpp @@ -99,7 +99,7 @@ bool CCodecStream::Init(uint16 uiPort) m_uiPort = uiPort; // create our socket - ok = m_Socket.Open(uiPort); + ok = m_Socket.Open(CIp("0.0.0.0"), uiPort); if ( ok ) { // start thread; diff --git a/src/ctranscoder.cpp b/src/ctranscoder.cpp index 6b810c9..36faa8a 100644 --- a/src/ctranscoder.cpp +++ b/src/ctranscoder.cpp @@ -97,7 +97,7 @@ bool CTranscoder::Init(void) m_Ip = g_Reflector.GetTranscoderIp(); // create our socket - ok = m_Socket.Open(TRANSCODER_PORT); + ok = m_Socket.Open(CIp("0.0.0.0"), TRANSCODER_PORT); if ( ok ) { // start thread; diff --git a/src/cudpsocket.cpp b/src/cudpsocket.cpp index 5caa074..b528ffa 100644 --- a/src/cudpsocket.cpp +++ b/src/cudpsocket.cpp @@ -51,6 +51,11 @@ CUdpSocket::~CUdpSocket() // open & close bool CUdpSocket::Open(uint16 uiPort) +{ + return Open(g_Reflector.GetListenIp(), uiPort); +} + +bool CUdpSocket::Open(const CIp & listenIp, uint16 uiPort) { bool open = false; @@ -62,7 +67,7 @@ bool CUdpSocket::Open(uint16 uiPort) ::memset(&m_SocketAddr, 0, sizeof(struct sockaddr_in)); m_SocketAddr.sin_family = AF_INET; m_SocketAddr.sin_port = htons(uiPort); - m_SocketAddr.sin_addr.s_addr = inet_addr(g_Reflector.GetListenIp()); + m_SocketAddr.sin_addr.s_addr = inet_addr(listenIp); if ( bind(m_Socket, (struct sockaddr *)&m_SocketAddr, sizeof(struct sockaddr_in)) == 0 ) { diff --git a/src/cudpsocket.h b/src/cudpsocket.h index e91ed80..bb28fc1 100644 --- a/src/cudpsocket.h +++ b/src/cudpsocket.h @@ -56,6 +56,7 @@ public: // open & close bool Open(uint16); + bool Open(const CIp &, uint16); void Close(void); int GetSocket(void) { return m_Socket; }