<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">I can indeed see this running the proxy server with -V.  It is not
    the case of a TCP connection being misinterpreted as valid. It is
    the case of when the proxy server retries an OPTIONS command, it
    sees the TCP connection has gone away, reconnects and receives a
    valid response, it doesn't realise this is because the server has
    restarted.</div></blockquote><div><br></div>OK, now I understand what's going on.</div><div><br></div><div>The problem here is that the proxy server can't tell that the server has restarted - merely from the fact that it needed to reopen the TCP connection in order to send an "OPTIONS" command.  It's perfectly valid (although admittedly unusual) for a server to close the RTSP (TCP) connection while the RTP (UDP) stream is ongoing.  In this case, the server's client (in this case, the proxy server) would need to reopen the RTSP (TCP) connection in order to send the next RTSP command (in this case, "OPTIONS").  Our code does this just fine.  The problem is that - because this next RTSP command ("OPTIONS") completes without error, the proxy server can't tell that the server has restarted.</div><div><br></div><div><br></div><div><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">  Perhaps rather than using OPTIONS something that sends a
    session id should be sent and error responses checked for?<br></div></blockquote><div><br></div>The "OPTIONS" command sent by the proxy server *does* contain a session id (when a session has been established - i.e., when there's at least one front-end client).  Unfortunately, the server (after restarting) didn't see this incoming "OPTIONS" command as being erroneous - because it didn't look at the "Session:" id.</div><div><br></div><div>I've now installed a new version (2014.09.22) of the "LIVE555 Streaming Media" code that changes the way in which the RTSP server handles incoming "OPTIONS" commands that contain a "Session:" header.  If the specified session id refers to a session that does not exist, the server now responds with a "Session not found" error.  (If the session id is valid, or is not present at all in the "OPTIONS" request, then the request is handled as normal.)</div><div><br></div><div>If you rebuild your 'back-end' server using this new version of the code, then the proxy server will now be able to better handle the case when it restarts.</div><br><br><div apple-content-edited="true">
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;  ">Ross Finlayson<br>Live Networks, Inc.<br><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
</div>
<br></body></html>