about summary refs log tree commit diff
path: root/libnm/nm-client.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2018-06-04 00:08:31 +0200
committerMichael Biebl <biebl@debian.org>2018-06-04 00:08:31 +0200
commit0dd9df69fdbd475c48a0c8d5b0a1882550fe7321 (patch)
tree249cf25643b1fe408e10679bb61613bc6540e894 /libnm/nm-client.c
parent2e94a3b93171ab3fb95bf689aab1664d23988809 (diff)
parent04bc9e1cd3544445d883ad29ea108c1645c8e7b7 (diff)
Update upstream source from tag 'upstream/1.11.4'
Update to upstream version '1.11.4'
with Debian dir d0638aa2e32d5bae4e8daa021b9a66b7c4d6647e
Diffstat (limited to 'libnm/nm-client.c')
-rw-r--r--libnm/nm-client.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index a31a0845..18d3e318 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -110,6 +110,7 @@ typedef struct {
 	GDBusObjectManager *object_manager;
 	GCancellable *new_object_manager_cancellable;
 	struct udev *udev;
+	bool udev_inited:1;
 } NMClientPrivate;
 
 enum {
@@ -754,7 +755,6 @@ nm_client_check_connectivity_finish (NMClient *client,
 	return (NMConnectivityState) g_simple_async_result_get_op_res_gssize (simple);
 }
 
-
 /**
  * nm_client_save_hostname:
  * @client: the %NMClient
@@ -2604,9 +2604,14 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
 	                       NULL);
 	if (NM_IS_DEVICE (obj_nm)) {
 		priv = NM_CLIENT_GET_PRIVATE (self);
-		if (!priv->udev)
-			priv->udev = udev_new ();
-		_nm_device_set_udev (NM_DEVICE (obj_nm), priv->udev);
+		if (G_UNLIKELY (!priv->udev_inited)) {
+			priv->udev_inited = TRUE;
+			/* for testing, we don't want to use udev in libnm. */
+			if (!nm_streq0 (g_getenv ("LIBNM_USE_NO_UDEV"), "1"))
+				priv->udev = udev_new ();
+		}
+		if (priv->udev)
+			_nm_device_set_udev (NM_DEVICE (obj_nm), priv->udev);
 	}
 	g_object_set_qdata_full (G_OBJECT (object), _nm_object_obj_nm_quark (),
 	                         obj_nm, g_object_unref);
@@ -2623,7 +2628,6 @@ obj_nm_inited (GObject *object, GAsyncResult *result, gpointer user_data)
 	}
 }
 
-
 static void
 object_added (GDBusObjectManager *object_manager, GDBusObject *object, gpointer user_data)
 {
@@ -2740,7 +2744,6 @@ objects_created (NMClient *client, GDBusObjectManager *object_manager, GError **
 		                  G_CALLBACK (dns_notify), client);
 	}
 
-
 	/* The handlers don't really use the client instance. However
 	 * it makes it convenient to unhook them by data. */
 	g_signal_connect (object_manager, "object-added",