summary refs log tree commit diff
path: root/clients/cloud-setup
diff options
context:
space:
mode:
Diffstat (limited to 'clients/cloud-setup')
-rw-r--r--clients/cloud-setup/main.c86
-rw-r--r--clients/cloud-setup/meson.build15
-rw-r--r--clients/cloud-setup/nm-cloud-setup-utils.c12
-rw-r--r--clients/cloud-setup/nm-http-client.c13
-rw-r--r--clients/cloud-setup/nmcs-provider-ec2.c8
5 files changed, 52 insertions, 82 deletions
diff --git a/clients/cloud-setup/main.c b/clients/cloud-setup/main.c
index 8250945c..4e1a9a4e 100644
--- a/clients/cloud-setup/main.c
+++ b/clients/cloud-setup/main.c
@@ -2,8 +2,9 @@
 
 #include "nm-default.h"
 
-#include "nm-cloud-setup-utils.h"
+#include "nm-libnm-aux/nm-libnm-aux.h"
 
+#include "nm-cloud-setup-utils.h"
 #include "nmcs-provider-ec2.h"
 #include "nm-libnm-core-intern/nm-libnm-core-utils.h"
 
@@ -30,7 +31,7 @@ _provider_detect_cb (GObject *source,
 
 	nm_assert (success != (!!error));
 
-	if (nm_utils_error_is_cancelled (error, FALSE))
+	if (nm_utils_error_is_cancelled (error))
 		return;
 
 	dd = user_data;
@@ -122,58 +123,6 @@ out:
 
 /*****************************************************************************/
 
-typedef struct {
-	GMainLoop *main_loop;
-	NMClient *nmc;
-} ClientCreateData;
-
-static void
-_nmc_create_cb (GObject *source_object,
-                GAsyncResult *result,
-                gpointer user_data)
-{
-	gs_unref_object NMClient *nmc = NULL;
-	ClientCreateData *data = user_data;
-	gs_free_error GError *error = NULL;
-
-	nmc = nm_client_new_finish (result, &error);
-	if (!nmc) {
-		if (!nm_utils_error_is_cancelled (error, FALSE))
-			_LOGI ("failure to talk to NetworkManager: %s", error->message);
-		goto out;
-	}
-
-	if (!nm_client_get_nm_running (nmc)) {
-		_LOGI ("NetworkManager is not running");
-		goto out;
-	}
-
-	_LOGD ("NetworkManager is running");
-	nmcs_wait_for_objects_register (nmc);
-	nmcs_wait_for_objects_register (nm_client_get_context_busy_watcher (nmc));
-
-	data->nmc = g_steal_pointer (&nmc);
-out:
-	g_main_loop_quit (data->main_loop);
-}
-
-static NMClient *
-_nmc_create (GCancellable *sigterm_cancellable)
-{
-	nm_auto_unref_gmainloop GMainLoop *main_loop = g_main_loop_new (NULL, FALSE);
-	ClientCreateData data = {
-		.main_loop = main_loop,
-	};
-
-	nm_client_new_async (sigterm_cancellable, _nmc_create_cb, &data);
-
-	g_main_loop_run (main_loop);
-
-	return data.nmc;
-}
-
-/*****************************************************************************/
-
 static char **
 _nmc_get_hwaddrs (NMClient *nmc)
 {
@@ -270,7 +219,7 @@ _get_config_cb (GObject *source,
 	config_dict = nmcs_provider_get_config_finish (NMCS_PROVIDER (source), result, &error);
 
 	if (!config_dict) {
-		if (!nm_utils_error_is_cancelled (error, FALSE))
+		if (!nm_utils_error_is_cancelled (error))
 			_LOGI ("failure to get meta data: %s", error->message);
 	} else
 		_LOGD ("meta data received");
@@ -386,7 +335,7 @@ _nmc_mangle_connection (NMDevice *device,
 		entry = nm_ip_routing_rule_new (AF_INET);
 		nm_ip_routing_rule_set_priority (entry, rt_table);
 		nm_ip_routing_rule_set_from (entry,
-		                             nm_utils_inet4_ntop (config_data->ipv4s_arr[i], sbuf),
+		                             _nm_utils_inet4_ntop (config_data->ipv4s_arr[i], sbuf),
 		                             32);
 		nm_ip_routing_rule_set_table (entry, rt_table);
 
@@ -477,7 +426,7 @@ try_again:
 	                                                         &applied_version_id,
 	                                                         &error);
 	if (!applied_connection) {
-		if (!nm_utils_error_is_cancelled (error, FALSE))
+		if (!nm_utils_error_is_cancelled (error))
 			_LOGD ("config device %s: device has no applied connection (%s). Skip", hwaddr, error->message);
 		return any_changes;
 	}
@@ -528,7 +477,7 @@ try_again:
 			goto try_again;
 		}
 
-		if (!nm_utils_error_is_cancelled (error, FALSE)) {
+		if (!nm_utils_error_is_cancelled (error)) {
 			_LOGD ("config device %s: failure to reapply connection \"%s\" (%s): %s",
 			       hwaddr,
 			       nm_connection_get_id (applied_connection),
@@ -593,6 +542,7 @@ main (int argc, const char *const*argv)
 	gs_unref_object NMCSProvider *provider = NULL;
 	gs_unref_object NMClient *nmc = NULL;
 	gs_unref_hashtable GHashTable *config_dict = NULL;
+	gs_free_error GError *error = NULL;
 
 	_nm_logging_enabled_init (g_getenv (NMCS_ENV_VARIABLE ("NM_CLOUD_SETUP_LOG")));
 
@@ -616,9 +566,25 @@ main (int argc, const char *const*argv)
 	if (!provider)
 		goto done;
 
-	nmc = _nmc_create (sigterm_cancellable);
-	if (!nmc)
+	nmc_client_new_waitsync (sigterm_cancellable,
+	                         &nmc,
+	                         &error,
+	                         NM_CLIENT_INSTANCE_FLAGS, (guint) NM_CLIENT_INSTANCE_FLAGS_NO_AUTO_FETCH_PERMISSIONS,
+	                         NULL);
+
+	nmcs_wait_for_objects_register (nmc);
+	nmcs_wait_for_objects_register (nm_client_get_context_busy_watcher (nmc));
+
+	if (error) {
+		if (!nm_utils_error_is_cancelled (error))
+			_LOGI ("failure to talk to NetworkManager: %s", error->message);
 		goto done;
+	}
+
+	if (!nm_client_get_nm_running (nmc)) {
+		_LOGI ("NetworkManager is not running");
+		goto done;
+	}
 
 	config_dict = _get_config (sigterm_cancellable, provider, nmc);
 	if (!config_dict)
diff --git a/clients/cloud-setup/meson.build b/clients/cloud-setup/meson.build
index e9cd970a..d8f96539 100644
--- a/clients/cloud-setup/meson.build
+++ b/clients/cloud-setup/meson.build
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: LGPL-2.1+
+
 name = 'nm-cloud-setup'
 
 if install_systemdunitdir
@@ -29,16 +31,15 @@ sources = files(
   'nmcs-provider.c',
 )
 
-deps = [
-  libnmc_base_dep,
-  libnmc_dep,
-  libcurl_dep,
-]
-
 executable(
   name,
   sources,
-  dependencies: deps,
+  dependencies: [
+    libnmc_base_dep,
+    libnmc_dep,
+    libcurl_dep,
+    libnm_libnm_aux_dep,
+  ],
   c_args: clients_c_flags +
           ['-DG_LOG_DOMAIN="@0@"'.format(name)],
   link_with: libnm_systemd_logging_stub,
diff --git a/clients/cloud-setup/nm-cloud-setup-utils.c b/clients/cloud-setup/nm-cloud-setup-utils.c
index 50a59892..13c9566a 100644
--- a/clients/cloud-setup/nm-cloud-setup-utils.c
+++ b/clients/cloud-setup/nm-cloud-setup-utils.c
@@ -49,11 +49,11 @@ _nm_log_impl_cs (NMLogLevel level,
 		break;
 	}
 
-	ts = nm_utils_clock_gettime_ns (CLOCK_BOOTTIME);
+	ts = nm_utils_clock_gettime_nsec (CLOCK_BOOTTIME);
 
 	g_print ("[%"G_GINT64_FORMAT".%05"G_GINT64_FORMAT"] %s %s\n",
-	         ts / NM_UTILS_NS_PER_SECOND,
-	         (ts / (NM_UTILS_NS_PER_SECOND / 10000)) % 10000,
+	         ts / NM_UTILS_NSEC_PER_SEC,
+	         (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000,
 	         level_str,
 	         msg);
 }
@@ -294,7 +294,7 @@ _poll_done_cb (GObject *source,
 	                                                poll_task_data->probe_user_data,
 	                                                &error);
 
-	if (nm_utils_error_is_cancelled (error, FALSE)) {
+	if (nm_utils_error_is_cancelled (error)) {
 		/* we already handle this differently. Nothing to do. */
 		return;
 	}
@@ -305,7 +305,7 @@ _poll_done_cb (GObject *source,
 		return;
 	}
 
-	now_ms = nm_utils_get_monotonic_timestamp_ms ();
+	now_ms = nm_utils_get_monotonic_timestamp_msec ();
 	if (poll_task_data->ratelimit_timeout_ms > 0)
 		wait_ms = (poll_task_data->last_poll_start_ms + poll_task_data->ratelimit_timeout_ms) - now_ms;
 	else
@@ -328,7 +328,7 @@ _poll_start_cb (gpointer user_data)
 
 	nm_clear_g_source_inst (&poll_task_data->source_next_poll);
 
-	poll_task_data->last_poll_start_ms = nm_utils_get_monotonic_timestamp_ms ();
+	poll_task_data->last_poll_start_ms = nm_utils_get_monotonic_timestamp_msec ();
 
 	g_object_ref (poll_task_data->task); /* balanced by _poll_done_cb() */
 
diff --git a/clients/cloud-setup/nm-http-client.c b/clients/cloud-setup/nm-http-client.c
index 17c6fcdf..94f3fe2b 100644
--- a/clients/cloud-setup/nm-http-client.c
+++ b/clients/cloud-setup/nm-http-client.c
@@ -5,7 +5,6 @@
 #include "nm-http-client.h"
 
 #include <curl/curl.h>
-#include <glib-unix.h>
 
 #include "nm-cloud-setup-utils.h"
 
@@ -164,7 +163,7 @@ _ehandle_complete (EHandleData *edata,
 	                                    &edata->cancellable_id);
 
 	if (error_take) {
-		if (nm_utils_error_is_cancelled (error_take, FALSE))
+		if (nm_utils_error_is_cancelled (error_take))
 			_LOG2T (edata, "cancelled");
 		else
 			_LOG2D (edata, "failed with %s", error_take->message);
@@ -423,7 +422,7 @@ _poll_get_probe_finish_fcn (GObject *source,
 	                                     &local_error);
 
 	if (!success) {
-		if (nm_utils_error_is_cancelled (local_error, FALSE)) {
+		if (nm_utils_error_is_cancelled (local_error)) {
 			g_propagate_error (error, g_steal_pointer (&local_error));
 			return TRUE;
 		}
@@ -636,8 +635,12 @@ _mhandle_socketfunction_cb (CURL *e_handle, curl_socket_t fd, int what, void *us
 			condition = 0;
 
 		if (condition) {
-			priv->mhandle_source_socket = g_unix_fd_source_new (fd, condition);
-			g_source_set_callback (priv->mhandle_source_socket, G_SOURCE_FUNC (_mhandle_socket_cb), self, NULL);
+			priv->mhandle_source_socket = nm_g_unix_fd_source_new (fd,
+			                                                       condition,
+			                                                       G_PRIORITY_DEFAULT,
+			                                                       _mhandle_socket_cb,
+			                                                       self,
+			                                                       NULL);
 			g_source_attach (priv->mhandle_source_socket, priv->context);
 		}
 	}
diff --git a/clients/cloud-setup/nmcs-provider-ec2.c b/clients/cloud-setup/nmcs-provider-ec2.c
index b6ac5a4c..82ed0949 100644
--- a/clients/cloud-setup/nmcs-provider-ec2.c
+++ b/clients/cloud-setup/nmcs-provider-ec2.c
@@ -98,7 +98,7 @@ _detect_get_meta_data_done_cb (GObject *source,
 	                                          NULL,
 	                                          &get_error);
 
-	if (nm_utils_error_is_cancelled (get_error, FALSE)) {
+	if (nm_utils_error_is_cancelled (get_error)) {
 		g_task_return_error (task, g_steal_pointer (&get_error));
 		return;
 	}
@@ -168,7 +168,7 @@ _get_config_task_return (GetConfigIfaceData *iface_data,
 	nm_g_slice_free (iface_data);
 
 	if (error_take) {
-		if (nm_utils_error_is_cancelled (error_take, FALSE))
+		if (nm_utils_error_is_cancelled (error_take))
 			_LOGD ("get-config: cancelled");
 		else
 			_LOGD ("get-config: failed: %s", error_take->message);
@@ -204,7 +204,7 @@ _get_config_fetch_done_cb (NMHttpClient *http_client,
 	                                          NULL,
 	                                          &response_data,
 	                                          &error);
-	if (nm_utils_error_is_cancelled (error, FALSE))
+	if (nm_utils_error_is_cancelled (error))
 		return;
 
 	get_config_data = iface_data->get_config_data;
@@ -327,7 +327,7 @@ _get_config_metadata_ready_cb (GObject *source,
 		.n_pending       = 0,
 	};
 
-	if (nm_utils_error_is_cancelled (error, FALSE)) {
+	if (nm_utils_error_is_cancelled (error)) {
 		_get_config_task_return (iface_data, g_steal_pointer (&error));
 		return;
 	}