Tizen 2.4 SDK Rev6 Release accepted/tizen_2.4_mobile tizen_2.4 accepted/tizen/2.4/mobile/20160530.220610 submit/tizen_2.4/20160530.023258
authorJaekyu Park <jk7744.park@samsung.com>
Fri, 27 May 2016 07:53:33 +0000 (16:53 +0900)
committerJaekyu Park <jk7744.park@samsung.com>
Fri, 27 May 2016 07:53:33 +0000 (16:53 +0900)
lib/media-util-db.c
packaging/media-server.spec
src/common/include/media-common-external-storage.h
src/common/include/media-common-system.h
src/common/include/media-common-types.h
src/common/media-common-external-storage.c
src/common/media-common-system.c
src/server/media-server-device-block.c

index 95bc281..f1549f2 100755 (executable)
@@ -166,7 +166,10 @@ static int __media_db_request_update_tcp(ms_msg_type_e msg_type, const char *req
        if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) {
                MSAPI_DBG_STRERROR("connect error");
                close(sockfd);
-               return MS_MEDIA_ERR_SOCKET_CONN;
+               if (errno == EACCES)
+                       return MS_MEDIA_ERR_PERMISSION_DENIED;
+               else
+                       return MS_MEDIA_ERR_SOCKET_CONN;
        }
 
        /* Send request */
index 4d0ac31..6900e5c 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       media-server
 Summary:    File manager service server.
-Version: 0.2.122
+Version: 0.2.123
 Release:    1
 Group:      utils
 License:    Apache-2.0
index c74fc10..dfd4fcd 100755 (executable)
@@ -26,7 +26,7 @@
 void ms_make_default_path_mmc(void);
 
 #ifndef DISABLE_NOTIFICATION
-int ms_present_mmc_status(ms_sdcard_status_type_t status);
+int ms_present_mmc_status(ms_sdcard_status_type_t status, int flags);
 #endif
 
 int ms_get_mmc_id(char **cid);
index 6f74794..ee24c16 100755 (executable)
@@ -40,6 +40,7 @@ typedef struct ms_block_info_s{
        char *mount_path;
        int state;
        int block_type;
+       int flags;
 } ms_block_info_s;
 
 typedef void (*block_changed_cb)(ms_block_info_s *block_info, void *user_data);
index 9912233..36267b5 100755 (executable)
@@ -69,6 +69,7 @@ typedef enum {
        MS_SDCARD_INSERTED,    /**< Stored only in phone */
        MS_SDCARD_REMOVED,           /**< Stored only in MMC */
 } ms_sdcard_status_type_t;
+#define MS_SDCARD_REMOVED_UNSAFE 0x0001 /* Removed without unmount */
 
 typedef enum {
        MS_SCAN_INVALID,
index 031af01..bbbee85 100755 (executable)
@@ -68,7 +68,7 @@ char default_path[][MS_FILE_NAME_LEN_MAX + 1] = {
 
 #define BLOCK_OBJECT_ADDED      "ObjectAdded"
 #define BLOCK_OBJECT_REMOVED    "ObjectRemoved"
-#define BLOCK_DEVICE_CHANGED    "DeviceChanged"
+#define BLOCK_DEVICE_CHANGED    "DeviceChanged2"
 
 GDBusConnection *g_stg_bus;
 int g_stg_added_handler;
@@ -157,7 +157,7 @@ void update_lang(void)
        }
 }
 
