summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-20 08:42:13 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-20 08:42:13 +0100
commit72c28aa582fccf616092b3baed5a0964a98a09d7 (patch)
tree7b6658b7fed13394a60ae45b8a6a2148e7666e06 /src
parentc586908e887ba0f25efb682e0f835755d36077b8 (diff)
downloadconnman-72c28aa582fccf616092b3baed5a0964a98a09d7.tar.gz
connman-72c28aa582fccf616092b3baed5a0964a98a09d7.tar.bz2
connman-72c28aa582fccf616092b3baed5a0964a98a09d7.zip
Add generic reference to the global D-Bus connection
Diffstat (limited to 'src')
-rw-r--r--src/connman.h3
-rw-r--r--src/dbus.c22
-rw-r--r--src/main.c4
3 files changed, 29 insertions, 0 deletions
diff --git a/src/connman.h b/src/connman.h
index 4fca0507..70fcac1d 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -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);
diff --git a/src/dbus.c b/src/dbus.c
index 333b4cf8..6960a40f 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -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;
+}
diff --git a/src/main.c b/src/main.c
index 929d31a8..638ad0bc 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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();