Add generic reference to the global D-Bus connection
authorMarcel Holtmann <marcel@holtmann.org>
Sat, 20 Dec 2008 07:42:13 +0000 (08:42 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Sat, 20 Dec 2008 07:42:13 +0000 (08:42 +0100)
include/dbus.h
src/connman.h
src/dbus.c
src/main.c

index 97a58ba5cbfbce1b0aaf24a168f09bc78d6aa574..a0fe3fdc9ef40de9e22377cd875e155588ee0d62 100644 (file)
@@ -41,6 +41,8 @@ extern "C" {
 #define CONNMAN_NETWORK_INTERFACE      CONNMAN_SERVICE ".Network"
 #define CONNMAN_CONNECTION_INTERFACE   CONNMAN_SERVICE ".Connection"
 
+extern DBusConnection *connman_dbus_get_connection(void);
+
 extern void connman_dbus_property_append_variant(DBusMessageIter *property,
                                        const char *key, int type, void *val);
 
index 4fca0507816d8a9267a4c977a8ad17e6a7bd48c2..70fcac1d58606f6e35b00c329c0c9a5471c78bb7 100644 (file)
@@ -27,6 +27,9 @@
 #define NM_PATH       "/org/freedesktop/NetworkManager"
 #define NM_INTERFACE  NM_SERVICE
 
+int __connman_dbus_init(DBusConnection *conn);
+void __connman_dbus_cleanup(void);
+
 DBusMessage *__connman_error_failed(DBusMessage *msg);
 DBusMessage *__connman_error_invalid_arguments(DBusMessage *msg);
 DBusMessage *__connman_error_permission_denied(DBusMessage *msg);
index 333b4cf8ba206a1a7788d132831248b99b44bdf7..6960a40f1c95650e7a2db1ac668850498a7a022d 100644 (file)
@@ -114,3 +114,25 @@ void connman_dbus_dict_append_variant(DBusMessageIter *dict,
 
        dbus_message_iter_close_container(dict, &entry);
 }
+
+static DBusConnection *connection = NULL;
+
+DBusConnection *connman_dbus_get_connection(void)
+{
+       if (connection == NULL)
+               return NULL;
+
+       return dbus_connection_ref(connection);
+}
+
+int __connman_dbus_init(DBusConnection *conn)
+{
+       connection = conn;
+
+       return 0;
+}
+
+void __connman_dbus_cleanup(void)
+{
+       connection = NULL;
+}
index 929d31a8fcc94a83cf0c8257ce470734f23e8f5c..638ad0bc67f61e68df31b43f57b8780d470d76a8 100644 (file)
@@ -150,6 +150,8 @@ int main(int argc, char *argv[])
                }
        }
 
+       __connman_dbus_init(conn);
+
        __connman_storage_init();
 
        __connman_element_init(conn, option_device);
@@ -187,6 +189,8 @@ int main(int argc, char *argv[])
 
        __connman_storage_cleanup();
 
+       __connman_dbus_cleanup();
+
 selftest:
        __connman_log_cleanup();