return data->result;
}
-static int __activate_req_dispatcher(pm_tool_args *data, uid_t target_uid)
+static int __activate_app(pkgmgr_client *pc,
+ pm_tool_args *data, uid_t target_uid)
{
int ret;
pkgmgrinfo_appinfo_h appinfo_h;
- pkgmgr_client *pc;
- pkgmgr_client *listen_pc = NULL;
const char **pkgs = NULL;
GList *list;
int i;
int n_apps = 0;
+ if (data->global && data->uid != -1) {
+ if (data->uid != __get_current_user_id()) {
+ printf("Invalid uid : %d\n", data->uid);
+ return -1;
+ }
+ target_uid = data->uid;
+ }
+ ret = pkgmgrinfo_appinfo_get_usr_disabled_appinfo(data->pkgid,
+ target_uid, &appinfo_h);
+ if (ret != PMINFO_R_OK) {
+ printf("Failed to get appinfo[%s]\n", data->pkgid);
+ return -1;
+ }
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
+
+ if (data->global) {
+ if (data->uid != -1)
+ /* enable global app for this user only */
+ ret = pkgmgr_client_activate_global_app_for_uid(pc,
+ data->pkgid, __app_return_cb, data,
+ __get_current_user_id());
+ else
+ /* enable global app for all user */
+ ret = pkgmgr_client_usr_activate_app(pc, data->pkgid,
+ __app_return_cb, data, GLOBAL_USER);
+ } else {
+ /* enable local apps */
+ n_apps = g_list_length(data->pkgs);
+ if (n_apps) {
+ pkgs = malloc(sizeof(char *) * n_apps);
+ if (pkgs == NULL) {
+ printf("Out of memory\n");
+ return -1;
+ }
+
+ for (list = data->pkgs, i = 0; list; list = list->next, i++)
+ pkgs[i] = (char *)list->data;
+
+ data->end_count = n_apps;
+ ret = pkgmgr_client_usr_activate_apps(pc, pkgs, n_apps,
+ __apps_return_cb, data, target_uid);
+
+ if (pkgs)
+ free(pkgs);
+ } else {
+ /* enable local app */
+ ret = pkgmgr_client_usr_activate_app(pc, data->pkgid,
+ __app_return_cb, data, target_uid);
+ }
+ }
+
+ return ret;
+}
+
+static int __activate_pkg(pkgmgr_client *pc, pkgmgr_client **listen_pc,
+ pm_tool_args *data, uid_t target_uid)
+{
+ int ret;
+
+ *listen_pc = pkgmgr_client_new(PC_LISTENING);
+ if (*listen_pc == NULL) {
+ printf("PkgMgr Client Creation Failed\n");
+ return -1;
+ }
+ ret = pkgmgr_client_listen_status(*listen_pc, __return_cb, data);
+ if (ret < 0) {
+ printf("Failed to set callback[%d]\n", ret);
+ return ret;
+ }
+ return pkgmgr_client_usr_activate(pc, data->pkg_type, data->pkgid,
+ target_uid);
+}
+
+static int __activate_req_dispatcher(pm_tool_args *data, uid_t target_uid)
+{
+ int ret;
+ pkgmgr_client *pc;
+ pkgmgr_client *listen_pc = NULL;
+
if (data->pkg_type[0] == '\0' || data->pkgid[0] == '\0') {
__invalid_arg_handler(data);
return -1;
printf("set_app_label is done\n");
}
- if (strcmp(data->pkg_type, "app") == 0) {
- if (data->global && data->uid != -1) {
- if (data->uid != __get_current_user_id()) {
- printf("Invalid uid : %d\n", data->uid);
- pkgmgr_client_free(pc);
- return -1;
- }
- target_uid = data->uid;
- }
- ret = pkgmgrinfo_appinfo_get_usr_disabled_appinfo(data->pkgid,
- target_uid, &appinfo_h);
- if (ret != PMINFO_R_OK) {
- printf("Failed to get appinfo[%s]\n", data->pkgid);
- pkgmgr_client_free(pc);
- return -1;
- }
-
- if (data->global) {
- if (data->uid != -1)
- /* enable global app for this user only */
- ret = pkgmgr_client_activate_global_app_for_uid(pc,
- data->pkgid, __app_return_cb, data,
- __get_current_user_id());
- else
- /* enable global app for all user */
- ret = pkgmgr_client_usr_activate_app(pc, data->pkgid,
- __app_return_cb, data, GLOBAL_USER);
- } else {
- /* enable local apps */
- n_apps = g_list_length(data->pkgs);
- if (n_apps) {
- pkgs = malloc(sizeof(char *) * n_apps);
- if (pkgs == NULL)
- printf("Out of memory\n");
-
- for (list = data->pkgs, i = 0; list; list = list->next, i++) {
- printf("ensable multiple apps %s\n", (char *)list->data);
- pkgs[i] = (char *)list->data;
- }
-
- data->end_count = n_apps;
- ret = pkgmgr_client_usr_activate_apps(pc, pkgs, n_apps,
- __apps_return_cb, data, target_uid);
+ if (strcmp(data->pkg_type, "app") == 0)
+ ret = __activate_app(pc, data, target_uid);
+ else
+ ret = __activate_pkg(pc, &listen_pc, data, target_uid);
- if (pkgs)
- free(pkgs);
- } else {
- /* enable local app */
- printf("enable apps %s\n", data->pkgid);
- ret = pkgmgr_client_usr_activate_app(pc, data->pkgid,
- __app_return_cb, data, target_uid);
- }
- }
- pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
- } else {
- listen_pc = pkgmgr_client_new(PC_LISTENING);
- if (listen_pc == NULL) {
- printf("PkgMgr Client Creation Failed\n");
- pkgmgr_client_free(pc);
- return -1;
- }
- ret = pkgmgr_client_listen_status(listen_pc, __return_cb, data);
- if (ret < 0) {
- printf("Failed to set callback[%d]\n", ret);
- pkgmgr_client_free(pc);
- pkgmgr_client_free(listen_pc);
- return ret;
- }
- ret = pkgmgr_client_usr_activate(pc, data->pkg_type, data->pkgid,
- target_uid);
- }
if (ret < 0) {
pkgmgr_client_free(pc);
if (listen_pc)
return data->result;
}
-static int __deactivate_req_dispatcher(pm_tool_args *data, uid_t target_uid)
+static int __deactivate_app(pkgmgr_client *pc,
+ pm_tool_args *data, uid_t target_uid)
{
int ret;
pkgmgrinfo_appinfo_h appinfo_h;
- pkgmgr_client *pc;
- pkgmgr_client *listen_pc = NULL;
const char **pkgs = NULL;
GList *list;
int i;
int n_apps = 0;
+ ret = pkgmgrinfo_appinfo_get_usr_appinfo(data->pkgid,
+ target_uid, &appinfo_h);
+ if (ret != PMINFO_R_OK) {
+ printf("Failed to get appinfo[%s]\n", data->pkgid);
+ return -1;
+ }
+ pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
+
+ if (data->global) {
+ if (data->uid != -1 && data->uid != getuid()) {
+ printf("Invalid uid : %d\n", data->uid);
+ return -1;
+ }
+ if (data->uid != -1)
+ /* disable global app for this user only */
+ ret = pkgmgr_client_deactivate_global_app_for_uid(pc,
+ data->pkgid, __app_return_cb, NULL,
+ __get_current_user_id());
+ else
+ /* disable global app for all user */
+ ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid,
+ __app_return_cb, NULL, GLOBAL_USER);
+ } else {
+ /* disable local apps */
+ n_apps = g_list_length(data->pkgs);
+ if (n_apps) {
+ pkgs = malloc(sizeof(char *) * n_apps);
+ if (pkgs == NULL) {
+ printf("Out of memory\n");
+ return -1;
+ }
+
+ for (list = data->pkgs, i = 0; list; list = list->next, i++)
+ pkgs[i] = (char *)list->data;
+
+ data->end_count = n_apps;
+ ret = pkgmgr_client_usr_deactivate_apps(pc, pkgs, n_apps,
+ __apps_return_cb, data, target_uid);
+
+ if (pkgs)
+ free(pkgs);
+ } else {
+ /* disable local app */
+ ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid,
+ __app_return_cb, NULL, target_uid);
+ }
+ }
+
+ return ret;
+}
+
+static int __deactivate_pkg(pkgmgr_client *pc, pkgmgr_client **listen_pc,
+ pm_tool_args *data, uid_t target_uid)
+{
+ int ret;
+
+ *listen_pc = pkgmgr_client_new(PC_LISTENING);
+ if (*listen_pc == NULL) {
+ printf("PkgMgr Client Creation Failed\n");
+ return -1;
+ }
+ ret = pkgmgr_client_listen_status(*listen_pc, __return_cb, data);
+ if (ret < 0) {
+ printf("Failed to set callback[%d]\n", ret);
+ return ret;
+ }
+ return pkgmgr_client_usr_deactivate(pc, data->pkg_type, data->pkgid,
+ target_uid);
+}
+
+static int __deactivate_req_dispatcher(pm_tool_args *data, uid_t target_uid)
+{
+ int ret;
+ pkgmgr_client *pc;
+ pkgmgr_client *listen_pc = NULL;
+
if (data->pkg_type[0] == '\0' || data->pkgid[0] == '\0') {
__invalid_arg_handler(data);
return -1;
return -1;
}
- if (strcmp(data->pkg_type, "app") == 0) {
- ret = pkgmgrinfo_appinfo_get_usr_appinfo(data->pkgid,
- target_uid, &appinfo_h);
- if (ret != PMINFO_R_OK) {
- printf("Failed to get appinfo[%s]\n", data->pkgid);
- pkgmgr_client_free(pc);
- return -1;
- }
-
- if (data->global) {
- if (data->uid != -1 && data->uid != getuid()) {
- printf("Invalid uid : %d\n", data->uid);
- pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
- pkgmgr_client_free(pc);
- return -1;
- }
- if (data->uid != -1)
- /* disable global app for this user only */
- ret = pkgmgr_client_deactivate_global_app_for_uid(pc,
- data->pkgid, __app_return_cb, NULL,
- __get_current_user_id());
- else
- /* disable global app for all user */
- ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid,
- __app_return_cb, NULL, GLOBAL_USER);
- } else {
- /* disable local apps */
- n_apps = g_list_length(data->pkgs);
- if (n_apps) {
- pkgs = malloc(sizeof(char *) * n_apps);
- if (pkgs == NULL)
- printf("Out of memory\n");
-
- for (list = data->pkgs, i = 0; list; list = list->next, i++) {
- printf("disable multiple apps %s\n", (char *)list->data);
- pkgs[i] = (char *)list->data;
- }
-
- data->end_count = n_apps;
- ret = pkgmgr_client_usr_deactivate_apps(pc, pkgs, n_apps,
- __apps_return_cb, data, target_uid);
-
- if (pkgs)
- free(pkgs);
- } else {
- /* disable local app */
- ret = pkgmgr_client_usr_deactivate_app(pc, data->pkgid,
- __app_return_cb, NULL, target_uid);
- }
- }
+ if (strcmp(data->pkg_type, "app") == 0)
+ ret = __deactivate_app(pc, data, target_uid);
+ else
+ ret = __deactivate_pkg(pc, &listen_pc, data, target_uid);
- pkgmgrinfo_appinfo_destroy_appinfo(appinfo_h);
- } else {
- listen_pc = pkgmgr_client_new(PC_LISTENING);
- if (listen_pc == NULL) {
- printf("PkgMgr Client Creation Failed\n");
- pkgmgr_client_free(pc);
- return -1;
- }
- ret = pkgmgr_client_listen_status(listen_pc, __return_cb, data);
- if (ret < 0) {
- printf("Failed to set callback[%d]\n", ret);
- pkgmgr_client_free(pc);
- pkgmgr_client_free(listen_pc);
- return ret;
- }
- ret = pkgmgr_client_usr_deactivate(pc, data->pkg_type, data->pkgid,
- target_uid);
- }
if (ret < 0) {
pkgmgr_client_free(pc);
if (listen_pc)