seperate app enable/disable signal 40/62540/5 accepted/tizen/common/20160324.084232 accepted/tizen/ivi/20160323.010808 accepted/tizen/ivi/20160324.131637 accepted/tizen/mobile/20160323.010712 accepted/tizen/mobile/20160324.132918 accepted/tizen/tv/20160323.010733 accepted/tizen/tv/20160324.132738 accepted/tizen/wearable/20160323.010753 accepted/tizen/wearable/20160324.132702 submit/tizen/20160322.002805 submit/tizen/20160323.235918
authorJunghyun Yeon <jungh.yeon@samsung.com>
Wed, 16 Mar 2016 11:51:23 +0000 (20:51 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Mon, 21 Mar 2016 11:08:22 +0000 (20:08 +0900)
Change-Id: I6431cc7502d51b30d28355baa84fdb9957e81576
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/pkgmgr-server.c
src/request.c

index d3a780d..17a8617 100644 (file)
@@ -205,7 +205,7 @@ static void __unset_recovery_mode(uid_t uid, char *pkgid, char *pkg_type)
 
 static void __send_app_signal(uid_t uid, const char *req_id,
                const char *pkgid, const char *appid,
-               const char *key, const char *val)
+               const char *key, const char *val, int req_type)
 {
        pkgmgr_installer *pi;
 
@@ -217,8 +217,19 @@ static void __send_app_signal(uid_t uid, const char *req_id,
 
        if (pkgmgr_installer_set_uid(pi, uid))
                goto catch;
-       if (pkgmgr_installer_set_request_type(pi,PKGMGR_REQ_ENABLE_DISABLE_APP))
+       if (req_type == PKGMGR_REQUEST_TYPE_ENABLE_GLOBAL_APP_FOR_UID
+                       || req_type == PKGMGR_REQUEST_TYPE_ENABLE_APP) {
+               if (pkgmgr_installer_set_request_type(pi, PKGMGR_REQ_ENABLE_APP))
+                       goto catch;
+       } else if (req_type == PKGMGR_REQUEST_TYPE_DISABLE_GLOBAL_APP_FOR_UID
+                       || req_type == PKGMGR_REQUEST_TYPE_DISABLE_APP) {
+               if (pkgmgr_installer_set_request_type(pi, PKGMGR_REQ_DISABLE_APP))
+                       goto catch;
+       } else {
+               DBG("Unsupported req_type[%d]", req_type);
                goto catch;
+       }
+
        if (pkgmgr_installer_set_session_id(pi, req_id))
                goto catch;
        pkgmgr_installer_send_app_signal(pi, "app", pkgid, appid, key, val);
@@ -925,23 +936,27 @@ static int __process_enable_app(pm_dbus_msg *item)
 
        __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
                        PKGMGR_INSTALLER_START_KEY_STR,
-                       PKGMGR_INSTALLER_APP_ENABLE_EVENT_STR);
+                       PKGMGR_INSTALLER_APP_ENABLE_EVENT_STR, item->req_type);
 
        /* get actual pkgid and replace it to appid which is currently stored at pkgid variable */
        ret = __change_item_info(item, item->uid);
        if (ret != PMINFO_R_OK || strlen(item->appid) == 0) {
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
                return ret;
        }
 
        ret = pkgmgr_parser_update_app_disable_info_in_usr_db(item->appid, item->uid, 0);
        if (ret != PMINFO_R_OK)
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
        else
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR,
+                               item->req_type);
+
 
        return ret;
 }
@@ -952,30 +967,33 @@ static int __process_disable_app(pm_dbus_msg *item)
 
        __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
                        PKGMGR_INSTALLER_START_KEY_STR,
-                       PKGMGR_INSTALLER_APP_DISABLE_EVENT_STR);
+                       PKGMGR_INSTALLER_APP_DISABLE_EVENT_STR, item->req_type);
 
        /* get actual pkgid and replace it to appid which is currently stored at pkgid variable */
        ret = __change_item_info(item, item->uid);
        if (ret != PMINFO_R_OK || strlen(item->appid) == 0) {
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
                return ret;
        }
 
        ret = __kill_app(item->appid, item->uid);
        if (ret != PMINFO_R_OK) {
-               __send_app_signal(item->uid, item->req_id, item->pkg_type,
-                               item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+               __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
        }
 
        ret = pkgmgr_parser_update_app_disable_info_in_usr_db(item->appid, item->uid, 1);
        if (ret != PMINFO_R_OK)
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
        else
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR,
+                               item->req_type);
 
        return ret;
 }
@@ -986,23 +1004,26 @@ static int __process_enable_global_app_for_uid(pm_dbus_msg *item)
 
        __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
                        PKGMGR_INSTALLER_START_KEY_STR,
-                       PKGMGR_INSTALLER_GLOBAL_APP_ENABLE_FOR_UID);
+                       PKGMGR_INSTALLER_GLOBAL_APP_ENABLE_FOR_UID, item->req_type);
 
        /* get actual pkgid and replace it to appid which is currently stored at pkgid variable */
        ret = __change_item_info(item, item->uid);
        if (ret != PMINFO_R_OK || strlen(item->appid) == 0) {
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
                return ret;
        }
 
        ret = pkgmgr_parser_update_global_app_disable_for_uid_info_in_db(item->appid, item->uid, 0);
        if (ret != PMINFO_R_OK)
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
        else
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR,
+                               item->req_type);
 
        return ret;
 }
@@ -1014,25 +1035,29 @@ static int __process_disable_global_app_for_uid(pm_dbus_msg *item)
        __send_app_signal(item->uid, item->req_id,
                        item->pkgid, item->pkgid,
                        PKGMGR_INSTALLER_START_KEY_STR,
-                       PKGMGR_INSTALLER_GLOBAL_APP_DISABLE_FOR_UID);
+                       PKGMGR_INSTALLER_GLOBAL_APP_DISABLE_FOR_UID, item->req_type);
 
        /* get actual pkgid and replace it to appid which is currently stored at pkgid variable */
        ret = __change_item_info(item, GLOBAL_USER);
        if (ret != PMINFO_R_OK || strlen(item->appid) == 0) {
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->pkgid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
                return ret;
        }
 
        ret = __kill_app(item->appid, item->uid);
+       ret = pkgmgr_parser_update_global_app_disable_for_uid_info_in_db(item->appid,
+               item->uid, 1);
 
-       ret = pkgmgr_parser_update_global_app_disable_for_uid_info_in_db(item->appid, item->uid, 1);
        if (ret != PMINFO_R_OK)
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_FAIL_EVENT_STR,
+                               item->req_type);
        else
                __send_app_signal(item->uid, item->req_id, item->pkgid, item->appid,
-                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR);
+                               PKGMGR_INSTALLER_END_KEY_STR, PKGMGR_INSTALLER_OK_EVENT_STR,
+                               item->req_type);
 
        return ret;
 }
index d26165b..3e89ed1 100644 (file)
@@ -356,7 +356,7 @@ static int __handle_request_enable_pkg(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_ENABLE_PKG, &pkgtype,
+       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_ENABLE_PKG, pkgtype,
                                pkgid, "")) {
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", PKGMGR_R_ESYSTEM));
@@ -383,7 +383,7 @@ static int __handle_request_disable_pkg(uid_t uid,
                return -1;
        }
 
-       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_DISABLE_PKG, &pkgtype,
+       if (_pm_queue_push(target_uid, "", PKGMGR_REQUEST_TYPE_DISABLE_PKG, pkgtype,
                                pkgid, "")) {
                g_dbus_method_invocation_return_value(invocation,
                                g_variant_new("(i)", PKGMGR_R_ESYSTEM));