From d3ff806412cdc2cd4247a465185f88aae07ca83b Mon Sep 17 00:00:00 2001 From: Mike Brady Date: Fri, 16 Nov 2018 10:05:37 +0000 Subject: [PATCH] Put a timeout on the rtsp writeback call. --- rtsp.c | 7 +++++++ 1 file changed, 7 insertions(+) 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.