>> The problem frequently occurs in the following scenarios: >> 1) ProxyRTSPClient::continueAfterLivenessCommand called from within >> the stack frame of SocketDescriptor::tcpReadHandler. >> 2) A client to the proxy server issues PLAY while the connection to the >> 'back end' is being reestablished. > It seems the 2nd issue was already corrected by the change in > RTSPClient.cpp introduced in the 2016.11.28 version of live555. This was not correct, both issues are present also in the latest version.
I've attached a patch which: 1. Adds a new member function scheduleReset() to ProxyRTSPClient This function is used to ensure the reset (including reconnection to 'back-end') is not done from within call stack of SocketDescriptor::tcpReadHandler. 2. Overrides RTSPClient::connectToServer in ProxyRTSPClient The overriding version will reset the ProxyRTSPClient if DESCRIBE has previously been sent. The purpose is to prevent a client to the Proxy from doing PLAY while reconnection to the 'back-end' is in progress. If this is allowed, RTSPClient::connectionHandler is replaced by SocketDescriptor::tcpReadHandler before the connectionHandler is called, meaning the RTSPClient is not functional. /Erik
Proxyserver_TCP_reconnect.patch
Description: Binary data
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel