Remove duplicated codes 70/87870/1
authorSangyoon Jang <s89.jang@samsung.com>
Mon, 12 Sep 2016 02:39:16 +0000 (11:39 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Mon, 12 Sep 2016 02:39:16 +0000 (11:39 +0900)
Change-Id: I815838bbb6e423ce35f58719d02fa3fcff8095cb
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
installer/pkgmgr_installer.c

index e814bfa5bd1f9f8ed3c783538a530594a468909f..6182efdf0ce142506671a0617626ca576d564a54 100644 (file)
@@ -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;
 }