diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-03-31 10:03:58 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-03-31 10:03:58 +0200 |
commit | a1eb6cf861d3c1cbd4e6c016be3cbd2a1e3d797d (patch) | |
tree | 2b4790eec8f47fb086e645717f07c53b30ace919 /contrib | |
parent | 2f84a54ec1d10b10293c7b1f4ab9fee31f3c6327 (diff) | |
parent | c6a73c219dbfdfe639372d9922f4eb512f06fa2f (diff) | |
download | ODR-AudioEnc-a1eb6cf861d3c1cbd4e6c016be3cbd2a1e3d797d.tar.gz ODR-AudioEnc-a1eb6cf861d3c1cbd4e6c016be3cbd2a1e3d797d.tar.bz2 ODR-AudioEnc-a1eb6cf861d3c1cbd4e6c016be3cbd2a1e3d797d.zip |
Merge GStreamer into next
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/Socket.cpp | 10 | ||||
-rw-r--r-- | contrib/Socket.h | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/contrib/Socket.cpp b/contrib/Socket.cpp index 0c3cbb4..bfbef93 100644 --- a/contrib/Socket.cpp +++ b/contrib/Socket.cpp @@ -69,7 +69,8 @@ void InetAddress::resolveUdpDestination(const std::string& destination, int port UDPPacket::UDPPacket() { } UDPPacket::UDPPacket(size_t initSize) : - buffer(initSize) + buffer(initSize), + address() { } @@ -490,6 +491,11 @@ void TCPSocket::listen(int port, const string& name) continue; } + int reuse_setting = 1; + if (setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, &reuse_setting, sizeof(reuse_setting)) == -1) { + throw runtime_error("Can't reuse address"); + } + if (::bind(sfd, rp->ai_addr, rp->ai_addrlen) == 0) { m_sock = sfd; break; @@ -644,7 +650,7 @@ ssize_t TCPSocket::recv(void *buffer, size_t length, int flags, int timeout_ms) std::string errstr(strerror(errno)); throw std::runtime_error("TCP receive with poll() error: " + errstr); } - else if (retval > 0 and (fds[0].revents | POLLIN)) { + else if (retval > 0 and (fds[0].revents & POLLIN)) { ssize_t ret = ::recv(m_sock, buffer, length, flags); if (ret == -1) { if (errno == ECONNREFUSED) { diff --git a/contrib/Socket.h b/contrib/Socket.h index c3c37e1..b9f6317 100644 --- a/contrib/Socket.h +++ b/contrib/Socket.h @@ -50,7 +50,7 @@ namespace Socket { struct InetAddress { - struct sockaddr_storage addr; + struct sockaddr_storage addr = {}; struct sockaddr *as_sockaddr() { return reinterpret_cast<sockaddr*>(&addr); }; @@ -258,7 +258,7 @@ class TCPDataDispatcher size_t m_max_queue_size; - std::atomic<bool> m_running; + std::atomic<bool> m_running = ATOMIC_VAR_INIT(false); std::string m_exception_data; std::thread m_listener_thread; TCPSocket m_listener_socket; @@ -285,7 +285,7 @@ class TCPReceiveServer { size_t m_blocksize = 0; ThreadsafeQueue<std::vector<uint8_t> > m_queue; - std::atomic<bool> m_running; + std::atomic<bool> m_running = ATOMIC_VAR_INIT(false); std::string m_exception_data; std::thread m_listener_thread; TCPSocket m_listener_socket; |