diff options
author | schmirl <schmirl> | 2009-09-04 13:24:34 +0000 |
---|---|---|
committer | schmirl <schmirl> | 2009-09-04 13:24:34 +0000 |
commit | d5f0744f4bf093afc5ff2e962f4da27e97013fc0 (patch) | |
tree | 53a0bf59658e82eda53eea03bd0fe093717bacc4 /tools/socket.c | |
parent | 22ff6d08011da35f156a27ebfd444f8e3e9a9eda (diff) | |
download | vdr-plugin-streamdev-d5f0744f4bf093afc5ff2e962f4da27e97013fc0.tar.gz vdr-plugin-streamdev-d5f0744f4bf093afc5ff2e962f4da27e97013fc0.tar.bz2 |
use SO_KEEPALIVE option on all sockets do detect dead sockets
Diffstat (limited to 'tools/socket.c')
-rw-r--r-- | tools/socket.c | 4 |
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; |