Accept spaces in URL 55/294955/1 accepted/tizen_7.0_unified tizen_7.0 accepted/tizen/7.0/unified/20230704.165312
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 9 Mar 2023 08:14:00 +0000 (17:14 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 29 Jun 2023 05:23:30 +0000 (14:23 +0900)
Change-Id: Ia99ac55593ec6018a1744ea098805199ced18292

agent/download-agent-plugin-libcurl.c
packaging/download-provider.spec

index 622c06d..7d318ab 100755 (executable)
@@ -425,6 +425,31 @@ int __http_progress_cb(void *clientp, double dltotal, double dlnow,
 }
 #endif
 
+static char *__get_encoded_url(const char *url)
+{
+       GString *encoded_url = g_string_new("");
+       const char *base = url;
+
+       do {
+               const char *found = strstr(base, " ");
+               if (!found) {
+                       encoded_url = g_string_append(encoded_url, base);
+                       break;
+               }
+
+               encoded_url = g_string_append_len(encoded_url, base, found - base);
+               encoded_url = g_string_append(encoded_url, "%20");
+               base = found + 1;
+       } while (TRUE);
+
+       char *result = encoded_url->str;
+       g_string_free(encoded_url, FALSE);
+
+       DA_LOGI("encoded url[%s]", result);
+
+       return result;
+}
+
 da_ret_t PI_http_start(da_info_t *da_info)
 {
        da_ret_t ret = DA_RESULT_OK;
@@ -447,8 +472,7 @@ da_ret_t PI_http_start(da_info_t *da_info)
 #endif
        NULL_CHECK_GOTO(da_info);
        NULL_CHECK_GOTO(da_info->req_info);
-       url = da_info->req_info->url;
-       NULL_CHECK_GOTO(url);
+       NULL_CHECK_GOTO(da_info->req_info->url);
        http_info = da_info->http_info;
        NULL_CHECK_GOTO(http_info);
 
@@ -477,6 +501,7 @@ da_ret_t PI_http_start(da_info_t *da_info)
 
        __set_proxy_on_soup_session(http_info->proxy_info, curl);
 
+       url = __get_encoded_url(da_info->req_info->url);
        curl_easy_setopt(curl, CURLOPT_URL, url);
        switch (http_method) {
        case HTTP_METHOD_GET:
@@ -588,6 +613,7 @@ da_ret_t PI_http_start(da_info_t *da_info)
        DA_MUTEX_INIT(&(http_msg->mutex), DA_NULL);
 ERR:
        DA_LOGD("Done");
+       free(url);
        return ret;
 
 }
index faabe95..d868950 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       download-provider
 Summary:    Download the contents in background
-Version:    2.3.9
+Version:    2.3.10
 Release:    0
 Group:      Development/Libraries
 License:    Apache-2.0