summaryrefslogtreecommitdiffstats
path: root/contrib/Socket.cpp
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/Socket.cpp
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/Socket.cpp')
-rw-r--r--contrib/Socket.cpp10
1 files changed, 8 insertions, 2 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) {