From 39ced63cf56e97b2ba298e3cf5279253255ce367 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Mon, 12 Sep 2016 11:39:16 +0900 Subject: [PATCH] Remove duplicated codes Change-Id: I815838bbb6e423ce35f58719d02fa3fcff8095cb Signed-off-by: Sangyoon Jang --- installer/pkgmgr_installer.c | 120 +++++------------------------------ 1 file changed, 15 insertions(+), 105 deletions(-) diff --git a/installer/pkgmgr_installer.c b/installer/pkgmgr_installer.c index e814bfa..6182efd 100644 --- a/installer/pkgmgr_installer.c +++ b/installer/pkgmgr_installer.c @@ -133,42 +133,9 @@ static const char *__get_signal_name(pkgmgr_installer *pi, const char *key) return NULL; } -static int __send_signal_for_app_event(pkgmgr_installer *pi, const char *pkg_type, - const char *pkgid, const char *appid, const char *key, const char *val) -{ - char *sid; - const char *name; - GError *err = NULL; - - if (!pi || pi->conn == NULL || appid == NULL) - return -1; - - sid = pi->session_id; - if (!sid) - sid = ""; - - name = __get_signal_name(pi, key); - if (name == NULL) { - ERR("unknown signal type"); - return -1; - } - - if (g_dbus_connection_emit_signal(pi->conn, NULL, - PKGMGR_INSTALLER_DBUS_OBJECT_PATH, - PKGMGR_INSTALLER_DBUS_INTERFACE, name, - g_variant_new("(ussssss)", pi->target_uid, sid, - pkg_type, pkgid, appid, key, val), &err) - != TRUE) { - ERR("failed to send dbus signal: %s", err->message); - g_error_free(err); - return -1; - } - - return 0; -} - static int __send_signal_for_event(pkgmgr_installer *pi, const char *pkg_type, - const char *pkgid, const char *key, const char *val) + const char *pkgid, const char *appid, const char *key, + const char *val) { char *sid; const char *name; @@ -191,7 +158,8 @@ static int __send_signal_for_event(pkgmgr_installer *pi, const char *pkg_type, PKGMGR_INSTALLER_DBUS_OBJECT_PATH, PKGMGR_INSTALLER_DBUS_INTERFACE, name, g_variant_new("(ussssss)", pi->target_uid, sid, - pkg_type, pkgid, "", key, val), &err) + pkg_type, pkgid, appid ? appid : "", + key, val), &err) != TRUE) { ERR("failed to send dbus signal: %s", err->message); g_error_free(err); @@ -235,8 +203,7 @@ static int __send_signal_to_agent(uid_t uid, void *data, size_t len) return 0; } -/* TODO: it should be refactored */ -static int __send_app_signal_for_event_for_uid(pkgmgr_installer *pi, uid_t uid, +static int __send_signal_for_event_for_uid(pkgmgr_installer *pi, uid_t uid, const char *pkg_type, const char *pkgid, const char *appid, const char *key, const char *val) { @@ -269,70 +236,11 @@ static int __send_app_signal_for_event_for_uid(pkgmgr_installer *pi, uid_t uid, data_len += name_size; gv = g_variant_new("(ussssss)", pi->target_uid, sid, - pkg_type, pkgid, appid, key, val); - gv_len = g_variant_get_size(gv); - gv_data = g_malloc(gv_len); - g_variant_store(gv, gv_data); - g_variant_unref(gv); - data_len += gv_len; - - data = malloc(data_len); - ptr = data; - memcpy(ptr, &name_size, sizeof(size_t)); - ptr += sizeof(size_t); - memcpy(ptr, &gv_len, sizeof(gsize)); - ptr += sizeof(gsize); - memcpy(ptr, name, name_size); - ptr += name_size; - memcpy(ptr, gv_data, gv_len); - - if (__send_signal_to_agent(uid, data, data_len)) { - ERR("failed to send signal to agent"); - g_free(data); - return -1; - } - - g_free(gv_data); - free(data); - - return 0; -} - -/* TODO: it should be refactored */ -static int __send_signal_for_event_for_uid(pkgmgr_installer *pi, uid_t uid, - const char *pkg_type, const char *pkgid, - const char *key, const char *val) -{ - char *sid; - const char *name; - size_t name_size; - GVariant *gv; - gsize gv_len; - gpointer gv_data; - void *data; - void *ptr; - size_t data_len; - - if (!pi || pi->conn == NULL) - return -1; - - sid = pi->session_id; - if (!sid) - sid = ""; - - data_len = sizeof(size_t) + sizeof(gsize); - - name = __get_signal_name(pi, key); - if (name == NULL) { - ERR("unknown signal type"); + pkg_type, pkgid, appid ? appid : "", key, val); + if (gv == NULL) { + ERR("failed to create GVariant instance"); return -1; } - /* including null byte */ - name_size = strlen(name) + 1; - data_len += name_size; - - gv = g_variant_new("(ussssss)", pi->target_uid, sid, - pkg_type, pkgid, "", key, val); gv_len = g_variant_get_size(gv); gv_data = g_malloc(gv_len); g_variant_store(gv, gv_data); @@ -722,7 +630,7 @@ API int pkgmgr_installer_send_app_uninstall_signal(pkgmgr_installer *pi, const char *val) { int ret = 0; - ret = __send_signal_for_event(pi, pkg_type, pkgid, + ret = __send_signal_for_event(pi, pkg_type, pkgid, NULL, PKGMGR_INSTALLER_APPID_KEY_STR, val); return ret; } @@ -752,7 +660,7 @@ pkgmgr_installer_send_app_signal(pkgmgr_installer *pi, return -1; } - r = __send_signal_for_app_event(pi, pkg_type, pkgid, appid, key, val); + r = __send_signal_for_event(pi, pkg_type, pkgid, appid, key, val); return r; } @@ -774,7 +682,7 @@ pkgmgr_installer_send_signal(pkgmgr_installer *pi, strcmp(val, PKGMGR_INSTALLER_UPGRADE_EVENT_STR) == 0) pi->request_type = PKGMGR_REQ_UPGRADE; - r = __send_signal_for_event(pi, pkg_type, pkgid, key, val); + r = __send_signal_for_event(pi, pkg_type, pkgid, NULL, key, val); return r; } @@ -790,7 +698,8 @@ API int pkgmgr_installer_send_app_signal_for_uid(pkgmgr_installer *pi, return -1; } - r = __send_app_signal_for_event_for_uid(pi, uid, pkg_type, pkgid, appid, key, val); + r = __send_signal_for_event_for_uid(pi, uid, pkg_type, pkgid, appid, + key, val); return r; } @@ -810,7 +719,8 @@ API int pkgmgr_installer_send_signal_for_uid(pkgmgr_installer *pi, strcmp(val, PKGMGR_INSTALLER_UPGRADE_EVENT_STR) == 0) pi->request_type = PKGMGR_REQ_UPGRADE; - r = __send_signal_for_event_for_uid(pi, uid, pkg_type, pkgid, key, val); + r = __send_signal_for_event_for_uid(pi, uid, pkg_type, pkgid, NULL, + key, val); return r; } -- 2.34.1