aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mm-manager.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/mm-manager.c b/src/mm-manager.c
index ad348bf9..b1a3b8ab 100644
--- a/src/mm-manager.c
+++ b/src/mm-manager.c
@@ -54,14 +54,18 @@ enum {
};
struct _MMManagerPrivate {
+ /* The connection to the system bus */
GDBusConnection *connection;
+ /* The UDev client */
GUdevClient *udev;
- GHashTable *modems;
-
+ /* The authentication provider */
MMAuthProvider *authp;
-
/* The Plugin Manager object */
MMPluginManager *plugin_manager;
+ /* The container of currently available modems */
+ GHashTable *modems;
+ /* DBus The Object Manager server */
+ GDBusObjectManagerServer *object_manager;
};
typedef struct {
@@ -830,6 +834,9 @@ mm_manager_init (MMManager *manager)
priv->udev = g_udev_client_new (subsys);
g_signal_connect (priv->udev, "uevent", G_CALLBACK (handle_uevent), manager);
+ /* Setup Object Manager Server */
+ priv->object_manager = g_dbus_object_manager_server_new (MM_DBUS_PATH);
+
/* Enable processing of input DBus messages */
g_signal_connect (manager,
"handle-set-logging",
@@ -860,6 +867,10 @@ initable_init (GInitable *initable,
error))
return FALSE;
+ /* Export the Object Manager interface */
+ g_dbus_object_manager_server_set_connection (priv->object_manager,
+ priv->connection);
+
/* All good */
return TRUE;
}
@@ -879,6 +890,9 @@ finalize (GObject *object)
if (priv->plugin_manager)
g_object_unref (priv->plugin_manager);
+ if (priv->object_manager)
+ g_object_unref (priv->object_manager);
+
if (priv->connection)
g_object_unref (priv->connection);