Change dbus function name 31/255531/2
authortaemin.yeom <taemin.yeom@samsung.com>
Fri, 19 Mar 2021 05:14:10 +0000 (14:14 +0900)
committertaemin.yeom <taemin.yeom@samsung.com>
Fri, 19 Mar 2021 06:59:15 +0000 (15:59 +0900)
Change-Id: I67b2b5d555db01ecbd32078380662e90f1dc3b6f
Signed-off-by: taemin.yeom <taemin.yeom@samsung.com>
src/libgdbus/libgdbus.c
src/libgdbus/libgdbus.h
src/libsystemd/libsystemd.c

index 3679337..9295582 100644 (file)
@@ -32,7 +32,7 @@
 static GBusType g_default_bus_type = G_BUS_TYPE_SYSTEM;
 pthread_mutex_t g_mutex = PTHREAD_MUTEX_INITIALIZER;
 
-void dbus_handle_set_default_bus_type(GBusType bus_type)
+void gdbus_set_default_bus_type(GBusType bus_type)
 {
        if (bus_type != G_BUS_TYPE_SYSTEM && bus_type != G_BUS_TYPE_SESSION)
                return ;
@@ -42,7 +42,7 @@ void dbus_handle_set_default_bus_type(GBusType bus_type)
        pthread_mutex_unlock(&g_mutex);
 }
 
-GBusType dbus_handle_get_default_bus_type(void)
+GBusType gdbus_get_default_bus_type(void)
 {
        GBusType type;
 
@@ -88,33 +88,33 @@ typedef struct {
 /* global shared bus : system, session */
 static dbus_handle_s g_dh[2];
 
-static dbus_handle_s *_dbus_handle_get_connection(GBusType bus_type);
+static dbus_handle_s *_gdbus_get_connection(GBusType bus_type);
 
-dbus_handle_s * _dbus_handle_get_default_connection(void)
+dbus_handle_s * _gdbus_get_default_connection(void)
 {
-       return _dbus_handle_get_connection(dbus_handle_get_default_bus_type());
+       return _gdbus_get_connection(gdbus_get_default_bus_type());
 }
 
-#define dbus_handle_lock(handle) do {\
+#define gdbus_lock(handle) do {\
        assert(handle);\
        pthread_mutex_lock(&((handle)->mutex));\
 } while (0);
 
-#define dbus_handle_unlock(handle) do {\
+#define gdbus_unlock(handle) do {\
        assert(handle);\
        pthread_mutex_unlock(&(handle)->mutex);\
 } while (0);
 
-#define dcl_dbus_handle() dbus_handle_s *dh = (dbus_handle_s *)handle;
-#define dcl_dbus_handle_null_check() dbus_handle_s *dh = (dbus_handle_s *)handle;\
+#define dcl_gdbus() dbus_handle_s *dh = (dbus_handle_s *)handle;
+#define dcl_gdbus_null_check() dbus_handle_s *dh = (dbus_handle_s *)handle;\
        if (!dh) {\
        _E("dbus handle is null\n");\
        return 0;\
        }
 
-dbus_object_handle_s * _dbus_handle_lookup_object(GList *list_obj, const char *obj_path);
-dbus_interface_s * _dbus_handle_lookup_interface(GList *list_iface, const char *iface_name);
-dbus_method_s * _dbus_handle_lookup_method(GList *list_methods, const char *method_name);
+dbus_object_handle_s * _gdbus_lookup_object(GList *list_obj, const char *obj_path);
+dbus_interface_s * _gdbus_lookup_interface(GList *list_iface, const char *iface_name);
+dbus_method_s * _gdbus_lookup_method(GList *list_methods, const char *method_name);
 
 dbus_interface_s *_iface_u_to_s(const dbus_interface_u *iface_u)
 {
@@ -196,7 +196,7 @@ static GDBusConnection * _get_bus_private(GBusType bus_type)
 }
 
 /* ref cout is 1 */
-static dbus_handle_s *_dbus_handle_get_connection(GBusType bus_type)
+static dbus_handle_s *_gdbus_get_connection(GBusType bus_type)
 {
        int ibus = bus_type - 1;
        dbus_handle_s *dh = NULL;
@@ -207,25 +207,25 @@ static dbus_handle_s *_dbus_handle_get_connection(GBusType bus_type)
        }
        dh = &g_dh[ibus];
 
-       dbus_handle_lock(dh);
+       gdbus_lock(dh);
 
        if (!dh->conn) {
                dh->conn = _get_bus(bus_type);
                if (!dh->conn) {
-                       dbus_handle_unlock(dh);
+                       gdbus_unlock(dh);
                        return NULL;
                }
                dh->priv = FALSE;
                dh->bus_type = bus_type;
        }
 
-       dbus_handle_unlock(dh);
+       gdbus_unlock(dh);
 
        return dh;
 }
 
 /* ref cout is 1 */
-static dbus_handle_s *_dbus_handle_get_connection_private(GBusType bus_type)
+static dbus_handle_s *_gdbus_get_connection_private(GBusType bus_type)
 {
        dbus_handle_s * dh;
 
@@ -240,7 +240,7 @@ static dbus_handle_s *_dbus_handle_get_connection_private(GBusType bus_type)
                return NULL;
        }
 
-       dbus_handle_lock(dh);
+       gdbus_lock(dh);
 
        if (!dh->conn) {
                dh->conn = _get_bus_private(bus_type);
@@ -249,18 +249,18 @@ static dbus_handle_s *_dbus_handle_get_connection_private(GBusType bus_type)
                        goto err;
        }
 
-       dbus_handle_unlock(dh);
+       gdbus_unlock(dh);
 
        return dh;
 err:
        if (dh) {
-               dbus_handle_unlock(dh);
+               gdbus_unlock(dh);
                free(dh);
        }
        return NULL;
 }
 
