rtsp-url: unescape special chars in user/pass part of URL
authorStuart Weaver <stuart.weaver@datapath.co.uk>
Wed, 25 Nov 2015 11:30:42 +0000 (11:30 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Sun, 25 Dec 2016 12:08:45 +0000 (12:08 +0000)
This way special characters such as '@' can be used in
usernames or passwords, e.g.

  rtsp://view:%40dm%4An@<IP-ADDR>/media/camera1

will now parse username and password into:

  User: view
  Pass: @dm:n

https://bugzilla.gnome.org/show_bug.cgi?id=758389

gst-libs/gst/rtsp/gstrtspurl.c

index 6c7e8c4..0acd3d7 100644 (file)
@@ -136,9 +136,9 @@ gst_rtsp_url_parse (const gchar * urlstr, GstRTSPUrl ** url)
     if (col == NULL || col > at)
       goto invalid;
 
-    res->user = g_strndup (p, col - p);
+    res->user = g_uri_unescape_segment (p, col, NULL);
     col++;
-    res->passwd = g_strndup (col, at - col);
+    res->passwd = g_uri_unescape_segment (col, at, NULL);
 
     /* move to host */
     p = at + 1;