about summary refs log tree commit diff
path: root/libnm-glib/nm-object.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2011-08-23 19:16:47 +0200
committerMichael Biebl <biebl@debian.org>2011-08-23 19:16:47 +0200
commit263bf4c0c89bb88dc995acd9a6a2de9095fbd461 (patch)
tree7224326afe367409e7150e49fad9029f81fe24b8 /libnm-glib/nm-object.c
parentd465e5fac63f36bcf4069e36827f4b62c494556d (diff)
Imported Upstream version 0.9.0 upstream/0.9.0
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 614f6afc..cbcf2919 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 */