From: 이문형 Date: Thu, 27 Nov 2008 11:22:56 +0000 (+0000) Subject: gst/rtsp/gstrtspsrc.c: Prevent further read/write actions taken to the connect-failed... X-Git-Tag: 1.19.3~509^2~10879 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=42f6a2bca1a74151bee3c1581e5c6de464e244c8;p=platform%2Fupstream%2Fgstreamer.git 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: 이문형 * 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. --- diff --git a/ChangeLog b/ChangeLog index 5123a4c..3714c29 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-11-27 Wim Taymans + + Patch by: 이문형 + + * 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 * tests/examples/level/level-example.c: diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 814cab8..6bc6fc3 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; }