-int ms_present_mmc_status(ms_sdcard_status_type_t status)
+int ms_present_mmc_status(ms_sdcard_status_type_t status, int flags)
 {
        int ret = NOTIFICATION_ERROR_NONE;
 
@@ -165,8 +165,10 @@ int ms_present_mmc_status(ms_sdcard_status_type_t status)
 
        if (status == MS_SDCARD_INSERTED)
                ret = notification_status_message_post(_GETSYSTEMSTR("IDS_COM_BODY_PREPARING_SD_CARD"));
-       else if (status == MS_SDCARD_REMOVED)
-               ret = notification_status_message_post(_GETSYSTEMSTR("IDS_COM_BODY_SD_CARD_UNEXPECTEDLY_REMOVED"));
+       else if (status == MS_SDCARD_REMOVED) {
+               if (flags & MS_SDCARD_REMOVED_UNSAFE)
+                       ret = notification_status_message_post(_GETSYSTEMSTR("IDS_COM_BODY_SD_CARD_UNEXPECTEDLY_REMOVED"));
+       }
 
        if(ret != NOTIFICATION_ERROR_NONE)
                return MS_MEDIA_ERR_INTERNAL;
index d784af4..66234ab 100755 (executable)
@@ -50,9 +50,9 @@
 
 #define BLOCK_OBJECT_ADDED      "ObjectAdded"
 #define BLOCK_OBJECT_REMOVED    "ObjectRemoved"
-#define BLOCK_DEVICE_CHANGED    "DeviceChanged"
+#define BLOCK_DEVICE_CHANGED    "DeviceChanged2"
 
-#define BLOCK_DEVICE_METHOD "GetDeviceList"
+#define BLOCK_DEVICE_METHOD "GetDeviceList2"
 #define BLOCK_DEVICE_USB "scsi"
 #define BLOCK_DEVICE_MMC "mmc"
 #define BLOCK_DEVICE_ALL "all"
@@ -110,6 +110,10 @@ static void __ms_block_changed(GDBusConnection* connection,
        block_info->state = g_variant_get_int32 (tmp);
        MS_DBG_ERR("state : %d", block_info->state);
 
+       tmp = g_variant_get_child_value(parameters, 11);
+       block_info->flags = g_variant_get_int32 (tmp);
+       MS_DBG_ERR("flags : %d", block_info->flags);
+
        ((block_changed_cb)usr_cb)(block_info, usr_data);
        MS_SAFE_FREE(block_info->mount_path);
        MS_SAFE_FREE(block_info);
@@ -303,6 +307,11 @@ static int __ms_dbus_method_sync(const char *dest, const char *path,
                dbus_message_iter_get_basic(&piter, &val_bool);
                MS_DBG("\tprimary(%d)", val_bool ? "true" : "false");
 
+               dbus_message_iter_next(&piter);
+               dbus_message_iter_get_basic(&piter, &val_int);
+               MS_DBG("\tflags(%d)", val_int);
+               data->flags = val_int;
+
                dbus_message_iter_next(&aiter);
 
                if (*dev_list == NULL) {
index 5cb56df..49044d1 100755 (executable)
@@ -249,7 +249,7 @@ int ms_mmc_insert_handler(const char *mount_path)
        }
 
        ms_make_default_path_mmc();
-       ms_present_mmc_status(MS_SDCARD_INSERTED);
+       ms_present_mmc_status(MS_SDCARD_INSERTED, 0);
 
        ms_get_mmc_id(&cid);
        __ms_get_mmc_info(db_handle, &storage_name, &storage_path, &validity, &info_exist);
@@ -318,7 +318,7 @@ int ms_mmc_remove_handler(const char *mount_path)
        return MS_MEDIA_ERR_NONE;
 }
 
-void _ms_mmc_changed_event(const char *mount_path, ms_stg_status_e mount_status)
+void _ms_mmc_changed_event(const char *mount_path, ms_stg_status_e mount_status, int flags)
 {
        /* If scanner is not working, media server executes media scanner and sends request. */
        /* If scanner is working, it detects changing status of SD card. */
@@ -326,7 +326,7 @@ void _ms_mmc_changed_event(const char *mount_path, ms_stg_status_e mount_status)
                ms_mmc_insert_handler(mount_path);
        } else if (mount_status == MS_STG_REMOVED) {
                /*remove added watch descriptors */
-               ms_present_mmc_status(MS_SDCARD_REMOVED);
+               ms_present_mmc_status(MS_SDCARD_REMOVED, flags);
                ms_mmc_remove_handler(mount_path);
        }
 
@@ -352,7 +352,7 @@ void ms_device_block_changed_cb(ms_block_info_s *block_info, void *user_data)
                _ms_usb_changed_event(block_info->mount_path, block_info->state);
        } else {
                MS_DBG_ERR("GET THE MMC EVENT");
-               _ms_mmc_changed_event(block_info->mount_path, block_info->state);
+               _ms_mmc_changed_event(block_info->mount_path, block_info->state, block_info->flags);
        }
 }