-dbus_handle_h dbus_handle_get_connection(GBusType bus_type, gboolean priv)
+dbus_handle_h gdbus_get_connection(GBusType bus_type, gboolean priv)
 {
        dbus_handle_s *dh = NULL;
        int i;
@@ -273,10 +273,10 @@ dbus_handle_h dbus_handle_get_connection(GBusType bus_type, gboolean priv)
        for (i = 0 ; i < 3; ++i) {
                /* private */
                if (priv)
-                       dh = _dbus_handle_get_connection_private(bus_type);
+                       dh = _gdbus_get_connection_private(bus_type);
                /* shared */
                else
-                       dh = _dbus_handle_get_connection(bus_type);
+                       dh = _gdbus_get_connection(bus_type);
 
                if (dh)
                        break;
@@ -286,7 +286,7 @@ dbus_handle_h dbus_handle_get_connection(GBusType bus_type, gboolean priv)
        return dh;
 }
 
-static void _dbus_handle_add_bus_name(dbus_handle_s *handle, const char *name, guint id)
+static void _gdbus_add_bus_name(dbus_handle_s *handle, const char *name, guint id)
 {
        dbus_name *dn = NULL;
        int locked = 0;
@@ -313,7 +313,7 @@ static void _dbus_handle_add_bus_name(dbus_handle_s *handle, const char *name, g
 
        // todo : delete lock ?
        if (locked != EBUSY)
-               dbus_handle_unlock(handle);
+               gdbus_unlock(handle);
 }
 
 static gint _compare_dbus_name(gconstpointer a, gconstpointer b)
@@ -324,7 +324,7 @@ static gint _compare_dbus_name(gconstpointer a, gconstpointer b)
        return strcmp(bus_name, (const char *)b);
 }
 
-dbus_name * _dbus_handle_lookup_dbus_name(GList *list_name, const char *bus_name)
+dbus_name * _gdbus_lookup_dbus_name(GList *list_name, const char *bus_name)
 {
        if (!list_name || !bus_name)
                return NULL;
@@ -339,9 +339,9 @@ dbus_name * _dbus_handle_lookup_dbus_name(GList *list_name, const char *bus_name
 #define dh_to_ds(x) ((dbus_handle_s*)x)
 
 /* remove dbus_name from dbus handle */
-static void _dbus_handle_remove_bus_name(dbus_handle_s *handle, const char *bus_name)
+static void _gdbus_remove_bus_name(dbus_handle_s *handle, const char *bus_name)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        dbus_name *dn = NULL;
 
        if (!bus_name) {
@@ -349,15 +349,15 @@ static void _dbus_handle_remove_bus_name(dbus_handle_s *handle, const char *bus_
                return ;
        }
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return ;
                }
        }
 
-       dbus_handle_lock(dh);
-       dn = _dbus_handle_lookup_dbus_name(dh->list_names, bus_name);
+       gdbus_lock(dh);
+       dn = _gdbus_lookup_dbus_name(dh->list_names, bus_name);
        if (!dn) {
                _E("failed to find dbus name %s", bus_name);
                goto out;
@@ -365,7 +365,7 @@ static void _dbus_handle_remove_bus_name(dbus_handle_s *handle, const char *bus_
        dh->list_names = g_list_remove(dh->list_names, dn);
        free(dn);
 out:
-       dbus_handle_unlock(dh);
+       gdbus_unlock(dh);
 }
 
 //extern void booting_done(void);
@@ -395,15 +395,15 @@ static void _name_lost(GDBusConnection *connection, const gchar *name, gpointer
                _E("%s:%d:dbus handle is null\n", __func__, __LINE__);
                return ;
        }
-       _dbus_handle_remove_bus_name(dh, name);
+       _gdbus_remove_bus_name(dh, name);
 }
 
-int dbus_handle_request_bus_name(dbus_handle_h handle,
+int gdbus_request_name(dbus_handle_h handle,
                                const char *bus_name,
                                GBusNameAcquiredCallback acquired_handler,
                                GBusNameLostCallback lost_handler)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        int id = -1;
        GList *item = NULL;
 
@@ -414,14 +414,14 @@ int dbus_handle_request_bus_name(dbus_handle_h handle,
 
        /* get shared connection */
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
 
-       dbus_handle_lock(dh);
+       gdbus_lock(dh);
        if (!dh->conn) {
                _E("failed to register name: connection is null\n");
                goto out;
@@ -447,17 +447,17 @@ int dbus_handle_request_bus_name(dbus_handle_h handle,
                goto out;
        }
 
-       _dbus_handle_add_bus_name(dh, bus_name, id);
+       _gdbus_add_bus_name(dh, bus_name, id);
 
 out:
-       dbus_handle_unlock(dh);
+       gdbus_unlock(dh);
        return id;
 }
 
 /* !! _name_lost handler callback is disabled by g_bus_unown_name : ubuntu */
-int dbus_handle_release_bus_name(dbus_handle_h handle, const char *bus_name)
+int gdbus_release_name(dbus_handle_h handle, const char *bus_name)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        dbus_name *dn = NULL;
 
        if (!bus_name) {
@@ -466,14 +466,14 @@ int dbus_handle_release_bus_name(dbus_handle_h handle, const char *bus_name)
        }
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
 
-       dn = _dbus_handle_lookup_dbus_name(dh->list_names, bus_name);
+       dn = _gdbus_lookup_dbus_name(dh->list_names, bus_name);
        if (!dn) {
                _E("failed to find bus_name %s on dbus handle", bus_name);
                return -1;
@@ -483,25 +483,89 @@ int dbus_handle_release_bus_name(dbus_handle_h handle, const char *bus_name)
        /* _name_lost handler is disabled by g_bus_unown_name : ubuntu */
        g_bus_unown_name(dn->id);
 
-       dbus_handle_lock(dh);
+       gdbus_lock(dh);
        dh->list_names = g_list_remove(dh->list_names, dn);
        free(dn);
-       dbus_handle_unlock(dh);
+       gdbus_unlock(dh);
 
        return 0;
 }
 
-int dbus_handle_free_connection(dbus_handle_h handle)
+void gdbus_unwatch_name(guint id)
 {
-       dcl_dbus_handle();
+       if (id == 0) {
+               _E("wrong id %d", id);
+               return;
+       }
+       g_bus_unwatch_name(id);
+}
+
+// g_strfreev(strv)
+char **gdbus_get_owner_list(dbus_handle_h handle, const char *bus_name)
+{
+       dcl_gdbus();
+       GError *err = NULL;
+       GVariant *reply = NULL;
+       GVariantIter *iter = NULL;
+       gchar **strv = NULL;
+       gchar *str = NULL;
+       int i = 0;
+
+       if (!bus_name) {
+               _E("wrong parameter bus_name is null");
+               return NULL;
+       }
+
+       if (!dh) {
+               dh = _gdbus_get_default_connection();
+               if (!dh) {
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
+                       return NULL;
+               }
+       }
+
+       reply = g_dbus_connection_call_sync(dh->conn,
+                                       "org.freedesktop.DBus",
+                                       "/",
+                                       "org.freedesktop.DBus",
+                                       "ListQueuedOwners",
+                                       g_variant_new("(s)", bus_name),
+                                       NULL,
+                                       G_DBUS_CALL_FLAGS_NONE,
+                                       DBUS_REPLY_TIMEOUT,
+                                       NULL,
+                                       &err);
+       if (!reply || err) {
+               _E("failed to g_dbus_connection_call_sync:%s", err->message);
+               g_error_free(err);
+               return NULL;
+       }
+
+       g_variant_get(reply, "(as)", &iter);
+       strv = g_new(gchar *, g_variant_iter_n_children(iter) + 1);
+
+       i = 0;
+       while (g_variant_iter_loop(iter, "s", &str))
+               strv[i++] = g_strdup(str);
+       strv[i] = NULL;
+
+       g_variant_iter_free(iter);
+       g_variant_unref(reply);
+
+       return strv;
+}
+
+int gdbus_free_connection(dbus_handle_h handle)
+{
+       dcl_gdbus();
        dbus_handle_s *pdh = NULL;
        GError *err = NULL;
        GList *item = NULL;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -514,7 +578,7 @@ int dbus_handle_free_connection(dbus_handle_h handle)
        pdh = dh;
 
        /* disable dbus handler */
-       dbus_handle_lock(dh);
+       gdbus_lock(dh);
        if (!pdh->conn) {
                _E("conn is null");
                free(pdh);
@@ -591,7 +655,7 @@ int dbus_handle_free_connection(dbus_handle_h handle)
 
        g_object_unref(pdh->conn);
 
-       dbus_handle_unlock(dh);
+       gdbus_unlock(dh);
 
        if (dh->priv)
                free(dh);
@@ -824,7 +888,7 @@ static gint _compare_dbus_method(gconstpointer a, gconstpointer b)
        return strcmp(pa->member, (const char*)b);
 }
 
-dbus_object_handle_s * _dbus_handle_lookup_object(GList *list_obj, const char *obj_path)
+dbus_object_handle_s * _gdbus_lookup_object(GList *list_obj, const char *obj_path)
 {
        if (!list_obj || !obj_path)
                return NULL;
@@ -836,7 +900,7 @@ dbus_object_handle_s * _dbus_handle_lookup_object(GList *list_obj, const char *o
        return (dbus_object_handle_s *)item->data;
 }
 
-dbus_interface_s * _dbus_handle_lookup_interface(GList *list_iface, const char *iface_name)
+dbus_interface_s * _gdbus_lookup_interface(GList *list_iface, const char *iface_name)
 {
        if (!list_iface || !iface_name)
                return NULL;
@@ -848,7 +912,7 @@ dbus_interface_s * _dbus_handle_lookup_interface(GList *list_iface, const char *
        return (dbus_interface_s *)item->data;
 }
 
-dbus_interface_s * _dbus_handle_lookup_interface_by_id(GList *list_iface, guint id)
+dbus_interface_s * _gdbus_lookup_interface_by_id(GList *list_iface, guint id)
 {
        if (!list_iface || !id)
                return NULL;
@@ -860,7 +924,7 @@ dbus_interface_s * _dbus_handle_lookup_interface_by_id(GList *list_iface, guint
        return (dbus_interface_s *)item->data;
 }
 
-dbus_method_s * _dbus_handle_lookup_method(GList *list_methods, const char *method_name)
+dbus_method_s * _gdbus_lookup_method(GList *list_methods, const char *method_name)
 {
        if (!list_methods || !method_name)
                return NULL;
@@ -908,7 +972,7 @@ static void _free_func_object(gpointer data)
        }
 }
 
-static int _dbus_handle_attach_object(dbus_handle_s *dh, const char *obj_path, dbus_interface_s *iface)
+static int _gdbus_attach_object(dbus_handle_s *dh, const char *obj_path, dbus_interface_s *iface)
 {
        dbus_object_handle_s *oh = NULL;
 
@@ -919,7 +983,7 @@ static int _dbus_handle_attach_object(dbus_handle_s *dh, const char *obj_path, d
 
        /* find object handle */
        if (dh->list_object)
-               oh = _dbus_handle_lookup_object(dh->list_object, obj_path);
+               oh = _gdbus_lookup_object(dh->list_object, obj_path);
 
        if (!oh) {
                oh = (dbus_object_handle_s*)calloc(1, sizeof(dbus_object_handle_s));
@@ -1001,7 +1065,7 @@ static void _method_call_handler(GDBusConnection *conn,
        GVariant *reply = NULL;
 
        /* todo: ghash ? */
-       methods = _dbus_handle_lookup_method(iface_s->list_methods, name);
+       methods = _gdbus_lookup_method(iface_s->list_methods, name);
        if (methods) {
                reply = methods->func(conn, sender, path, iface, name, param, invocation, get_dh_from_oh(iface_s->oh));
 
@@ -1020,11 +1084,11 @@ static GDBusInterfaceVTable path_vtable = {_method_call_handler};
 
 /*
 before register object, attach object into dbus handle
-_dbus_handle_attach_object()
+_gdbus_attach_object()
 */
-static int _dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path, dbus_interface_s *iface)
+static int _gdbus_register_object(dbus_handle_h handle, const char *obj_path, dbus_interface_s *iface)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        int ret = 0;
        char *buf = NULL;
        GError *err = NULL;
@@ -1036,9 +1100,9 @@ static int _dbus_handle_register_dbus_object(dbus_handle_h handle, const char *o
                return -1;
        }
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -1123,13 +1187,13 @@ register same interface at once
 if interface is constructed by multiple methods,
 also it is not possible to make methods struct at once,
 
-use dbus_handle_add_dbus_object(), dbus_handle_register_dbus_object_all().
+use gdbus_add_object(), gdbus_register_object_all().
 
 return reg_id
 */
-int dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface_u)
+int gdbus_register_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface_u)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        int ret = 0;
        dbus_interface_s *iface = NULL;
 
@@ -1138,9 +1202,9 @@ int dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path,
                return -1;
        }
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -1151,9 +1215,9 @@ int dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path,
 
        /* check registered interface */
        if (dh->list_object) {
-               dbus_object_handle_s *oh = _dbus_handle_lookup_object(dh->list_object, obj_path);
+               dbus_object_handle_s *oh = _gdbus_lookup_object(dh->list_object, obj_path);
                if (oh) {
-                       dbus_interface_s *ih = _dbus_handle_lookup_interface(oh->list_ifaces, iface_u->name);
+                       dbus_interface_s *ih = _gdbus_lookup_interface(oh->list_ifaces, iface_u->name);
                        if (ih) {
                                _E("path %s, interface %s already registered", obj_path, iface_u->name);
                                return -1;
@@ -1168,13 +1232,13 @@ int dbus_handle_register_dbus_object(dbus_handle_h handle, const char *obj_path,
        }
 
        /* attach interface before register object */
-       ret = _dbus_handle_attach_object(dh, obj_path, iface);
+       ret = _gdbus_attach_object(dh, obj_path, iface);
        if (ret < 0) {
                _E("failed to attach object");
                goto err;
        }
 
-       ret = _dbus_handle_register_dbus_object(dh, obj_path, iface);
+       ret = _gdbus_register_object(dh, obj_path, iface);
        if (ret <= 0) {
                _E("failed to register dbus object%d", ret);
                goto err;
@@ -1183,9 +1247,68 @@ err:
        return ret;
 }
 
+int gdbus_unregister_object(dbus_handle_h handle, const char *obj_path)
+{
+       dcl_gdbus();
+       dbus_object_handle_s *oh = NULL;
+       int ret = 0;
+
+       if (!obj_path)
+               return -1;
+
+       if (!dh) {
+               dh = _gdbus_get_default_connection();
+               if (!dh) {
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
+                       return -1;
+               }
+       }
+       if (!dh->list_object) {
+               _E("list_object is empty");
+               return 0;
+       }
+
+       oh = _gdbus_lookup_object(dh->list_object, obj_path);
+       if (!oh) {
+               _E("no object with name %s", obj_path);
+               return -1;
+       }
+
+       /* unregister every interface of object*/
+       for (GList *item = g_list_first(oh->list_ifaces); item != NULL; item = g_list_next(item)) {
+               dbus_interface_s *ih = item->data;
+               if (!ih) {
+                       _E("this is error");
+                       assert(0);
+               }
+
+               /* remove ih from list_ifaces */
+               if (!ih->reg_id) {
+                       item = g_list_previous(item);
+
+                       /* remove and free link */
+                       oh->list_ifaces = g_list_remove(oh->list_ifaces, ih);
+
+                       /* free list_methods */
+                       g_list_free(ih->list_methods);
+
+                       /* free data */
+                       free(ih);
+                       continue;
+               }
+
+               /* unregister object by id */
+               ret = g_dbus_connection_unregister_object(dh->conn, ih->reg_id);
+               if (!ret)
+                       _E("failed to unregister object %s, interface %s, regid %d", oh->path, ih->name, ih->reg_id);
+       }
+
+       return 0;
+}
+
 int dbus_handle_unregister_dbus_object(dbus_handle_h handle, const char *obj_path)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        dbus_object_handle_s *oh = NULL;
        int ret = 0;
 
@@ -1193,9 +1316,9 @@ int dbus_handle_unregister_dbus_object(dbus_handle_h handle, const char *obj_pat
                return -1;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -1204,7 +1327,7 @@ int dbus_handle_unregister_dbus_object(dbus_handle_h handle, const char *obj_pat
                return 0;
        }
 
-       oh = _dbus_handle_lookup_object(dh->list_object, obj_path);
+       oh = _gdbus_lookup_object(dh->list_object, obj_path);
        if (!oh) {
                _E("no object with name %s", obj_path);
                return -1;
@@ -1244,13 +1367,116 @@ int dbus_handle_unregister_dbus_object(dbus_handle_h handle, const char *obj_pat
 
 /*
 add object temporarily.
-dbus_handle_register_dbus_object_all register every objects on connection.
+gdbus_register_object_all register every objects on connection.
 
 return registered method count
 */
+int gdbus_add_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface_u)
+{
+       dcl_gdbus();
+       dbus_object_handle_s *oh = NULL;
+       dbus_interface_s *ih = NULL;
+       int cnt;
+
+       if (!obj_path || !iface_u) {
+               _E("wrong parameter path %s, iface_u %p\n", obj_path, iface_u);
+               return -1;
+       }
+       if (iface_u && (!iface_u->name || !iface_u->methods)) {
+               _E("wrong parameter path %s, iface_u %p\n", obj_path, iface_u);
+               return -1;
+       }
+
+       cnt = iface_u->nr_methods;
+
+       if (!dh) {
+               dh = _gdbus_get_default_connection();
+               if (!dh) {
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
+                       return -1;
+               }
+       }
+
+       if (!dh->conn) {
+               _E("failed to register method. connection is null\n");
+               return -1;
+       }
+
+       /* if there are no object list, just add */
+       if (!dh->list_object) {
+               if (_gdbus_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
+                       _E("failed to attach object");
+                       return -1;
+               }
+               goto out;
+       }
+
+       oh = _gdbus_lookup_object(dh->list_object, obj_path);
+       /* if there are no matched object, just add */
+       if (!oh) {
+               if (_gdbus_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
+                       _E("failed to attach object");
+                       return -1;
+               }
+               goto out;
+       }
+
+       /* this is an error, interface must have one or more item ? */
+       if (!oh->list_ifaces) {
+               _E("error. list_ifaces is null\n");
+               assert(0);
+               goto out;
+       }
+
+       ih = _gdbus_lookup_interface(oh->list_ifaces, iface_u->name);
+       /* if there are no matched interface, just add */
+       if (!ih) {
+               if (_gdbus_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
+                       _E("failed to attach object");
+                       return -1;
+               }
+               goto out;
+       }
+
+       /*  todo:
+               1. unregister interface
+               2. update interface and methods
+               3. register interface
+       */
+       if (ih->reg_id) {
+               _E("interface already registered, ignore new interface");
+               return -1;
+       }
+
+       /* attach new methods */
+       cnt = 0;
+       for (int i = 0; i < iface_u->nr_methods; ++i) {
+               GList *item = g_list_find_custom(g_list_first(ih->list_methods), iface_u->methods[i].member, _compare_dbus_method);
+               if (!item) {
+                       //_D("attached %s", iface_u->methods[i].member);
+                       ih->list_methods = g_list_prepend(ih->list_methods, (void*)(iface_u->methods + i));
+                       ++cnt;
+               }
+       }
+
+       if (cnt)
+               ih->modified = TRUE;
+
+out:
+       /*todo: delete debugging log */
+       //if (dh && dh->list_object)
+       //      _D("obj list len %d", g_list_length(dh->list_object));
+       //if (oh && oh->list_ifaces)
+       //      _D("iface list len %d", g_list_length(oh->list_ifaces));
+       //if (ih && ih->list_methods)
+       //      _D("method list len %d", g_list_length(ih->list_methods));
+
+       return cnt;
+}
+
 int dbus_handle_add_dbus_object(dbus_handle_h handle, const char *obj_path, const dbus_interface_u *iface_u)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        dbus_object_handle_s *oh = NULL;
        dbus_interface_s *ih = NULL;
        int cnt;
@@ -1267,9 +1493,9 @@ int dbus_handle_add_dbus_object(dbus_handle_h handle, const char *obj_path, cons
        cnt = iface_u->nr_methods;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -1281,17 +1507,17 @@ int dbus_handle_add_dbus_object(dbus_handle_h handle, const char *obj_path, cons
 
        /* if there are no object list, just add */
        if (!dh->list_object) {
-               if (_dbus_handle_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
+               if (_gdbus_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
                        _E("failed to attach object");
                        return -1;
                }
                goto out;
        }
 
-       oh = _dbus_handle_lookup_object(dh->list_object, obj_path);
+       oh = _gdbus_lookup_object(dh->list_object, obj_path);
        /* if there are no matched object, just add */
        if (!oh) {
-               if (_dbus_handle_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
+               if (_gdbus_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
                        _E("failed to attach object");
                        return -1;
                }
@@ -1305,10 +1531,10 @@ int dbus_handle_add_dbus_object(dbus_handle_h handle, const char *obj_path, cons
                goto out;
        }
 
-       ih = _dbus_handle_lookup_interface(oh->list_ifaces, iface_u->name);
+       ih = _gdbus_lookup_interface(oh->list_ifaces, iface_u->name);
        /* if there are no matched interface, just add */
        if (!ih) {
-               if (_dbus_handle_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
+               if (_gdbus_attach_object(dh, obj_path, _iface_u_to_s(iface_u))) {
                        _E("failed to attach object");
                        return -1;
                }
@@ -1351,17 +1577,85 @@ out:
        return cnt;
 }
 
+int gdbus_register_object_all(dbus_handle_h handle)
+{
+       dcl_gdbus();
+       dbus_object_handle_s *oh = NULL;
+       dbus_interface_s *ih = NULL;
+       int ret_dbus = 0;
+
+       if (!dh) {
+               dh = _gdbus_get_default_connection();
+               if (!dh) {
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
+                       return -1;
+               }
+       }
+       if (!dh->conn) {
+               _E("connection is null\n");
+               return -1;
+       }
+
+       if (!dh->list_object) {
+               _E("obj list is empty");
+               return -1;
+       }
+
+       /*if (dh && dh->list_object)
+               _D("obj list len %d", g_list_length(dh->list_object));*/
+
+       for (GList *item = g_list_first(dh->list_object); item != NULL; item = g_list_next(item)) {
+               oh = (dbus_object_handle_s *)item->data;
+
+               if (!oh) {
+                       _E("something wrong");
+                       assert(0);
+               }
+               if (!oh->list_ifaces) {
+                       _E("path %s: list_ifaces are null", oh->path);
+                       goto err;
+               }
+
+               //_D("iface list len %d", g_list_length(oh->list_ifaces));
+
+               for (GList *li = g_list_first(oh->list_ifaces); li != NULL; li = g_list_next(li)) {
+                       ih = (dbus_interface_s *)li->data;
+
+                       /* if there are no modification, goto next */
+                       if (!ih->modified)
+                               continue;
+
+                       /* todo: if already registered interface, unregister first */
+
+                       /*_E("interface %s:", ih->name);
+                       if (ih && ih->list_methods)
+                               _D("method list len %d", g_list_length(ih->list_methods));*/
+
+                       ret_dbus = _gdbus_register_object(dh, oh->path, ih);
+                       if (ret_dbus <= 0)
+                               _E("failed to register dbus object%d", ret_dbus);
+
+               }
+       }
+       return 0;
+err:
+
+       // todo: delete all updates
+
+       return -1;
+}
+
 int dbus_handle_register_dbus_object_all(dbus_handle_h handle)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        dbus_object_handle_s *oh = NULL;
        dbus_interface_s *ih = NULL;
        int ret_dbus = 0;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -1405,7 +1699,7 @@ int dbus_handle_register_dbus_object_all(dbus_handle_h handle)
                        if (ih && ih->list_methods)
                                _D("method list len %d", g_list_length(ih->list_methods));*/
 
-                       ret_dbus = _dbus_handle_register_dbus_object(dh, oh->path, ih);
+                       ret_dbus = _gdbus_register_object(dh, oh->path, ih);
                        if (ret_dbus <= 0)
                                _E("failed to register dbus object%d", ret_dbus);
 
@@ -1419,17 +1713,17 @@ err:
        return -1;
 }
 
-guint subscribe_dbus_signal(dbus_handle_h handle, const char *path,
+guint gdbus_signal_subscribe(dbus_handle_h handle, const char *path,
                        const char *iface, const char *name,
                        GDBusSignalCallback cb, void *data,
                        destroy_notified free_func)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return 0;
                }
        }
@@ -1441,13 +1735,13 @@ guint subscribe_dbus_signal(dbus_handle_h handle, const char *path,
        return g_dbus_connection_signal_subscribe(dh->conn, NULL, iface, name, path, NULL, G_DBUS_SIGNAL_FLAGS_NONE, cb, data, free_func);
 }
 
-void unsubscribe_dbus_signal(dbus_handle_h handle, guint id)
+void gdbus_signal_unsubscribe(dbus_handle_h handle, guint id)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return;
                }
        }
@@ -1484,7 +1778,7 @@ static void _signal_reply_sync_cb(GDBusConnection  *conn,
        g_main_loop_quit(ctx->loop);
 }
 
-sig_ctx *dbus_handle_new_signal_ctx(void)
+sig_ctx *gdbus_signal_ctx_new(void)
 {
        sig_ctx *ctx;
 
@@ -1517,7 +1811,7 @@ sig_ctx *dbus_handle_new_signal_ctx(void)
        return ctx;
 }
 
-void dbus_handle_free_signal_ctx(sig_ctx *ctx)
+void gdbus_signal_ctx_free(sig_ctx *ctx)
 {
        if (!ctx)
                return ;
@@ -1527,7 +1821,7 @@ void dbus_handle_free_signal_ctx(sig_ctx *ctx)
                ctx->param = NULL;
        }
        if (ctx->sig_id) {
-               unsubscribe_dbus_signal(NULL, ctx->sig_id);
+               gdbus_signal_unsubscribe(NULL, ctx->sig_id);
                ctx->sig_id = 0;
        }
        if (ctx->timeout_src) {
@@ -1559,7 +1853,7 @@ static gboolean _cb_ctx_timeout(gpointer user_data)
        /* if cb return FALSE, source will be destroyed */
        ctx->timeout_src = NULL;
 
-       unsubscribe_dbus_signal(NULL, ctx->sig_id);
+       gdbus_signal_unsubscribe(NULL, ctx->sig_id);
        ctx->sig_id = 0;
 
        g_main_loop_quit(ctx->loop);
@@ -1569,7 +1863,7 @@ static gboolean _cb_ctx_timeout(gpointer user_data)
 
 #define CTX_MAX_TIMEOUT 25000
 
-int dbus_handle_signal_ctx_add_timeout(sig_ctx *ctx, int timeout_msec)
+int gdbus_signal_ctx_add_timeout(sig_ctx *ctx, int timeout_msec)
 {
        GSource *src = NULL;
 
@@ -1594,12 +1888,12 @@ int dbus_handle_signal_ctx_add_timeout(sig_ctx *ctx, int timeout_msec)
        return 0;
 }
 
-guint subscribe_dbus_signal_ctx(dbus_handle_h handle, sig_ctx *ctx,
+guint gdbus_signal_ctx_subscribe(dbus_handle_h handle, sig_ctx *ctx,
                const char *sender,     const char *path,
                const char *iface, const char *name,
                GDBusSignalCallback _cb)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
 
        if (!ctx) {
                _E("wrong param ctx is null");
@@ -1607,10 +1901,10 @@ guint subscribe_dbus_signal_ctx(dbus_handle_h handle, sig_ctx *ctx,
        }
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
                        _E("failed to get default connection, bustype:%d",
-                                       (int)dbus_handle_get_default_bus_type());
+                                       (int)gdbus_get_default_bus_type());
                        return 0;
                }
        }
@@ -1637,7 +1931,7 @@ guint subscribe_dbus_signal_ctx(dbus_handle_h handle, sig_ctx *ctx,
        return ctx->sig_id;
 }
 
-int dbus_handle_signal_ctx_wait(sig_ctx *ctx)
+int gdbus_signal_ctx_wait(sig_ctx *ctx)
 {
        if (!ctx || !ctx->loop)
                return -EINVAL;
@@ -1669,7 +1963,7 @@ int _check_type_string_is_container(const char *signature)
        return TRUE;
 }
 
-int dbus_handle_emit_dbus_signal(const char *dest,
+int gdbus_signal_emit(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *name,
@@ -1679,9 +1973,9 @@ int dbus_handle_emit_dbus_signal(const char *dest,
        GError *err = NULL;
        gboolean ret = 0;
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -1;
        }
 
@@ -1694,7 +1988,7 @@ int dbus_handle_emit_dbus_signal(const char *dest,
        return ret;
 }
 
-int dbus_handle_emit_dbus_signal_sync(const char *dest,
+int gdbus_signal_emit_sync(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *name,
@@ -1704,9 +1998,9 @@ int dbus_handle_emit_dbus_signal_sync(const char *dest,
        GError *err = NULL;
        gboolean ret = 0;
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -1;
        }
 
@@ -1725,16 +2019,16 @@ int dbus_handle_emit_dbus_signal_sync(const char *dest,
        return ret;
 }
 
-int dbus_handle_flush_sync(dbus_handle_h handle)
+int gdbus_flush_sync(dbus_handle_h handle)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        GError *err = NULL;
        gboolean ret = 0;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return 0;
                }
        }
@@ -1748,7 +2042,7 @@ int dbus_handle_flush_sync(dbus_handle_h handle)
        return ret;
 }
 
-int dbus_handle_method_sync_with_reply_var(const char *dest,
+int gdbus_call_sync_with_reply(const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *method,
@@ -1767,9 +2061,9 @@ int dbus_handle_method_sync_with_reply_var(const char *dest,
                return -EINVAL;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                if (param)
                        g_variant_unref(param);
                return -ECOMM;
@@ -1805,7 +2099,7 @@ int dbus_handle_method_sync_with_reply_var(const char *dest,
        return ret;
 }
 
-int dbus_handle_method_sync_with_reply_var_timeout(const char *dest, const char *path,
+int gdbus_call_sync_with_reply_timeout(const char *dest, const char *path,
        const char *iface, const char *method, GVariant *param, GVariant **out_reply, int timeout)
 {
        GError *err = NULL;
@@ -1819,9 +2113,9 @@ int dbus_handle_method_sync_with_reply_var_timeout(const char *dest, const char
                return -EINVAL;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                if (param)
                        g_variant_unref(param);
                return -ECOMM;
@@ -1852,7 +2146,7 @@ int dbus_handle_method_sync_with_reply_var_timeout(const char *dest, const char
        return 0;
 }
 
-int dbus_handle_method_sync_pairs(const char *dest,
+int gdbus_call_pairs_sync_with_reply_int(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *method,
@@ -1872,9 +2166,9 @@ int dbus_handle_method_sync_pairs(const char *dest,
                return -1;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -1;
        }
 
@@ -1908,7 +2202,7 @@ int dbus_handle_method_sync_pairs(const char *dest,
        return ret;
 }
 
-int dbus_handle_method_async_pairs(const char *dest,
+int gdbus_call_pairs_async(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *method,
@@ -1925,9 +2219,9 @@ int dbus_handle_method_async_pairs(const char *dest,
                return -1;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -1;
        }
 
@@ -1956,7 +2250,7 @@ int dbus_handle_method_async_pairs(const char *dest,
        return 0;
 }
 
-gint* dbus_handle_get_unix_fd_list(GDBusMethodInvocation *invocation, int *size)
+gint* gdbus_get_unix_fd_list(GDBusMethodInvocation *invocation, int *size)
 {
        GUnixFDList *fd_list = NULL;
        int length = 0;
@@ -1979,7 +2273,7 @@ gint* dbus_handle_get_unix_fd_list(GDBusMethodInvocation *invocation, int *size)
        return g_unix_fd_list_steal_fds(fd_list, NULL);
 }
 
-int dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest,
+int gdbus_call_unix_fd_list_sync_with_reply(const char *dest,
                                                                const char *path,
                                                                const char *iface,
                                                                const char *method,
@@ -2006,9 +2300,9 @@ int dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest,
                return -EINVAL;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -EAGAIN;
        }
 
@@ -2065,7 +2359,7 @@ out:
        return ret;
 }
 
-int dbus_handle_method_sync_var(const char *dest,
+int gdbus_call_sync_with_reply_int(const char *dest,
                                const char *path,
                                const char *iface,
                                const char *method,
@@ -2082,7 +2376,7 @@ int dbus_handle_method_sync_var(const char *dest,
                return -EINVAL;
        }
 
-       ret = dbus_handle_method_sync_with_reply_var(dest, path, iface, method, param, &reply);
+       ret = gdbus_call_sync_with_reply(dest, path, iface, method, param, &reply);
        if (ret < 0)
                return ret;
 
@@ -2106,7 +2400,7 @@ int dbus_handle_method_sync_var(const char *dest,
        return ret;
 }
 
-int dbus_handle_method_async_var(const char *dest,
+int gdbus_call_async(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *method,
@@ -2119,9 +2413,9 @@ int dbus_handle_method_async_var(const char *dest,
                return -1;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -1;
        }
 
@@ -2166,7 +2460,7 @@ out:
                free(data);
 }
 
-int dbus_handle_method_async_with_reply_var(const char *dest,
+int gdbus_call_async_with_reply(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *method,
@@ -2189,9 +2483,9 @@ int dbus_handle_method_async_with_reply_var(const char *dest,
                return -1;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -EPERM;
        }
 
@@ -2221,7 +2515,7 @@ err:
        return ret;
 }
 
-int dbus_handle_method_async_pairs_with_reply(const char *dest,
+int gdbus_call_pairs_async_with_reply(const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *method,
@@ -2248,9 +2542,9 @@ int dbus_handle_method_async_pairs_with_reply(const char *dest,
                return -1;
        }
 
-       dh = _dbus_handle_get_default_connection();
+       dh = _gdbus_get_default_connection();
        if (!dh) {
-               _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+               _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                return -EPERM;
        }
 
@@ -2293,7 +2587,7 @@ err:
        return ret;
 }
 
-int dbus_connection_get_sender_pid(GDBusConnection *conn, const char * sender)
+int gdbus_connection_get_sender_pid(GDBusConnection *conn, const char * sender)
 {
        GError *err = NULL;
        GVariant *reply = NULL;
@@ -2327,14 +2621,14 @@ int dbus_connection_get_sender_pid(GDBusConnection *conn, const char * sender)
        return pid;
 }
 
-int dbus_handle_get_sender_pid(dbus_handle_h handle, const char * sender)
+int gdbus_get_sender_pid(dbus_handle_h handle, const char * sender)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -2344,12 +2638,12 @@ int dbus_handle_get_sender_pid(dbus_handle_h handle, const char * sender)
                return -1;
        }
 
-       return dbus_connection_get_sender_pid(dh->conn, sender);
+       return gdbus_connection_get_sender_pid(dh->conn, sender);
 }
 
-int dbus_handle_get_sender_credentials(dbus_handle_h handle, const char *name, GDBusCredentials *creds)
+int gdbus_get_sender_credentials(dbus_handle_h handle, const char *name, GDBusCredentials *creds)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        GVariant *reply = NULL;
        GError *err = NULL;
        GVariantIter *iter = NULL;
@@ -2357,9 +2651,9 @@ int dbus_handle_get_sender_credentials(dbus_handle_h handle, const char *name, G
        GVariant *sub;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return -1;
                }
        }
@@ -2408,7 +2702,7 @@ void _destroy_notify_watch_name(gpointer data)
 //             free(data);
 }
 
-int dbus_handle_watch_name(const char *name,
+int gdbus_watch_name(const char *name,
                        GBusNameAppearedCallback  name_appeared_handler,
                        GBusNameVanishedCallback  name_vanished_handler,
                        void *user_data,
@@ -2425,7 +2719,7 @@ int dbus_handle_watch_name(const char *name,
                return -1;
        }
 
-       id = g_bus_watch_name(dbus_handle_get_default_bus_type(),
+       id = g_bus_watch_name(gdbus_get_default_bus_type(),
                                name,
                                G_BUS_NAME_WATCHER_FLAGS_NONE,
                                name_appeared_handler,
@@ -2440,15 +2734,6 @@ int dbus_handle_watch_name(const char *name,
        return id;
 }
 
-void dbus_handle_unwatch_name(guint id)
-{
-       if (id == 0) {
-               _E("wrong id %d", id);
-               return;
-       }
-       g_bus_unwatch_name(id);
-}
-
 int _get_cmdline_name(pid_t pid, char *cmdline, size_t cmdline_size)
 {
        int fd, ret_file;
@@ -2485,85 +2770,30 @@ int _get_cmdline_name(pid_t pid, char *cmdline, size_t cmdline_size)
        return 0;
 }
 
-// g_strfreev(strv)
-char **dbus_handle_get_owner_list(dbus_handle_h handle, const char *bus_name)
-{
-       dcl_dbus_handle();
-       GError *err = NULL;
-       GVariant *reply = NULL;
-       GVariantIter *iter = NULL;
-       gchar **strv = NULL;
-       gchar *str = NULL;
-       int i = 0;
-
-       if (!bus_name) {
-               _E("wrong parameter bus_name is null");
-               return NULL;
-       }
-
-       if (!dh) {
-               dh = _dbus_handle_get_default_connection();
-               if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
-                       return NULL;
-               }
-       }
-
-       reply = g_dbus_connection_call_sync(dh->conn,
-                                       "org.freedesktop.DBus",
-                                       "/",
-                                       "org.freedesktop.DBus",
-                                       "ListQueuedOwners",
-                                       g_variant_new("(s)", bus_name),
-                                       NULL,
-                                       G_DBUS_CALL_FLAGS_NONE,
-                                       DBUS_REPLY_TIMEOUT,
-                                       NULL,
-                                       &err);
-       if (!reply || err) {
-               _E("failed to g_dbus_connection_call_sync:%s", err->message);
-               g_error_free(err);
-               return NULL;
-       }
-
-       g_variant_get(reply, "(as)", &iter);
-       strv = g_new(gchar *, g_variant_iter_n_children(iter) + 1);
-
-       i = 0;
-       while (g_variant_iter_loop(iter, "s", &str))
-               strv[i++] = g_strdup(str);
-       strv[i] = NULL;
-
-       g_variant_iter_free(iter);
-       g_variant_unref(reply);
-
-       return strv;
-}
-
-void dbus_handle_check_owner_name(dbus_handle_h handle, const char *owner_name)
+void gdbus_check_name_owner(dbus_handle_h handle, const char *owner_name)
 {
-       dcl_dbus_handle();
+       dcl_gdbus();
        char exe_name[PATH_MAX];
        int pid;
        char **strv = NULL;
        int i;
 
        if (!dh) {
-               dh = _dbus_handle_get_default_connection();
+               dh = _gdbus_get_default_connection();
                if (!dh) {
-                       _E("failed to get default connection, bustype:%d", (int)dbus_handle_get_default_bus_type());
+                       _E("failed to get default connection, bustype:%d", (int)gdbus_get_default_bus_type());
                        return ;
                }
        }
 
-       strv = dbus_handle_get_owner_list(dh, owner_name);
+       strv = gdbus_get_owner_list(dh, owner_name);
        if (!strv) {
                _E("failed to get owner list of %s", owner_name);
                return ;
        }
 
        for (i = 0; strv[i] != NULL; ++i) {
-               pid = dbus_handle_get_sender_pid(dh, strv[i]);
+               pid = gdbus_get_sender_pid(dh, strv[i]);
                if (_get_cmdline_name(pid, exe_name, PATH_MAX) != 0)
                        break;
                _I("%s(%d)", exe_name, pid);
@@ -2581,7 +2811,7 @@ int check_systemd_active(void)
 
        _I("%s %s", "org.freedesktop.systemd1.Unit", "ActiveState");
 
-       ret = dbus_handle_method_sync_with_reply_var("org.freedesktop.systemd1",
+       ret = gdbus_call_sync_with_reply("org.freedesktop.systemd1",
                        "/org/freedesktop/systemd1/unit/default_2etarget",
                        "org.freedesktop.DBus.Properties",
                        "Get",
@@ -2616,7 +2846,7 @@ out:
        return ret;
 }
 
-GVariant *dbus_handle_make_simple_array(const char *sig, int *param)
+GVariant *gdbus_make_simple_array(const char *sig, int *param)
 {
        GVariantBuilder *builder = NULL;
        GVariant *var = NULL;
index 0e26bb8..6828b76 100644 (file)
@@ -68,7 +68,7 @@ typedef struct {
 
 #define g_variant_get_safe(gvar, signature, ...) ((gvar && (g_strcmp0(signature, g_variant_get_type_string(gvar)) == 0)) ? g_variant_get(gvar, signature, __VA_ARGS__), TRUE : FALSE)
 
-#define dbus_handle_new_g_variant_tuple() g_variant_new_tuple(NULL, 0)
+#define gdbus_new_g_variant_tuple() g_variant_new_tuple(NULL, 0)
 
 typedef void (*destroy_notified)(void *data);
 
@@ -79,18 +79,44 @@ typedef struct {
        void *data;
 } pending_call_data;
 
-dbus_handle_h dbus_handle_get_connection       (GBusType bus_type,
+dbus_handle_h gdbus_get_connection     (GBusType bus_type,
                                                gboolean priv);
 
-int dbus_handle_request_bus_name               (dbus_handle_h handle,
+int gdbus_request_name         (dbus_handle_h handle,
                                                const char *bus_name,
                                                GBusNameAcquiredCallback acquired_handler,
                                                GBusNameLostCallback lost_handler);
 
-int dbus_handle_register_dbus_object           (dbus_handle_h handle,
+int gdbus_release_name         (dbus_handle_h handle,
+                                               const char *bus_name);
+
+int gdbus_watch_name           (const char *name,
+                                               GBusNameAppearedCallback name_appeared_handler,
+                                               GBusNameVanishedCallback name_vanished_handler,
+                                               void *user_data,
+                                               GDestroyNotify user_data_free_func);
+
+void gdbus_unwatch_name                (guint id);
+
+char** gdbus_get_owner_list            (dbus_handle_h handle,
+                                               const char *bus_name);
+
+void gdbus_check_name_owner            (dbus_handle_h handle,
+                                               const char *owner_name);
+
+int gdbus_register_object              (dbus_handle_h handle,
                                                const char *obj_path,
                                                const dbus_interface_u *iface);
 
+int gdbus_unregister_object            (dbus_handle_h handle,
+                                               const char *obj_path);
+
+int gdbus_add_object                   (dbus_handle_h handle,
+                                               const char *obj_path,
+                                               const dbus_interface_u *iface_u);
+
+int gdbus_register_object_all  (dbus_handle_h handle);
+
 int dbus_handle_unregister_dbus_object         (dbus_handle_h handle,
                                                const char *obj_path);
 
@@ -100,20 +126,35 @@ int dbus_handle_add_dbus_object                   (dbus_handle_h handle,
 
 int dbus_handle_register_dbus_object_all       (dbus_handle_h handle);
 
-int dbus_handle_method_sync_var                        (const char *dest,
+int gdbus_call_sync_with_reply_int                     (const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *method,
                                                GVariant *param,
                                                int *output);
 
-int dbus_handle_method_async_var               (const char *dest,
+int gdbus_call_sync_with_reply         (const char *dest,
+                                                               const char *path,
+                                                               const char *iface,
+                                                               const char *method,
+                                                               GVariant *param,
+                                                               GVariant **out_reply);
+
+int gdbus_call_sync_with_reply_timeout (const char *dest,
+                                                               const char *path,
+                                                               const char *iface,
+                                                               const char *method,
+                                                               GVariant *param,
+                                                               GVariant **out_reply,
+                                                               int timeout);
+
+int gdbus_call_async           (const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *method,
                                                GVariant *param);
 
-int dbus_handle_method_async_with_reply_var    (const char *dest,
+int gdbus_call_async_with_reply        (const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *method,
@@ -122,36 +163,32 @@ int dbus_handle_method_async_with_reply_var       (const char *dest,
                                                int timeout_msec,
                                                void *data);
 
-int dbus_handle_method_sync_with_reply_var             (const char *dest,
-                                                               const char *path,
-                                                               const char *iface,
-                                                               const char *method,
-                                                               GVariant *param,
-                                                               GVariant **out_reply);
-
-int dbus_handle_method_sync_with_reply_var_timeout     (const char *dest,
+int gdbus_call_unix_fd_list_sync_with_reply    (const char *dest,
                                                                const char *path,
                                                                const char *iface,
                                                                const char *method,
                                                                GVariant *param,
                                                                GVariant **out_reply,
-                                                               int timeout);
+                                                               int *in_fdlist,
+                                                               int in_size,
+                                                               int **out_fdlist,
+                                                               int *out_size);
 
-int dbus_handle_method_sync_pairs              (const char *dest,
+int gdbus_call_pairs_sync_with_reply_int       (const char *dest,
                                                const char *path,
                                                const char *interface,
                                                const char *method,
                                                int num,
                                                va_list args);
 
-int dbus_handle_method_async_pairs             (const char *dest,
+int gdbus_call_pairs_async             (const char *dest,
                                                const char *path,
                                                const char *interface,
                                                const char *method,
                                                int num,
                                                va_list args);
 
-int dbus_handle_method_async_pairs_with_reply  (const char *dest,
+int gdbus_call_pairs_async_with_reply  (const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *method,
@@ -161,45 +198,28 @@ int dbus_handle_method_async_pairs_with_reply     (const char *dest,
                                                int timeout_msec,
                                                void *data);
 
-gint* dbus_handle_get_unix_fd_list                             (GDBusMethodInvocation *invocation,
-                                                               int *size);
-
-int dbus_handle_method_with_unix_fd_list_sync_with_reply_var(const char *dest,
-                                                               const char *path,
-                                                               const char *iface,
-                                                               const char *method,
-                                                               GVariant *param,
-                                                               GVariant **out_reply,
-                                                               int *in_fdlist,
-                                                               int in_size,
-                                                               int **out_fdlist,
-                                                               int *out_size);
-
-
-guint subscribe_dbus_signal                    (dbus_handle_h handle,
-                                               const char *path,
-                                               const char *iface,
-                                               const char *name,
-                                               GDBusSignalCallback cb,
-                                               void *data,
-                                               destroy_notified free_func);
-
-void unsubscribe_dbus_signal                   (dbus_handle_h handle,
-                                               guint id);
-
-int dbus_handle_emit_dbus_signal               (const char *dest,
+int gdbus_signal_emit          (const char *dest,
                                                const char *path,
                                                const char *iface,
                                                const char *name,
                                                GVariant *param);
 
-int dbus_handle_emit_dbus_signal_sync(const char *dest,
+int gdbus_signal_emit_sync(const char *dest,
                                        const char *path,
                                        const char *iface,
                                        const char *name,
                                        GVariant *param);
 
-int dbus_handle_flush_sync(dbus_handle_h handle);
+guint gdbus_signal_subscribe                   (dbus_handle_h handle,
+                                               const char *path,
+                                               const char *iface,
+                                               const char *name,
+                                               GDBusSignalCallback cb,
+                                               void *data,
+                                               destroy_notified free_func);
+
+void gdbus_signal_unsubscribe                  (dbus_handle_h handle,
+                                               guint id);
 
 enum ctx_quit_reason {CTX_QUIT_UNKNOWN, CTX_QUIT_NORMAL, CTX_QUIT_TIMEOUT};
 
@@ -213,11 +233,7 @@ typedef struct {
        void *user_data;
 } sig_ctx;
 
-sig_ctx *dbus_handle_new_signal_ctx            (void);
-
-void dbus_handle_free_signal_ctx               (sig_ctx *ctx);
-
-guint subscribe_dbus_signal_ctx                        (dbus_handle_h handle,
+guint gdbus_signal_ctx_subscribe                       (dbus_handle_h handle,
                                                sig_ctx *ctx,
                                                const char *sender,
                                                const char *path,
@@ -225,42 +241,35 @@ guint subscribe_dbus_signal_ctx                   (dbus_handle_h handle,
                                                const char *name,
                                                GDBusSignalCallback cb);
 
-int dbus_handle_signal_ctx_wait                        (sig_ctx *ctx);
+sig_ctx *gdbus_signal_ctx_new          (void);
 
-int dbus_handle_signal_ctx_add_timeout         (sig_ctx *ctx,
-                                               int timeout);
+void gdbus_signal_ctx_free             (sig_ctx *ctx);
 
+int gdbus_signal_ctx_wait              (sig_ctx *ctx);
 
+int gdbus_signal_ctx_add_timeout               (sig_ctx *ctx,
+                                               int timeout);
 
+int gdbus_flush_sync(dbus_handle_h handle);
 
-int dbus_connection_get_sender_pid             (GDBusConnection *conn,
+int gdbus_connection_get_sender_pid            (GDBusConnection *conn,
                                                const char * sender);
 
-int dbus_handle_get_sender_pid                 (dbus_handle_h handle,
+int gdbus_get_sender_pid                       (dbus_handle_h handle,
                                                const char * sender);
 
-int dbus_handle_get_sender_credentials         (dbus_handle_h handle,
+int gdbus_get_sender_credentials               (dbus_handle_h handle,
                                                const char *name,
                                                GDBusCredentials *creds);
 
-int dbus_handle_watch_name                     (const char *name,
-                                               GBusNameAppearedCallback name_appeared_handler,
-                                               GBusNameVanishedCallback name_vanished_handler,
-                                               void *user_data,
-                                               GDestroyNotify user_data_free_func);
-
-void dbus_handle_unwatch_name                  (guint id);
-
-char** dbus_handle_get_owner_list              (dbus_handle_h handle,
-                                               const char *bus_name);
+gint* gdbus_get_unix_fd_list                           (GDBusMethodInvocation *invocation,
+                                                               int *size);
 
-void dbus_handle_check_owner_name              (dbus_handle_h handle,
-                                               const char *owner_name);
+GVariant *gdbus_make_simple_array      (const char *sig,
+                                               int *param);
 
 int check_systemd_active                       (void);
 
-GVariant *dbus_handle_make_simple_array                (const char *sig,
-                                               int *param);
 
 
 #endif
index a045616..8b8295c 100644 (file)
@@ -113,14 +113,14 @@ static int _systemd_control_unit_wait(const char *method,
        unitinfo uinfo;
        int quit_reason;
 
-       ctx = dbus_handle_new_signal_ctx();
+       ctx = gdbus_signal_ctx_new();
        if (!ctx)
                return -ENOMEM;
 
        _I("Starting: %s %s", method, name);
 
        /* synchronous signal subscription */
-       ret = subscribe_dbus_signal_ctx(NULL,
+       ret = gdbus_signal_ctx_subscribe(NULL,
                                        ctx,
                                        SYSTEMD_DBUS_SERVICE,
                                        SYSTEMD_DBUS_PATH,
@@ -132,7 +132,7 @@ static int _systemd_control_unit_wait(const char *method,
                goto finish;
        }
 
-       ret = dbus_handle_method_sync_with_reply_var(SYSTEMD_DBUS_DEST,
+       ret = gdbus_call_sync_with_reply(SYSTEMD_DBUS_DEST,
                                                        SYSTEMD_DBUS_PATH,
                                                        SYSTEMD_DBUS_MANAGER_IFACE,
                                                        method,
@@ -152,14 +152,14 @@ static int _systemd_control_unit_wait(const char *method,
        ctx->user_data = &uinfo;
 
        /* set timeout */
-       ret = dbus_handle_signal_ctx_add_timeout(ctx, timeout_msec);
+       ret = gdbus_signal_ctx_add_timeout(ctx, timeout_msec);
        if (ret < 0) {
                _E("Failed to set timeout, %d", ret);
                goto finish;
        }
 
        /* run loop and wait signal callback */
-       quit_reason = dbus_handle_signal_ctx_wait(ctx);
+       quit_reason = gdbus_signal_ctx_wait(ctx);
        if (quit_reason != CTX_QUIT_NORMAL) {
                ret = -1;
                _E("Failed to receive JobRemoved signal %d", quit_reason);
@@ -173,7 +173,7 @@ finish:
                g_variant_unref(reply);
        g_free(objpath);
 
-       dbus_handle_free_signal_ctx(ctx);
+       gdbus_signal_ctx_free(ctx);
 
        return ret;
 }
@@ -186,7 +186,7 @@ static int _systemd_control_unit_async(const char *method, const char *name)
 
        _I("Starting: %s %s", method, name);
 
-       ret = dbus_handle_method_sync_with_reply_var(SYSTEMD_DBUS_DEST,
+       ret = gdbus_call_sync_with_reply(SYSTEMD_DBUS_DEST,
                                                        SYSTEMD_DBUS_PATH,
                                                        SYSTEMD_DBUS_MANAGER_IFACE,
                                                        method,
@@ -416,7 +416,7 @@ GVariant *systemd_get_manager_property(const char *property)
        if (!property)
                return NULL;
 
-       ret_dbus = dbus_handle_method_sync_with_reply_var(SYSTEMD_DBUS_DEST,
+       ret_dbus = gdbus_call_sync_with_reply(SYSTEMD_DBUS_DEST,
                                                        SYSTEMD_DBUS_PATH,
                                                        DBUS_IFACE_DBUS_PROPERTIES,
                                                        "Get",
@@ -442,7 +442,7 @@ GVariant *systemd_get_unit_property(const char *unit, const char *property)
 
        escaped = systemd_get_unit_dbus_path(unit);
 
-       ret_dbus = dbus_handle_method_sync_with_reply_var(SYSTEMD_DBUS_DEST,
+       ret_dbus = gdbus_call_sync_with_reply(SYSTEMD_DBUS_DEST,
                                                        escaped,
                                                        DBUS_IFACE_DBUS_PROPERTIES,
                                                        "Get",
@@ -470,7 +470,7 @@ GVariant *systemd_get_service_property(const char *unit, const char *property)
 
        escaped = systemd_get_unit_dbus_path(unit);
 
-       ret_dbus = dbus_handle_method_sync_with_reply_var(SYSTEMD_DBUS_DEST,
+       ret_dbus = gdbus_call_sync_with_reply(SYSTEMD_DBUS_DEST,
                                                        escaped,
                                                        DBUS_IFACE_DBUS_PROPERTIES,
                                                        "Get",