summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGöran Jönsson <goranjn@axis.com>2015-05-25 16:36:18 +0200
committerWim Taymans <wtaymans@redhat.com>2015-06-03 15:09:10 +0200
commit08e0c79cee11daf7872828c9c60e1b78b3f7d256 (patch)
treeeb1dacc3011789917eef0ae3951c90eaccb55b5a
parent550348738c0e096d5d3406b89e44ad892b19878a (diff)
rtsp-client: No flush during Teardown.
When calling gst_rtsp_watch_write_data in gstrtspconnection.c and backlog is empty it can happen that just a part of a message will be sent and rest is in backlog queue. If then flush during teardown just a part of message will be sent.This can lead to client miss teardown response since it expect to get the last part of message. The flushing during teardown was introduced to fix a deadlock that now is fixed more generally in handle_request by temporary setting backlog size to unlimited. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=749845
-rw-r--r--gst/rtsp-server/rtsp-client.c9
1 files changed, 0 insertions, 9 deletions
diff --git a/gst/rtsp-server/rtsp-client.c b/gst/rtsp-server/rtsp-client.c
index bedc464..c41d019 100644
--- a/gst/rtsp-server/rtsp-client.c
+++ b/gst/rtsp-server/rtsp-client.c
@@ -839,17 +839,8 @@ handle_teardown_request (GstRTSPClient * client, GstRTSPContext * ctx)
g_signal_emit (client, gst_rtsp_client_signals[SIGNAL_TEARDOWN_REQUEST],
0, ctx);
- /* make sure we unblock the backlog and don't accept new messages
- * on the watch */
- if (priv->watch != NULL)
- gst_rtsp_watch_set_flushing (priv->watch, TRUE);
-
gst_rtsp_session_media_set_state (sessmedia, GST_STATE_NULL);
- /* allow messages again so that we can send the reply */
- if (priv->watch != NULL)
- gst_rtsp_watch_set_flushing (priv->watch, FALSE);
-
/* unmanage the media in the session, returns false if all media session
* are torn down. */
keep_session = gst_rtsp_session_release_media (session, sessmedia);