webrtc_private: Improve _check_and_encode_turn_url() 14/279214/2 accepted/tizen/unified/20220809.213736 submit/tizen/20220805.110513
authorSangchul Lee <sc11.lee@samsung.com>
Thu, 4 Aug 2022 00:29:31 +0000 (09:29 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Thu, 4 Aug 2022 00:45:06 +0000 (09:45 +0900)
Becuase a password could be encoded by base64,
it also needs to apply uri encoding.

[Version] 0.3.192
[Issue Type] Improvement

Change-Id: Ic57be7d44791e120d60abca9a3f1f83407e8fbcf
Signed-off-by: Sangchul Lee <sc11.lee@samsung.com>
packaging/capi-media-webrtc.spec
src/webrtc_private.c

index 7f2038eb8ca3e46040f86f36738d911d61c2041b..13ae6bc9609c388d0198a7156ea07c9c7835ace3 100644 (file)
@@ -1,6 +1,6 @@
 Name:       capi-media-webrtc
 Summary:    A WebRTC library in Tizen Native API
-Version:    0.3.191
+Version:    0.3.192
 Release:    0
 Group:      Multimedia/API
 License:    Apache-2.0
index 42871bd04f1b6db70c92674a610c7cab125b1648..fc6e61e7a4c68dabb0f5e3ee85cfa6c68db6919e 100644 (file)
@@ -145,12 +145,17 @@ gchar *_check_and_encode_turn_url(const char *url)
 {
        g_auto(GStrv) str_arr = g_strsplit(url, "@", 2);
        g_auto(GStrv) str_arr2 = g_strsplit(str_arr[0], ":", 0);
+       g_autofree gchar *password = NULL;
 
-       if (g_strv_length(str_arr2) > 3) /* NOTE: assume id has ':' character */
+       if (g_strv_length(str_arr2) > 3) { /* NOTE: assume id has ':' character */
+               password = g_uri_escape_string(str_arr2[3], NULL, FALSE);
                return g_strdup_printf("%s:%s%s%s:%s@%s",
-                       str_arr2[0], str_arr2[1], "%3A", str_arr2[2], str_arr2[3], str_arr[1]);
+                       str_arr2[0], str_arr2[1], "%3A", str_arr2[2], password, str_arr[1]);
+       }
 
-       return g_strdup(url);
+       password = g_uri_escape_string(str_arr2[2], NULL, FALSE);
+       return g_strdup_printf("%s:%s:%s@%s",
+                       str_arr2[0], str_arr2[1], password, str_arr[1]);
 }
 
 /* Use g_free() to release the return value. */