summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2020-03-31 10:03:58 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2020-03-31 10:03:58 +0200
commita1eb6cf861d3c1cbd4e6c016be3cbd2a1e3d797d (patch)
tree2b4790eec8f47fb086e645717f07c53b30ace919 /contrib
parent2f84a54ec1d10b10293c7b1f4ab9fee31f3c6327 (diff)
parentc6a73c219dbfdfe639372d9922f4eb512f06fa2f (diff)
downloadODR-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.cpp10
-rw-r--r--contrib/Socket.h6
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;