This email list is read-only.  Emails sent to this list will be discarded
----------------------------------
 include/dbus.h      |    2 ++
 plugins/bluetooth.c |    2 +-
 plugins/dhclient.c  |    2 +-
 plugins/polkit.c    |    3 ++-
 plugins/wifi.c      |    3 ++-
 src/connman.h       |    3 +++
 src/dbus.c          |   22 ++++++++++++++++++++++
 src/main.c          |    4 ++++
 8 files changed, 37 insertions(+), 4 deletions(-)

New commits:
commit 60fe07bb4f740459d0ee42fd207085634354b9d6
Author: Marcel Holtmann <[email protected]>
Date:   Sat Dec 20 08:46:36 2008 +0100

    Let plugins use connman_dbus_get_connection() function

commit 72c28aa582fccf616092b3baed5a0964a98a09d7
Author: Marcel Holtmann <[email protected]>
Date:   Sat Dec 20 08:42:13 2008 +0100

    Add generic reference to the global D-Bus connection


Diff in this email is a maximum of 400 lines.
diff --git a/include/dbus.h b/include/dbus.h
index 97a58ba..a0fe3fd 100644
--- a/include/dbus.h
+++ b/include/dbus.h
@@ -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);
 
diff --git a/plugins/bluetooth.c b/plugins/bluetooth.c
index d7ae286..9a26a94 100644
--- a/plugins/bluetooth.c
+++ b/plugins/bluetooth.c
@@ -466,7 +466,7 @@ static int bluetooth_init(void)
 {
        int err = -EIO;
 
-       connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+       connection = connman_dbus_get_connection();
        if (connection == NULL)
                return -EIO;
 
diff --git a/plugins/dhclient.c b/plugins/dhclient.c
index 61dafe4..2cb4930 100644
--- a/plugins/dhclient.c
+++ b/plugins/dhclient.c
@@ -318,7 +318,7 @@ static int dhclient_init(void)
        gchar *filter;
        int err;
 
-       connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+       connection = connman_dbus_get_connection();
 
        busname = dbus_bus_get_unique_name(connection);
        busname = CONNMAN_SERVICE;
diff --git a/plugins/polkit.c b/plugins/polkit.c
index a2e15a9..1bf3f90 100644
--- a/plugins/polkit.c
+++ b/plugins/polkit.c
@@ -30,6 +30,7 @@
 
 #include <connman/plugin.h>
 #include <connman/security.h>
+#include <connman/dbus.h>
 #include <connman/log.h>
 
 #define ACTION "org.moblin.connman.modify"
@@ -124,7 +125,7 @@ static int polkit_init(void)
 {
        int err;
 
-       connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+       connection = connman_dbus_get_connection();
        if (connection == NULL)
                return -EIO;
 
diff --git a/plugins/wifi.c b/plugins/wifi.c
index f215352..dd769b5 100644
--- a/plugins/wifi.c
+++ b/plugins/wifi.c
@@ -36,6 +36,7 @@
 #include <connman/plugin.h>
 #include <connman/driver.h>
 #include <connman/rtnl.h>
+#include <connman/dbus.h>
 #include <connman/log.h>
 
 #include "inet.h"
@@ -619,7 +620,7 @@ static int wifi_init(void)
 {
        int err;
 
-       connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
+       connection = connman_dbus_get_connection();
        if (connection == NULL)
                return -EIO;
 
diff --git a/src/connman.h b/src/connman.h
index 4fca050..70fcac1 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 333b4cf..6960a40 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 929d31a..638ad0b 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();
 
_______________________________________________
Commits mailing list
[email protected]
https://lists.moblin.org/mailman/listinfo/commits

Reply via email to