summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorschmirl <schmirl>2009-09-04 13:24:30 +0000
committerschmirl <schmirl>2009-09-04 13:24:30 +0000
commit0e9e22c23d9671a910e82067e520c02249296842 (patch)
treea4851e0b17ff25af723912e6375ddd7b9ef94c72 /tools
parent1474cdf79972183c2cb67ba8a87e09a8078f3b08 (diff)
downloadvdr-plugin-streamdev-0e9e22c23d9671a910e82067e520c02249296842.tar.gz
vdr-plugin-streamdev-0e9e22c23d9671a910e82067e520c02249296842.tar.bz2
use SO_KEEPALIVE option on all sockets do detect dead sockets
Diffstat (limited to 'tools')
-rw-r--r--tools/socket.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/socket.c b/tools/socket.c
index 3523c29..5dde45a 100644
--- a/tools/socket.c
+++ b/tools/socket.c
@@ -124,6 +124,10 @@ bool cTBSocket::Accept(const cTBSocket &Listener) {
if (::getsockname(socket, (struct sockaddr*)&m_LocalAddr, &addrlen) == -1)
return false;
+ int sol=1;
+ // Ignore possible errors here, proceed as usual
+ ::setsockopt(socket, SOL_SOCKET, SO_KEEPALIVE, &sol, sizeof(sol));
+
if (!cTBSource::Open(socket))
return false;