Sync with tizen_2.4, 201601 34/69634/1 submit/tizen_mobile/20160516.075625 submit/tizen_tv/20160516.075629 submit/tizen_wearable/20160516.075636
authormin7.choi <min7.choi@samsung.com>
Mon, 16 May 2016 07:53:15 +0000 (16:53 +0900)
committermin7.choi <min7.choi@samsung.com>
Mon, 16 May 2016 07:53:20 +0000 (16:53 +0900)
- Fix bug of file name contain 2 more '.'
- Fix mime type and extension bug
- Fix smack issue for usb drive

Change-Id: I3fe862a6d5dde42f55ee2b9eda3c59e6f9295d6b
Signed-off-by: min7.choi <min7.choi@samsung.com>
agent/download-agent-file.c
packaging/download-provider.spec
provider/download-provider-smack.c

index ca794c0..05866ac 100755 (executable)
@@ -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 ;
index 435fa41..ea47df0 100755 (executable)
@@ -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
index 216822e..9128a58 100644 (file)
 
 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()