rtsp-client: Also handle the (S|G)ET_PARAMETER case of size==0 || !data as keep-alive
authorSebastian Dröge <sebastian@centricular.com>
Thu, 19 Jan 2017 12:57:19 +0000 (14:57 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 19 Jan 2017 12:57:19 +0000 (14:57 +0200)
If there is no Content-Length header, no body would be allocated and the
'\0' would also not be appended to the body.

gst/rtsp-server/rtsp-client.c

index 63ac617..cf78b17 100644 (file)
@@ -1250,8 +1250,8 @@ handle_get_param_request (GstRTSPClient * client, GstRTSPContext * ctx)
   if (res != GST_RTSP_OK)
     goto bad_request;
 
-  if (size == 1) {
-    /* no body (only '\0'), keep-alive request */
+  if (size == 0 || !data || strlen ((char *) data) == 0) {
+    /* no body (or only '\0'), keep-alive request */
     send_generic_response (client, GST_RTSP_STS_OK, ctx);
   } else {
     /* there is a body, handle the params */
@@ -1302,8 +1302,8 @@ handle_set_param_request (GstRTSPClient * client, GstRTSPContext * ctx)
   if (res != GST_RTSP_OK)
     goto bad_request;
 
-  if (size == 1) {
-    /* no body (only '\0'), keep-alive request */
+  if (size == 0 || !data || strlen ((char *) data) == 0) {
+    /* no body (or only '\0'), keep-alive request */
     send_generic_response (client, GST_RTSP_STS_OK, ctx);
   } else {
     /* there is a body, handle the params */