From d190ef2fd09507881dbc45f9875774138ad85d9f Mon Sep 17 00:00:00 2001 From: "min7.choi" Date: Mon, 16 May 2016 16:38:16 +0900 Subject: [PATCH] Sync with tizen_2.4, 201601 Change-Id: Idbbcaef7a597a000f9a367af2c505920220bcc9e Signed-off-by: min7.choi --- agent/download-agent-file.c | 59 +++++++++++++++++++++++++------------- packaging/download-provider.spec | 2 +- provider/download-provider-smack.c | 25 ++++++++++------ 3 files changed, 56 insertions(+), 30 deletions(-) diff --git a/agent/download-agent-file.c b/agent/download-agent-file.c index ca794c0..05866ac 100755 --- a/agent/download-agent-file.c +++ b/agent/download-agent-file.c @@ -68,7 +68,7 @@ ERR: return ret; } -da_ret_t __divide_file_name_into_pure_name_N_extesion(const char *in_file_name, char **out_pure_file_name, char **out_extension) +da_ret_t __divide_file_name_into_pure_name_N_extesion(const char *in_file_name, char *url, char **out_pure_file_name, char **out_extension) { char *file_name = DA_NULL; char *tmp_ptr = DA_NULL; @@ -83,13 +83,32 @@ da_ret_t __divide_file_name_into_pure_name_N_extesion(const char *in_file_name, return DA_ERR_INVALID_ARGUMENT; file_name = (char *)in_file_name; - tmp_ptr = strrchr(file_name, '.'); - if (tmp_ptr) - tmp_ptr++; - if (tmp_ptr && out_extension) { - strncpy((char*) tmp_ext, tmp_ptr, sizeof(tmp_ext) - 1); - *out_extension = strdup((const char*) tmp_ext); - DA_SECURE_LOGD("extension [%s]", *out_extension); + + if(url) { + char *extension = DA_NULL; + da_bool_t b_ret = da_get_extension_name_from_url(url, &extension); + if (b_ret && !extension) { +#if 0 + tmp_ptr = strrchr(file_name, '.'); + if (tmp_ptr) + tmp_ptr++; + if (tmp_ptr && out_extension) { + strncpy((char*) tmp_ext, tmp_ptr, sizeof(tmp_ext) - 1); + *out_extension = strdup((const char*) tmp_ext); + DA_SECURE_LOGD("extension [%s]", *out_extension); + } +#endif + *out_extension = NULL; + } + } else { + tmp_ptr = strrchr(file_name, '.'); + if (tmp_ptr) + tmp_ptr++; + if (tmp_ptr && out_extension) { + strncpy((char*) tmp_ext, tmp_ptr, sizeof(tmp_ext) - 1); + *out_extension = strdup((const char*) tmp_ext); + DA_SECURE_LOGD("extension [%s]", *out_extension); + } } if (!out_pure_file_name) @@ -117,7 +136,7 @@ da_ret_t __divide_file_name_into_pure_name_N_extesion(const char *in_file_name, (const char*) temp_file); } - DA_LOGV( "pure file name [%s]", *out_pure_file_name); + DA_LOGD( "pure file name [%s]", *out_pure_file_name); return ret; } @@ -284,12 +303,12 @@ char *__get_extension_name(char *mime_type, } /* Priority 2-1 */ if (file_name_from_header) { - char *extension = DA_NULL; - DA_SECURE_LOGI("Content-Disposition :[%s]", file_name_from_header); - __divide_file_name_into_pure_name_N_extesion(file_name_from_header, - DA_NULL, &extension); - if (extension) - return extension; + char *extension = DA_NULL; + DA_SECURE_LOGI("Content-Disposition :[%s]", file_name_from_header); + __divide_file_name_into_pure_name_N_extesion(file_name_from_header, DA_NULL, + DA_NULL, &extension); + if (extension) + return extension; } /* Priority 2-2 */ if (url) { @@ -317,16 +336,16 @@ da_ret_t __get_candidate_file_name(char *user_file_name, char *url, /* Priority 1 */ if (user_file_name) { - __divide_file_name_into_pure_name_N_extesion( - user_file_name, out_pure_file_name, out_extension); + __divide_file_name_into_pure_name_N_extesion( + user_file_name, url, out_pure_file_name, out_extension); } if (*out_pure_file_name) return ret; /* Priority 2 */ if (file_name_from_header) { - DA_SECURE_LOGI("Content-Disposition:[%s]", file_name_from_header); - __divide_file_name_into_pure_name_N_extesion(file_name_from_header, - out_pure_file_name, DA_NULL); + DA_SECURE_LOGI("Content-Disposition:[%s]", file_name_from_header); + __divide_file_name_into_pure_name_N_extesion(file_name_from_header, DA_NULL, + out_pure_file_name, DA_NULL); } if (*out_pure_file_name) return ret ; diff --git a/packaging/download-provider.spec b/packaging/download-provider.spec index 435fa41..ea47df0 100755 --- a/packaging/download-provider.spec +++ b/packaging/download-provider.spec @@ -1,7 +1,7 @@ %define _ux_define tizen2.3 Name: download-provider Summary: Download the contents in background -Version: 2.1.30 +Version: 2.1.40 Release: 0 Group: Development/Libraries License: Apache-2.0 diff --git a/provider/download-provider-smack.c b/provider/download-provider-smack.c index 216822e..9128a58 100644 --- a/provider/download-provider-smack.c +++ b/provider/download-provider-smack.c @@ -32,15 +32,22 @@ static int __dp_smack_is_transmute(char *path) { - char *dir_label = NULL; - int ret = -1; - if (smack_getlabel(path, &dir_label, SMACK_LABEL_TRANSMUTE) == 0 && - dir_label != NULL) { - if (strncmp(dir_label, "TRUE", strlen(dir_label)) == 0) - ret = 0; - } - free(dir_label); - return ret; + char *dir_label = NULL; + int ret = -1; + if (smack_getlabel(path, &dir_label, SMACK_LABEL_TRANSMUTE) == 0 && dir_label != NULL) { + if (strncmp(dir_label, "TRUE", strlen(dir_label)) == 0) { + ret = 0; + } + } + + if (smack_getlabel(path, &dir_label, SMACK_LABEL_ACCESS) == 0 && dir_label != NULL) { + if (strncmp(dir_label, "*", strlen(dir_label)) == 0) { + ret = 0; + } + } + + free(dir_label); + return ret; } int dp_smack_is_mounted() -- 2.7.4