int createSocket(int *socket_fd, DcmIpcPortType port);
int acceptSocket(int serv_sock, int *client_sock);
int receiveSocketMsg(int client_sock, dcmMsg *recv_msg);
- int sendSocketMsg(DcmIpcMsgType msg_type, uid_t uid, const char *msg, DcmIpcPortType port);
- int sendCompleteMsg(DcmIpcMsgType msg_type, const unsigned int count, const char *msg, DcmIpcPortType port);
- int sendClientSocketMsg(int socket_fd, DcmIpcMsgType msg_type, unsigned int result, const char *msg, DcmIpcPortType port);
+ int sendSocketMsg(ms_dcm_msg_type_e msg_type, uid_t uid, const char *msg, DcmIpcPortType port);
+ int sendCompleteMsg(ms_dcm_msg_type_e msg_type, const unsigned int count, const char *msg, DcmIpcPortType port);
+ int sendClientSocketMsg(int socket_fd, ms_dcm_msg_type_e msg_type, unsigned int result, const char *msg, DcmIpcPortType port);
int closeSocket(int socket_fd);
}
DCM_ERROR_DUPLICATED_DATA,
} DcmErrorType;
-typedef enum {
- DCM_IPC_MSG_SCAN_SINGLE,
- DCM_IPC_MSG_SCAN_ALL,
- DCM_IPC_MSG_CANCEL,
- DCM_IPC_MSG_CANCEL_ALL,
- DCM_IPC_MSG_KILL_SERVICE,
- DCM_IPC_MSG_SCAN_READY,
- DCM_IPC_MSG_SCAN_COMPLETED,
- DCM_IPC_MSG_SCAN_TERMINATED,
- DCM_IPC_MSG_SERVICE_READY = 20,
- DCM_IPC_MSG_SERVICE_COMPLETED,
- DCM_IPC_MSG_MAX,
-} DcmIpcMsgType;
-
typedef enum {
DCM_IPC_PORT_SCAN_RECV = 0,
DCM_IPC_PORT_DCM_RECV,
Name: dcm-service
Summary: A media DCM(Digital Contents Management) Service
-Version: 0.0.17
+Version: 0.0.18
Release: 0
Group: Multimedia/Service
License: Apache-2.0
}
dcm_sec_debug("[receive msg] type: %d, pid: %d, uid: %d, msg: %s, msg_size: %d", recv_msg->msg_type, recv_msg->pid, recv_msg->uid, (recv_msg->msg)?recv_msg->msg:"NULL", recv_msg->msg_size);
- if (!(recv_msg->msg_type >= 0 && recv_msg->msg_type < DCM_IPC_MSG_MAX)) {
+ if (!(recv_msg->msg_type >= 0 && recv_msg->msg_type < DCM_MSG_MAX)) {
dcm_error("IPC message is wrong!");
return DCM_ERROR_IPC_INVALID_MSG;
}
return DCM_SUCCESS;
}
-int DcmIpcUtils::sendClientSocketMsg(int socket_fd, DcmIpcMsgType msg_type, unsigned int result, const char *msg, DcmIpcPortType port)
+int DcmIpcUtils::sendClientSocketMsg(int socket_fd, ms_dcm_msg_type_e msg_type, unsigned int result, const char *msg, DcmIpcPortType port)
{
if (port < 0 || port >= DCM_IPC_PORT_MAX) {
dcm_error("Invalid port! Stop sending message...");
return DCM_SUCCESS;
}
-int DcmIpcUtils::sendSocketMsg(DcmIpcMsgType msg_type, uid_t uid, const char *msg, DcmIpcPortType port)
+int DcmIpcUtils::sendSocketMsg(ms_dcm_msg_type_e msg_type, uid_t uid, const char *msg, DcmIpcPortType port)
{
if (port < 0 || port >= DCM_IPC_PORT_MAX) {
dcm_error("Invalid port! Stop sending message...");
return DCM_ERROR_INVALID_PARAMETER;
}
+
+ dcm_debug_fenter();
+
dcm_debug("Send message type: %d", msg_type);
int socket_fd = -1;
}
close(socket_fd);
+
+ dcm_debug_fleave();
+
return DCM_SUCCESS;
}
-int DcmIpcUtils::sendCompleteMsg(DcmIpcMsgType msg_type, const unsigned int count, const char *msg, DcmIpcPortType port)
+int DcmIpcUtils::sendCompleteMsg(ms_dcm_msg_type_e msg_type, const unsigned int count, const char *msg, DcmIpcPortType port)
{
if (port < 0 || port >= DCM_IPC_PORT_MAX) {
dcm_error("Invalid port! Stop sending message...");
return DCM_ERROR_INVALID_PARAMETER;
}
+
+ dcm_debug_fenter();
+
dcm_debug("Send message type: %d", msg_type);
int socket_fd = -1;
}
close(socket_fd);
+
+ dcm_debug_fleave();
+
return DCM_SUCCESS;
}
DCM_CHECK_FALSE(data);
- ret = DcmIpcUtils::sendSocketMsg(DCM_IPC_MSG_SCAN_TERMINATED, 0, NULL, DCM_IPC_PORT_DCM_RECV);
+ ret = DcmIpcUtils::sendSocketMsg(DCM_MSG_SCAN_TERMINATED, 0, NULL, DCM_IPC_PORT_DCM_RECV);
if (ret != DCM_SUCCESS) {
dcm_error("send to terminated messge to DCM Main");
}
{
if ((scan_all_item_list == NULL) && (scan_single_item_list == NULL)) {
dcm_debug("Send completed message");
- DcmIpcUtils::sendCompleteMsg(DCM_IPC_MSG_SCAN_COMPLETED, count, msg, port);
+ DcmIpcUtils::sendCompleteMsg(DCM_MSG_SCAN_COMPLETED, count, msg, port);
} else {
if (scan_all_item_list)
dcm_warn("scan_all_item_list");
dcm_debug("msg_type: %d", recv_msg->msg_type);
- if (recv_msg->msg_type == DCM_IPC_MSG_KILL_SERVICE)
+ if (recv_msg->msg_type == DCM_MSG_REQUEST_KILL_SERVER)
{
/* Destroy scan idles, and quit scan thread main loop */
ret = terminateScanOperations();
}
return ret;
}
- else if (recv_msg->msg_type == DCM_IPC_MSG_SCAN_ALL)
+ else if (recv_msg->msg_type == DCM_MSG_REQUEST_ALL_MEDIA)
{
/* Use timer to scan all unscanned images */
ret = dcmDBUtils->_dcm_svc_db_connect(recv_msg->uid);
ScanAllItems();
ret = dcmDBUtils->_dcm_svc_db_disconnect();
}
- else if (recv_msg->msg_type == DCM_IPC_MSG_SCAN_SINGLE)
- {
- ret = dcmDBUtils->_dcm_svc_db_connect(recv_msg->uid);
- if (ret != DCM_SUCCESS) {
- dcm_error("Failed to connect db! err: %d", ret);
- }
- /* Create a scan idle if not exist, and scan single image of which file path is reveived from tcp socket */
- if (recv_msg->msg_size > 0 && recv_msg->msg_size < DCM_IPC_MSG_MAX_SIZE) {
- char *file_path = NULL;
- file_path = strdup(recv_msg->msg);
- if (file_path != NULL) {
- ScanSingleItem((const char *) file_path);
- DCM_SAFE_FREE(file_path);
- } else {
- dcm_error("Failed to copy message!");
- ret = DCM_ERROR_OUT_OF_MEMORY;
- }
- } else {
- dcm_error("Invalid receive message!");
- ret = DCM_ERROR_IPC_INVALID_MSG;
- }
- ret = dcmDBUtils->_dcm_svc_db_disconnect();
- if (ret != DCM_SUCCESS) {
- dcm_error("Failed to disconnect db! err: %d", ret);
- }
- }
else {
dcm_error("Invalid message type(%d)!", recv_msg->msg_type);
ret = DCM_ERROR_IPC_INVALID_MSG;
dcm_error("memory allocation failed");
return FALSE;
}
- async_queue_msg->msg_type = DCM_IPC_MSG_SCAN_READY;
+
+ async_queue_msg->msg_type = DCM_MSG_SCAN_READY;
dcm_debug("scan thread ready : %p", ad->scan_thread_ready);
dcm_debug("async_queue_msg : %d", async_queue_msg->msg_type);
}
/* Send ready response to dcm launcher */
- if (DcmIpcUtils::sendSocketMsg(DCM_IPC_MSG_SERVICE_READY, 0, NULL, DCM_IPC_PORT_MS_RECV) != DCM_SUCCESS) {
+ if (DcmIpcUtils::sendSocketMsg(DCM_MSG_SERVER_READY, 0, NULL, DCM_IPC_PORT_MS_RECV) != DCM_SUCCESS) {
dcm_error("Failed to send ready message");
}
}
}
/* Check if scan thread is created */
- if (async_queue_msg->msg_type == DCM_IPC_MSG_SCAN_READY) {
+ if (async_queue_msg->msg_type == DCM_MSG_SCAN_READY) {
dcm_warn("DCM scan thread is ready!");
g_async_queue_unref(scan_thread_ready);
scan_thread_ready = NULL;
dcm_debug("scan thread is already running!");
}
- if (recv_msg.msg_type == DCM_IPC_MSG_SCAN_TERMINATED) {
+ if (recv_msg.msg_type == DCM_MSG_SCAN_TERMINATED) {
dcm_debug("Scan terminated!");
dcmSvc->scan_thread_working = false;
dcmSvc->createQuitTimerMainLoop();
- } else if (recv_msg.msg_type == DCM_IPC_MSG_SCAN_COMPLETED) {
+ } else if (recv_msg.msg_type == DCM_MSG_SCAN_COMPLETED) {
dcm_debug("Scan completed!");
- ret = DcmIpcUtils::sendClientSocketMsg(-1, DCM_IPC_MSG_SERVICE_COMPLETED, recv_msg.result, recv_msg.msg, DCM_IPC_PORT_MS_RECV);
- } else if (recv_msg.msg_type == DCM_IPC_MSG_KILL_SERVICE) {
+ ret = DcmIpcUtils::sendClientSocketMsg(-1, DCM_MSG_EXTRACT_ALL_DONE, recv_msg.result, recv_msg.msg, DCM_IPC_PORT_MS_RECV);
+ } else if (recv_msg.msg_type == DCM_MSG_REQUEST_KILL_SERVER) {
dcm_warn("Quit dcm-svc main loop!");
- ret = DcmIpcUtils::sendSocketMsg(DCM_IPC_MSG_KILL_SERVICE, recv_msg.uid, recv_msg.msg, DCM_IPC_PORT_SCAN_RECV);
- } else if (recv_msg.msg_type == DCM_IPC_MSG_SCAN_ALL) {
- ret = DcmIpcUtils::sendSocketMsg(DCM_IPC_MSG_SCAN_ALL, recv_msg.uid, NULL, DCM_IPC_PORT_SCAN_RECV);
+ ret = DcmIpcUtils::sendSocketMsg(DCM_MSG_REQUEST_KILL_SERVER, recv_msg.uid, recv_msg.msg, DCM_IPC_PORT_SCAN_RECV);
+ } else if (recv_msg.msg_type == DCM_MSG_REQUEST_ALL_MEDIA) {
+ ret = DcmIpcUtils::sendSocketMsg(DCM_MSG_REQUEST_ALL_MEDIA, recv_msg.uid, NULL, DCM_IPC_PORT_SCAN_RECV);
if (ret == DCM_SUCCESS) {
- ret = DcmIpcUtils::sendClientSocketMsg(client_sock, DCM_IPC_MSG_SCAN_ALL, recv_msg.uid, NULL, DCM_IPC_PORT_DCM_RECV);
+ ret = DcmIpcUtils::sendClientSocketMsg(client_sock, DCM_MSG_REQUEST_ALL_MEDIA, recv_msg.uid, NULL, DCM_IPC_PORT_DCM_RECV);
}
- } else if (recv_msg.msg_type == DCM_IPC_MSG_SCAN_SINGLE) {
+ } else if (recv_msg.msg_type == DCM_MSG_REQUEST_MEDIA) {
dcm_debug("Scan single");
ret = DcmScanMain::ScanSingle(recv_msg.msg, recv_msg.uid, &face_count);
dcm_debug("Scan single result: %d (%d)", ret, face_count);
if (ret == DCM_SUCCESS) {
- ret = DcmIpcUtils::sendClientSocketMsg(client_sock, DCM_IPC_MSG_SCAN_SINGLE, face_count, recv_msg.msg, DCM_IPC_PORT_MS_RECV);
+ ret = DcmIpcUtils::sendClientSocketMsg(client_sock, DCM_MSG_REQUEST_MEDIA, face_count, recv_msg.msg, DCM_IPC_PORT_MS_RECV);
if (ret != DCM_SUCCESS) {
dcm_error("Failed to sendClientSocketMsg! err: %d", ret);
}
} else {
- ret = DcmIpcUtils::sendClientSocketMsg(client_sock, DCM_IPC_MSG_SCAN_SINGLE, ret, recv_msg.msg, DCM_IPC_PORT_MS_RECV);
+ ret = DcmIpcUtils::sendClientSocketMsg(client_sock, DCM_MSG_REQUEST_MEDIA, ret, recv_msg.msg, DCM_IPC_PORT_MS_RECV);
if (ret != DCM_SUCCESS) {
dcm_error("Failed to sendClientSocketMsg! err: %d", ret);
}