summaryrefslogtreecommitdiff
path: root/libnm-glib/nm-object.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-glib/nm-object.c')
-rw-r--r--libnm-glib/nm-object.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/libnm-glib/nm-object.c b/libnm-glib/nm-object.c
index 614f6afcc..cbcf29190 100644
--- a/libnm-glib/nm-object.c
+++ b/libnm-glib/nm-object.c
@@ -79,8 +79,6 @@ constructor (GType type,
if (!object)
return NULL;
- _nm_object_cache_add (NM_OBJECT (object));
-
priv = NM_OBJECT_GET_PRIVATE (object);
if (priv->connection == NULL || priv->path == NULL) {
@@ -94,6 +92,8 @@ constructor (GType type,
priv->path,
"org.freedesktop.DBus.Properties");
+ _nm_object_cache_add (NM_OBJECT (object));
+
return object;
}
@@ -140,11 +140,15 @@ set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object);
+ DBusGConnection *connection;
switch (prop_id) {
case PROP_CONNECTION:
/* Construct only */
- priv->connection = dbus_g_connection_ref ((DBusGConnection *) g_value_get_boxed (value));
+ connection = (DBusGConnection *) g_value_get_boxed (value);
+ if (!connection)
+ connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, NULL);
+ priv->connection = dbus_g_connection_ref (connection);
break;
case PROP_PATH:
/* Construct only */