summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@collabora.co.uk>2009-09-10 14:04:53 +0200
committerWim Taymans <wim.taymans@collabora.co.uk>2009-09-10 14:04:53 +0200
commitca3b91b2d09330085b690a599fe0411aca95fe1e (patch)
treed2cc1fa7acf69817589c049c3a8160786e532ccc
parent35cddfb1e3ddc6513c7daca093d72151a13e9342 (diff)
rtsp: don't return EPARSE
Don't blindly return EPARSE when http mode is disabled. Restore old http mode after temporarily setting it to TRUE.
-rw-r--r--gst-libs/gst/rtsp/gstrtspconnection.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
index 6b27753f2..8728a0046 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.c
+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
@@ -637,6 +637,7 @@ setup_tunneling (GstRTSPConnection * conn, GTimeVal * timeout)
gchar *hostparam;
GstRTSPMessage *msg;
GstRTSPMessage response;
+ gboolean old_http;
memset (&response, 0, sizeof (response));
gst_rtsp_message_init (&response);
@@ -692,10 +693,11 @@ setup_tunneling (GstRTSPConnection * conn, GTimeVal * timeout)
/* we need to temporarily set manual_http to TRUE since
* gst_rtsp_connection_receive() will treat the HTTP response as a parsing
* failure otherwise */
+ old_http = conn->manual_http;
conn->manual_http = TRUE;
GST_RTSP_CHECK (gst_rtsp_connection_receive (conn, &response, timeout),
read_failed);
- conn->manual_http = FALSE;
+ conn->manual_http = old_http;
if (response.type != GST_RTSP_MESSAGE_HTTP_RESPONSE ||
response.type_data.response.code != GST_RTSP_STS_OK)
@@ -3066,7 +3068,6 @@ gst_rtsp_source_dispatch (GSource * source, GSourceFunc callback G_GNUC_UNUSED,
watch->message.type_data.response.version =
GST_RTSP_VERSION_INVALID;
}
- res = GST_RTSP_EPARSE;
}
if (G_LIKELY (res == GST_RTSP_OK)) {