summaryrefslogtreecommitdiffstats
path: root/gst/rtsp/gstrtspsrc.c
diff options
context:
space:
mode:
author이문형 <iwings@gmail.com>2008-11-27 11:22:56 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-11-27 11:22:56 +0000
commit42f6a2bca1a74151bee3c1581e5c6de464e244c8 (patch)
treeca5fa88a509d783d4a8e62d3368c4c174a93c6e2 /gst/rtsp/gstrtspsrc.c
parent6f13524166392a35c8577bba55da987e287e6991 (diff)
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.
Diffstat (limited to 'gst/rtsp/gstrtspsrc.c')
-rw-r--r--gst/rtsp/gstrtspsrc.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 814cab8d..6bc6fc37 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -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;
}