gst/rtsp/gstrtspsrc.c: Prevent further read/write actions taken to the connect-failed socket by erroring out quickly....

Original commit message from CVS:
Patch by: 이문형 <iwings at gmail dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_udp):
Prevent further read/write actions taken to the connect-failed socket by
erroring out quickly. See #562258.
This commit is contained in:
이문형 2008-11-27 11:22:56 +00:00 committed by Wim Taymans
parent 6f13524166
commit 42f6a2bca1
2 changed files with 22 additions and 2 deletions

View file

@ -1,3 +1,11 @@
2008-11-27 Wim Taymans <wim.taymans@collabora.co.uk>
Patch by: 이문형 <iwings at gmail dot com>
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_loop_udp):
Prevent further read/write actions taken to the connect-failed socket by
erroring out quickly. See #562258.
2008-11-26 Stefan Kost <ensonic@users.sf.net>
* tests/examples/level/level-example.c:

View file

@ -2914,7 +2914,10 @@ gst_rtspsrc_loop_udp (GstRTSPSrc * src)
GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL),
("The server closed the connection."));
gst_rtsp_connection_close (src->connection);
gst_rtsp_connection_connect (src->connection, src->ptcp_timeout);
res =
gst_rtsp_connection_connect (src->connection, src->ptcp_timeout);
if (res < 0)
goto connect_error;
continue;
default:
goto receive_error;
@ -3025,11 +3028,20 @@ handle_request_failed:
g_free (str);
return GST_FLOW_ERROR;
}
connect_error:
{
gchar *str = gst_rtsp_strresult (res);
GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL),
("Could not connect to server. (%s)", str));
g_free (str);
return GST_FLOW_ERROR;
}
no_protocols:
{
src->cur_protocols = 0;
/* no transport possible, post an error and stop */
GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ_WRITE, (NULL),
("Could not connect to server, no protocols left"));
return GST_FLOW_ERROR;
}