Extract file extension from URL 65/175165/3
authorSeonah Moon <seonah1.moon@samsung.com>
Mon, 9 Apr 2018 06:13:56 +0000 (15:13 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Mon, 9 Apr 2018 06:27:21 +0000 (15:27 +0900)
Change-Id: I7b6819cb1ee3536546157b5b561f5c2246ff544f

agent/download-agent-file.c
agent/download-agent-mime-util.c
agent/include/download-agent-mime-util.h
packaging/download-provider.spec

index 9d78580..f65715c 100755 (executable)
@@ -349,7 +349,7 @@ da_ret_t __get_candidate_file_name(const char *user_file_name, char *url,
        /* Priority 3 */
        if (url) {
                DA_LOGD("Get file name from url");
-               da_get_file_name_from_url(url, out_pure_file_name);
+               da_get_file_name_from_url(url, out_pure_file_name, out_extension);
        }
        if (*out_pure_file_name)
                return ret ;
index 34448d6..05166ee 100755 (executable)
@@ -246,7 +246,7 @@ ERR:
 }
 
 /* FIXME move this function to another file */
-da_bool_t da_get_file_name_from_url(char *url, char **name)
+da_bool_t da_get_file_name_from_url(char *url, char **name, char **extension)
 {
        da_bool_t ret = DA_TRUE;
        char *buff = DA_NULL;
@@ -256,6 +256,7 @@ da_bool_t da_get_file_name_from_url(char *url, char **name)
        int i = 0;
        int j = 0;
        int len_name = 0;
+       int len_ext = 0;
        char name_buff[DA_MAX_FILE_NAME_LEN + 1] = {0,};
 
        DA_LOGV("");
@@ -334,8 +335,15 @@ da_bool_t da_get_file_name_from_url(char *url, char **name)
 
        if (len_name) {
                End = strrchr(name_buff, '.');
-               if (End != NULL)
+               if (End != NULL) {
+                       len_ext = strlen(End) - 1;
+                       if (len_ext <= MAX_EXT_NAME_LEN) {
+                               *extension = (char*) calloc(1, len_ext);
+                               if (*extension)
+                                       strncpy(*extension, End + 1, len_ext);
+                       }
                        *End = '\0';
+               }
                //              DA_SECURE_LOGD("file name BEFORE removing prohibited character = %s", name_buff);
                delete_prohibited_char(name_buff, strlen(name_buff));
                len_name = strlen(name_buff);
@@ -343,7 +351,7 @@ da_bool_t da_get_file_name_from_url(char *url, char **name)
                if (*name)
                        strncpy(*name, name_buff, len_name);
        }
-       //      DA_SECURE_LOGD("Extracted file name : %s", *name);
+               DA_SECURE_LOGD("Extracted file name : %s, extension : %s", *name, *extension);
 ERR:
        if (buff) {
                free(buff);
index 7f57899..91d7c85 100755 (executable)
@@ -35,7 +35,7 @@ typedef struct {
 da_bool_t is_ambiguous_MIME_Type(const char *in_mime_type);
 da_bool_t da_get_extension_name_from_url(char *url, char **ext);
 da_ret_t  da_mime_get_ext_name(char *mime, char **ext);
-da_bool_t da_get_file_name_from_url(char *url, char **name;
+da_bool_t da_get_file_name_from_url(char *url, char **name, char **extension);
 void delete_prohibited_char(char *szTarget, int str_len);
 da_ret_t  get_extension_from_mime_type(char *mime_type, char **extension);
 #ifdef _ENABLE_OMA_DRM
index cec2bff..ae8f50f 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       download-provider
 Summary:    Download the contents in background
-Version:    2.1.94
+Version:    2.1.95
 Release:    0
 Group:      Development/Libraries
 License:    Apache-2.0