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 */
Name: media-server
Summary: File manager service server.
-Version: 0.2.122
+Version: 0.2.123
Release: 1
Group: utils
License: Apache-2.0
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);
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);
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,
#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;
}
}
-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;
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;
#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"
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);
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) {
}
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);
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. */
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);
}
_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);
}
}