IPC Fail fix. Use common socket msg format. remove DcmIpcMsg and use dcmMsg 81/133581/2
authorHaejeong Kim <backto.kim@samsung.com>
Tue, 13 Jun 2017 01:58:47 +0000 (10:58 +0900)
committerHaejeong Kim <backto.kim@samsung.com>
Tue, 13 Jun 2017 01:59:52 +0000 (10:59 +0900)
Change-Id: I24b11032c45c34b9344bb547a423de87857bc32f

include/DcmIpcUtils.h
include/DcmTypes.h
packaging/dcm-service.spec
src/DcmIpcUtils.cpp
src/DcmScanSvc.cpp
svc/DcmMainSvc.cpp

index 00bab422ab4194ddcebe2566ee66486118637043..ccf5466e9bc22c8d804bc7a0114d15c025266e25 100755 (executable)
 #define _DCM_SVC_IPC_H_
 
 #include <DcmTypes.h>
+#include <media-server-ipc.h>
 
 #define DCM_TIMEOUT_SEC_60                     60              /**< Response to media server time out */
 
 namespace DcmIpcUtils {
        int createSocket(int *socket_fd, DcmIpcPortType port);
        int acceptSocket(int serv_sock, int *client_sock);
-       int receiveSocketMsg(int client_sock, DcmIpcMsg *recv_msg);
+       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);
index f88b417d80e64917cd55a8d22576f92225289d07..ad606b35263b4c791101cca6f063d0d6b51c3f92 100755 (executable)
@@ -75,15 +75,6 @@ typedef enum {
        DCM_IPC_PORT_MAX,
 } DcmIpcPortType;
 
