From: Sangchul Lee Date: Thu, 4 Aug 2022 00:29:31 +0000 (+0900) Subject: webrtc_private: Improve _check_and_encode_turn_url() X-Git-Tag: submit/tizen/20220805.110513^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b653a8ad5814b7651b103cb0c78a1a746dc8b7c8;p=platform%2Fcore%2Fapi%2Fwebrtc.git webrtc_private: Improve _check_and_encode_turn_url() 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 --- diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 7f2038eb..13ae6bc9 100644 --- a/packaging/capi-media-webrtc.spec +++ b/packaging/capi-media-webrtc.spec @@ -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 diff --git a/src/webrtc_private.c b/src/webrtc_private.c index 42871bd0..fc6e61e7 100644 --- a/src/webrtc_private.c +++ b/src/webrtc_private.c @@ -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. */