On Wed, Feb 17, 2010 at 7:57 AM, Sébastien Escudier < sebastien-de...@celeos.eu> wrote:
> > > If you can track this down some more, please let us know. > > Ok, so the client is blocked in RTSPClient.cpp -> getResponse1 line 2191 in > a > readsocket call. > > The comment in the file says : > // Keep reading data from the socket until we see "\r\n\r\n" (except > // at the start), or until we fill up our buffer. > // Don't read any more than this. > > and at this point the buffer (what has been read in the socket) is [1] (404 > not > found, ending with \r\n) > So obviously, it won't go any further, because the server won't send > anything > more, and live555 client is waiting for another \r\n > > This happens in some rare cases, and most of the time, the same answer (404 > not > found with no \r\n\r\n at the end) is correctly received and handled by my > live555 client. > > Do you have any idea what is wrong in this case ? > I reported the same issue a week or three back; I fixed it the same way you did by adding timeouts to the various readSocket() calls in the RTSPClient implementation. Purportedly this code is undergoing a rewrite, so Ross didn't merge my changes (which is fine by me). I'm not sure how to reproduce the issue 100% of the time, but I know I occasionally see a hang in these select() statements, and it's generally when the RTSP server or internet connection hangs. The timeout resolves the problem.
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel