I have a similar issue to that reported by Philippe Clavel in April where RTSPClient receives a SIGPIPE from closed socket and terminates the process. In my case, I am not using the RTSPServer class, so the fix implemented in that class does not help me. Instead, I have adapted that fix for the RTSPClient class and have included the patch below for inclusion in an upcoming version of Live555, pending your approval.<div>
<br></div><div><br></div><div><br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">--- a/src/live555/liveMedia/RTSPClient.cpp</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+++ b/src/live555/liveMedia/RTSPClient.cpp</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">@@ -374,6 +374,17 @@ int RTSPClient::openConnection() {</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> // We don't yet have a TCP socket (or we used to have one, but it got closed). Set it up now.</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> fInputSocketNum = fOutputSocketNum = setupStreamSocket(envir(), 0);</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> if (fInputSocketNum < 0) break;</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">+</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+#ifdef USE_SIGNALS</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+ // ignore SIGPIPE so that prematurely closed sockets won't kill our process</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">+#ifdef SO_NOSIGPIPE</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+ int set_option = 1;</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">+ setsockopt(fInputSocketNum, SOL_SOCKET, SO_NOSIGPIPE, &set_option, sizeof set_option);</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+ setsockopt(fOutputSocketNum, SOL_SOCKET, SO_NOSIGPIPE, &set_option, sizeof set_option);</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">+#else</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+ signal(SIGPIPE, SIG_IGN);</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+#endif</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">+#endif</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> </font></div><div><font class="Apple-style-span" face="'courier new', monospace"> // Connect to the remote endpoint:</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> fServerAddress = *(netAddressBits*)(destAddress.data());</font></div></div><div><br></div><div><br></div><div>-Barry</div><div><br></div>