From: Mike Brady Date: Fri, 16 Nov 2018 10:05:37 +0000 (+0000) Subject: Put a timeout on the rtsp writeback call. X-Git-Tag: 3.3RC0~174 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d3ff806412cdc2cd4247a465185f88aae07ca83b;p=thirdparty%2Fshairport-sync.git Put a timeout on the rtsp writeback call. --- diff --git a/rtsp.c b/rtsp.c index 4663470a..352088cb 100644 --- a/rtsp.c +++ b/rtsp.c @@ -2220,6 +2220,13 @@ void rtsp_listen_loop(void) { // See: https://github.com/mikebrady/shairport-sync/issues/329 fcntl(fd, F_SETFD, FD_CLOEXEC); ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); + + struct timeval tv; + tv.tv_sec = 3; // three seconds write timeout + tv.tv_usec = 0; + if (setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, (const char *)&tv, sizeof tv) == -1) + debug(1, "Error %d setting send timeout for rtsp writeback.", errno); + #ifdef IPV6_V6ONLY // some systems don't support v4 access on v6 sockets, but some do.