From: Junghyun Yeon Date: Wed, 16 Mar 2016 11:51:23 +0000 (+0900) Subject: seperate app enable/disable signal X-Git-Tag: accepted/tizen/common/20160324.084232^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F40%2F62540%2F5;p=platform%2Fcore%2Fappfw%2Fpkgmgr-server.git seperate app enable/disable signal Change-Id: I6431cc7502d51b30d28355baa84fdb9957e81576 Signed-off-by: Junghyun Yeon --- diff --git a/src/pkgmgr-server.c b/src/pkgmgr-server.c index d3a780d..17a8617 100644 --- a/src/pkgmgr-server.c +++ b/src/pkgmgr-server.c @@ -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; } diff --git a/src/request.c b/src/request.c index d26165b..3e89ed1 100644 --- a/src/request.c +++ b/src/request.c @@ -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));