>> 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

Attachment: Proxyserver_TCP_reconnect.patch
Description: Binary data

_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to