-typedef struct {
-       DcmIpcMsgType msg_type;
-       int pid;
-       uid_t uid;
-       int result;
-       size_t msg_size; /*this is size of message below and this does not include the terminationg null byte ('\0'). */
-       char msg[DCM_IPC_MSG_MAX_SIZE];
-} DcmIpcMsg;
-
 typedef enum {
        DCM_SCAN_ITEM_TYPE_NONE,
        DCM_SCAN_ITEM_TYPE_SCAN_ALL,
index 96bc169ce3cdec5bbb91e8493136ee42fc1ab087..2a0179978e873ddf67eb5bd7cd746a1dddd7a28e 100755 (executable)
@@ -1,6 +1,6 @@
 Name:       dcm-service
 Summary:    A media DCM(Digital Contents Management) Service
-Version:    0.0.16
+Version:    0.0.17
 Release:    0
 Group:      Multimedia/Service
 License:    Apache-2.0
index 7d347eabb763338846f0c486c3f96baa7953847f..72a6d3902ebad45ba5a2cb5e2d5585e5133dbd3d 100755 (executable)
@@ -39,11 +39,11 @@ static char DCM_IPC_PATH[][100] = {
                        {"/var/run/media-server/media_ipc_dcmcomm.socket"},
 };
 
-int DcmIpcUtils::receiveSocketMsg(int client_sock, DcmIpcMsg *recv_msg)
+int DcmIpcUtils::receiveSocketMsg(int client_sock, dcmMsg *recv_msg)
 {
        int recv_msg_size = 0;
 
-       if ((recv_msg_size = read(client_sock, recv_msg, sizeof(DcmIpcMsg))) < 0) {
+       if ((recv_msg_size = read(client_sock, recv_msg, sizeof(dcmMsg))) < 0) {
                if (errno == EWOULDBLOCK) {
                        dcm_error("Timeout. Can't try any more");
                        return DCM_ERROR_IPC;
@@ -142,7 +142,7 @@ int DcmIpcUtils::sendClientSocketMsg(int socket_fd, DcmIpcMsgType msg_type, unsi
        }
        dcm_debug("Send message type: %d %s %d", msg_type, msg, result);
 
-       DcmIpcMsg send_msg;
+       dcmMsg send_msg;
        int sock = -1;
 
        if (socket_fd < 0) {
@@ -175,7 +175,7 @@ int DcmIpcUtils::sendClientSocketMsg(int socket_fd, DcmIpcMsgType msg_type, unsi
        }
 
        /* Prepare send message */
-       memset((void *)&send_msg, 0, sizeof(DcmIpcMsg));
+       memset((void *)&send_msg, 0, sizeof(dcmMsg));
        send_msg.msg_type = msg_type;
        send_msg.result = (int)result;
        if (msg != NULL) {
@@ -213,10 +213,10 @@ int DcmIpcUtils::sendSocketMsg(DcmIpcMsgType msg_type, uid_t uid, const char *ms
 
        int socket_fd = -1;
        struct sockaddr_un serv_addr;
-       DcmIpcMsg send_msg;
+       dcmMsg send_msg;
 
        /* Prepare send message */
-       memset((void *)&send_msg, 0, sizeof(DcmIpcMsg));
+       memset((void *)&send_msg, 0, sizeof(dcmMsg));
        send_msg.msg_type = msg_type;
        send_msg.uid = uid;
        if (msg != NULL) {
@@ -269,10 +269,10 @@ int DcmIpcUtils::sendCompleteMsg(DcmIpcMsgType msg_type, const unsigned int coun
 
        int socket_fd = -1;
        struct sockaddr_un serv_addr;
-       DcmIpcMsg send_msg;
+       dcmMsg send_msg;
 
        /* Prepare send message */
-       memset((void *)&send_msg, 0, sizeof(DcmIpcMsg));
+       memset((void *)&send_msg, 0, sizeof(dcmMsg));
        send_msg.msg_type = msg_type;
        send_msg.result = count;
        if (msg != NULL) {
index 57fe46bf36d98eff2ab9673b6ae42359f397d959..16d3b14114df873bf267bc5d2e541ec63247e12b 100755 (executable)
@@ -73,7 +73,7 @@ public:
        int ScanAllItems();
        int ScanSingleItem(const char *file_path);
        int terminateScanOperations();
-       int receiveMsg(DcmIpcMsg *recv_msg);
+       int receiveMsg(dcmMsg *recv_msg);
 
 };
 
@@ -590,7 +590,7 @@ int DcmScanSvc::terminateScanOperations()
        return createQuitTimerScanThread();
 }
 
-int DcmScanSvc::receiveMsg(DcmIpcMsg *recv_msg)
+int DcmScanSvc::receiveMsg(dcmMsg *recv_msg)
 {
        int ret = DCM_SUCCESS;
 
@@ -659,7 +659,7 @@ gboolean DcmScanCallback::readMsg(GIOChannel *src, GIOCondition condition, gpoin
        DcmScanSvc *dcmScanSvc = (DcmScanSvc *) data;
        int sock = -1;
        int client_sock = -1;
-       DcmIpcMsg recv_msg;
+       dcmMsg recv_msg;
        int err = 0;
 
        DCM_CHECK_FALSE(data);
@@ -704,14 +704,14 @@ DCM_SVC_SCAN_READ_THREAD_RECV_SOCKET_FAILED:
 gboolean DcmScanCallback::readyScanThreadIdle(gpointer data)
 {
        DcmMainSvc *ad = (DcmMainSvc *) data;
-       DcmIpcMsg *async_queue_msg = NULL;
+       dcmMsg *async_queue_msg = NULL;
 
        dcm_debug_fenter();
 
        DCM_CHECK_FALSE(data);
        DCM_CHECK_FALSE(ad->scan_thread_ready);
 
-       async_queue_msg = (DcmIpcMsg*) g_malloc0(sizeof(DcmIpcMsg));
+       async_queue_msg = (dcmMsg*) g_malloc0(sizeof(dcmMsg));
        if (async_queue_msg == NULL) {
                dcm_error("memory allocation failed");
                return FALSE;
index e33896c9b8e7eb918ed6652fba1551931e9eb219..123c0d2f20b814566a2041f46bdd1518907190d6 100755 (executable)
@@ -76,10 +76,10 @@ void DcmMainSvc::dcmServiceFinishjobs(void)
 int DcmMainSvc::waitScanThreadReady()
 {
        int ret = DCM_SUCCESS;
-       DcmIpcMsg *async_queue_msg = NULL;
+       dcmMsg *async_queue_msg = NULL;
 
        /* Wait until the scan thread is ready (timeout: 5 sec) */
-       async_queue_msg = (DcmIpcMsg *)g_async_queue_timeout_pop(scan_thread_ready, 5000000);
+       async_queue_msg = (dcmMsg *)g_async_queue_timeout_pop(scan_thread_ready, 5000000);
        if (async_queue_msg == NULL) {
                dcm_error("Async queue timeout!");
                return DCM_ERROR_ASYNC_QUEUE_FAILED;
@@ -135,7 +135,7 @@ int DcmMainSvc::createScanThread()
 
 gboolean DcmMainSvcCallBack::readMsg(GIOChannel *src, GIOCondition condition, gpointer data)
 {
-       DcmIpcMsg recv_msg;
+       dcmMsg recv_msg;
        int sock = -1;
        int client_sock = -1;
        int ret = 0;