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 97a58ba..a0fe3fd 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 4fca050..70fcac1 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 333b4cf..6960a40 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 929d31a..638ad0b 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();