summary refs log tree commit diff
path: root/src/libnm-glib-aux
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2022-02-14 19:23:28 +0100
committerMichael Biebl <biebl@debian.org>2022-02-14 19:23:28 +0100
commit2f94dba7385fd0e0ef19a06eb4a2fcf6c43d7946 (patch)
treee2222f5577115985dd52044d2991253403cdd952 /src/libnm-glib-aux
parent88c227d90a6b7b388c5c85d72802a0ca8f05ed5c (diff)
New upstream version 1.35.91 upstream/1.35.91
Diffstat (limited to 'src/libnm-glib-aux')
-rw-r--r--src/libnm-glib-aux/nm-c-list.h2
-rw-r--r--src/libnm-glib-aux/nm-dbus-aux.c120
-rw-r--r--src/libnm-glib-aux/nm-dbus-aux.h92
-rw-r--r--src/libnm-glib-aux/nm-dedup-multi.c112
-rw-r--r--src/libnm-glib-aux/nm-dedup-multi.h78
-rw-r--r--src/libnm-glib-aux/nm-enum-utils.c18
-rw-r--r--src/libnm-glib-aux/nm-enum-utils.h10
-rw-r--r--src/libnm-glib-aux/nm-errno.c2
-rw-r--r--src/libnm-glib-aux/nm-glib.h12
-rw-r--r--src/libnm-glib-aux/nm-hash-utils.c42
-rw-r--r--src/libnm-glib-aux/nm-hash-utils.h14
-rw-r--r--src/libnm-glib-aux/nm-io-utils.c50
-rw-r--r--src/libnm-glib-aux/nm-io-utils.h26
-rw-r--r--src/libnm-glib-aux/nm-json-aux.c6
-rw-r--r--src/libnm-glib-aux/nm-json-aux.h2
-rw-r--r--src/libnm-glib-aux/nm-keyfile-aux.c32
-rw-r--r--src/libnm-glib-aux/nm-keyfile-aux.h10
-rw-r--r--src/libnm-glib-aux/nm-logging-base.c4
-rw-r--r--src/libnm-glib-aux/nm-macros-internal.h45
-rw-r--r--src/libnm-glib-aux/nm-random-utils.c6
-rw-r--r--src/libnm-glib-aux/nm-ref-string.c42
-rw-r--r--src/libnm-glib-aux/nm-ref-string.h65
-rw-r--r--src/libnm-glib-aux/nm-secret-utils.h20
-rw-r--r--src/libnm-glib-aux/nm-shared-utils.c344
-rw-r--r--src/libnm-glib-aux/nm-shared-utils.h219
-rw-r--r--src/libnm-glib-aux/nm-str-buf.h2
-rw-r--r--src/libnm-glib-aux/nm-test-utils.h266
-rw-r--r--src/libnm-glib-aux/nm-uuid.c24
-rw-r--r--src/libnm-glib-aux/nm-uuid.h10
-rw-r--r--src/libnm-glib-aux/nm-value-type.h6
-rw-r--r--src/libnm-glib-aux/tests/test-json-aux.c2
-rw-r--r--src/libnm-glib-aux/tests/test-shared-general.c48
32 files changed, 969 insertions, 762 deletions
diff --git a/src/libnm-glib-aux/nm-c-list.h b/src/libnm-glib-aux/nm-c-list.h
index 6dd3ac72..d89a9223 100644
--- a/src/libnm-glib-aux/nm-c-list.h
+++ b/src/libnm-glib-aux/nm-c-list.h
@@ -169,7 +169,7 @@ nm_c_list_move_after(CList *lst, CList *elem)
     G_STMT_START                                                   \
     {                                                              \
         CList *const _lst = (lst);                                 \
-        type *       _elem;                                        \
+        type        *_elem;                                        \
                                                                    \
         while ((_elem = c_list_first_entry(_lst, type, member))) { \
             destroy_fcn(_elem);                                    \
diff --git a/src/libnm-glib-aux/nm-dbus-aux.c b/src/libnm-glib-aux/nm-dbus-aux.c
index 454bd2d8..0f43ba8e 100644
--- a/src/libnm-glib-aux/nm-dbus-aux.c
+++ b/src/libnm-glib-aux/nm-dbus-aux.c
@@ -12,9 +12,9 @@
 static void
 _nm_dbus_connection_call_get_name_owner_cb(GObject *source, GAsyncResult *res, gpointer user_data)
 {
-    gs_unref_variant GVariant *ret           = NULL;
-    gs_free_error GError *             error = NULL;
-    const char *                       owner = NULL;
+    gs_unref_variant GVariant         *ret   = NULL;
+    gs_free_error GError              *error = NULL;
+    const char                        *owner = NULL;
     gpointer                           orig_user_data;
     NMDBusConnectionCallGetNameOwnerCb callback;
 
@@ -28,10 +28,10 @@ _nm_dbus_connection_call_get_name_owner_cb(GObject *source, GAsyncResult *res, g
 }
 
 void
-nm_dbus_connection_call_get_name_owner(GDBusConnection *                  dbus_connection,
-                                       const char *                       service_name,
+nm_dbus_connection_call_get_name_owner(GDBusConnection                   *dbus_connection,
+                                       const char                        *service_name,
                                        int                                timeout_msec,
-                                       GCancellable *                     cancellable,
+                                       GCancellable                      *cancellable,
                                        NMDBusConnectionCallGetNameOwnerCb callback,
                                        gpointer                           user_data)
 {
@@ -56,8 +56,8 @@ nm_dbus_connection_call_get_name_owner(GDBusConnection *                  dbus_c
 static void
 _nm_dbus_connection_call_default_cb(GObject *source, GAsyncResult *res, gpointer user_data)
 {
-    gs_unref_variant GVariant *ret      = NULL;
-    gs_free_error GError *        error = NULL;
+    gs_unref_variant GVariant    *ret   = NULL;
+    gs_free_error GError         *error = NULL;
     gpointer                      orig_user_data;
     NMDBusConnectionCallDefaultCb callback;
 
@@ -71,12 +71,12 @@ _nm_dbus_connection_call_default_cb(GObject *source, GAsyncResult *res, gpointer
 }
 
 void
-nm_dbus_connection_call_get_all(GDBusConnection *             dbus_connection,
-                                const char *                  bus_name,
-                                const char *                  object_path,
-                                const char *                  interface_name,
+nm_dbus_connection_call_get_all(GDBusConnection              *dbus_connection,
+                                const char                   *bus_name,
+                                const char                   *object_path,
+                                const char                   *interface_name,
                                 int                           timeout_msec,
-                                GCancellable *                cancellable,
+                                GCancellable                 *cancellable,
                                 NMDBusConnectionCallDefaultCb callback,
                                 gpointer                      user_data)
 {
@@ -97,14 +97,14 @@ nm_dbus_connection_call_get_all(GDBusConnection *             dbus_connection,
 }
 
 void
-nm_dbus_connection_call_set(GDBusConnection *             dbus_connection,
-                            const char *                  bus_name,
-                            const char *                  object_path,
-                            const char *                  interface_name,
-                            const char *                  property_name,
-                            GVariant *                    value,
+nm_dbus_connection_call_set(GDBusConnection              *dbus_connection,
+                            const char                   *bus_name,
+                            const char                   *object_path,
+                            const char                   *interface_name,
+                            const char                   *property_name,
+                            GVariant                     *value,
                             int                           timeout_msec,
-                            GCancellable *                cancellable,
+                            GCancellable                 *cancellable,
                             NMDBusConnectionCallDefaultCb callback,
                             gpointer                      user_data)
 {
@@ -125,13 +125,13 @@ nm_dbus_connection_call_set(GDBusConnection *             dbus_connection,
 /*****************************************************************************/
 
 static void
-_nm_dbus_connection_call_get_managed_objects_cb(GObject *     source,
+_nm_dbus_connection_call_get_managed_objects_cb(GObject      *source,
                                                 GAsyncResult *res,
                                                 gpointer      user_data)
 {
-    gs_unref_variant GVariant *ret      = NULL;
-    gs_unref_variant GVariant *arg      = NULL;
-    gs_free_error GError *        error = NULL;
+    gs_unref_variant GVariant    *ret   = NULL;
+    gs_unref_variant GVariant    *arg   = NULL;
+    gs_free_error GError         *error = NULL;
     gpointer                      orig_user_data;
     NMDBusConnectionCallDefaultCb callback;
 
@@ -150,12 +150,12 @@ _nm_dbus_connection_call_get_managed_objects_cb(GObject *     source,
 }
 
 void
-nm_dbus_connection_call_get_managed_objects(GDBusConnection *             dbus_connection,
-                                            const char *                  bus_name,
-                                            const char *                  object_path,
+nm_dbus_connection_call_get_managed_objects(GDBusConnection              *dbus_connection,
+                                            const char                   *bus_name,
+                                            const char                   *object_path,
                                             GDBusCallFlags                flags,
                                             int                           timeout_msec,
-                                            GCancellable *                cancellable,
+                                            GCancellable                 *cancellable,
                                             NMDBusConnectionCallDefaultCb callback,
                                             gpointer                      user_data)
 {
@@ -178,15 +178,15 @@ nm_dbus_connection_call_get_managed_objects(GDBusConnection *             dbus_c
 /*****************************************************************************/
 
 static void
-_call_finish_cb(GObject *     source,
+_call_finish_cb(GObject      *source,
                 GAsyncResult *result,
                 gpointer      user_data,
                 gboolean      return_void,
                 gboolean      strip_dbus_error)
 {
-    gs_unref_object GTask *task      = user_data;
+    gs_unref_object GTask     *task  = user_data;
     gs_unref_variant GVariant *ret   = NULL;
-    GError *                   error = NULL;
+    GError                    *error = NULL;
 
     nm_assert(G_IS_DBUS_CONNECTION(source));
     nm_assert(G_IS_TASK(user_data));
@@ -230,7 +230,7 @@ nm_dbus_connection_call_finish_void_cb(GObject *source, GAsyncResult *result, gp
  * is that on error this will first call g_dbus_error_strip_remote_error() on the error.
  */
 void
-nm_dbus_connection_call_finish_void_strip_dbus_error_cb(GObject *     source,
+nm_dbus_connection_call_finish_void_strip_dbus_error_cb(GObject      *source,
                                                         GAsyncResult *result,
                                                         gpointer      user_data)
 {
@@ -259,7 +259,7 @@ nm_dbus_connection_call_finish_variant_cb(GObject *source, GAsyncResult *result,
  * is that on error this will first call g_dbus_error_strip_remote_error() on the error.
  */
 void
-nm_dbus_connection_call_finish_variant_strip_dbus_error_cb(GObject *     source,
+nm_dbus_connection_call_finish_variant_strip_dbus_error_cb(GObject      *source,
                                                            GAsyncResult *result,
                                                            gpointer      user_data)
 {
@@ -269,12 +269,12 @@ nm_dbus_connection_call_finish_variant_strip_dbus_error_cb(GObject *     source,
 /*****************************************************************************/
 
 typedef struct {
-    char *              bus_name;
-    char *              object_path;
-    char *              interface_name;
-    char *              method_name;
-    GVariant *          parameters;
-    GDBusConnection *   connection;
+    char               *bus_name;
+    char               *object_path;
+    char               *interface_name;
+    char               *method_name;
+    GVariant           *parameters;
+    GDBusConnection    *connection;
     const GVariantType *reply_type;
     int                 timeout_msec;
 } CallAsyncInfo;
@@ -295,8 +295,8 @@ static void
 call_cb(GObject *source, GAsyncResult *result, gpointer user_data)
 {
     gs_unref_object GTask *task  = user_data;
-    GError *               error = NULL;
-    GVariant *             ret;
+    GError                *error = NULL;
+    GVariant              *ret;
 
     ret = g_dbus_connection_call_finish(G_DBUS_CONNECTION(source), result, &error);
     if (!ret) {
@@ -311,9 +311,9 @@ static void
 call_bus_get_cb(GObject *source, GAsyncResult *result, gpointer user_data)
 {
     gs_unref_object GTask *task = user_data;
-    GCancellable *         cancellable;
-    CallAsyncInfo *        info;
-    GError *               error = NULL;
+    GCancellable          *cancellable;
+    CallAsyncInfo         *info;
+    GError                *error = NULL;
 
     info             = g_task_get_task_data(task);
     info->connection = g_bus_get_finish(result, &error);
@@ -340,18 +340,18 @@ call_bus_get_cb(GObject *source, GAsyncResult *result, gpointer user_data)
 
 void
 nm_dbus_call(GBusType            bus_type,
-             const char *        bus_name,
-             const char *        object_path,
-             const char *        interface_name,
-             const char *        method_name,
-             GVariant *          parameters,
+             const char         *bus_name,
+             const char         *object_path,
+             const char         *interface_name,
+             const char         *method_name,
+             GVariant           *parameters,
              const GVariantType *reply_type,
-             GCancellable *      cancellable,
+             GCancellable       *cancellable,
              int                 timeout_msec,
              GAsyncReadyCallback callback,
              gpointer            user_data)
 {
-    GTask *        task;
+    GTask         *task;
     CallAsyncInfo *info;
 
     info  = g_new(CallAsyncInfo, 1);
@@ -385,7 +385,7 @@ gboolean
 _nm_dbus_error_is(GError *error, ...)
 {
     gs_free char *dbus_error = NULL;
-    const char *  name;
+    const char   *name;
     va_list       ap;
 
     dbus_error = g_dbus_error_get_remote_error(error);
@@ -408,7 +408,7 @@ _nm_dbus_error_is(GError *error, ...)
 
 typedef struct {
     GDBusConnection **p_dbus_connection;
-    GError **         p_error;
+    GError          **p_error;
 } BusGetData;
 
 static void
@@ -433,12 +433,12 @@ _bus_get_cb(GObject *source, GAsyncResult *result, gpointer user_data)
 GDBusConnection *
 nm_g_bus_get_blocking(GCancellable *cancellable, GError **error)
 {
-    gs_free_error GError *local_error                = NULL;
+    gs_free_error GError            *local_error     = NULL;
     gs_unref_object GDBusConnection *dbus_connection = NULL;
-    GMainContext *                   main_context    = g_main_context_get_thread_default();
+    GMainContext                    *main_context    = g_main_context_get_thread_default();
     BusGetData                       data            = {
-        .p_dbus_connection = &dbus_connection,
-        .p_error           = &local_error,
+                                         .p_dbus_connection = &dbus_connection,
+                                         .p_error           = &local_error,
     };
 
     g_bus_get(G_BUS_TYPE_SYSTEM, cancellable, _bus_get_cb, &data);
@@ -471,9 +471,9 @@ nm_dbus_connection_call_blocking_callback(GObject *source, GAsyncResult *res, gp
 GVariant *
 nm_dbus_connection_call_blocking(NMDBusConnectionCallBlockingData *data, GError **error)
 {
-    GMainContext *main_context        = g_main_context_get_thread_default();
-    gs_free_error GError *local_error = NULL;
-    gs_unref_variant GVariant *result = NULL;
+    GMainContext              *main_context = g_main_context_get_thread_default();
+    gs_free_error GError      *local_error  = NULL;
+    gs_unref_variant GVariant *result       = NULL;
 
     nm_assert(data);
 
diff --git a/src/libnm-glib-aux/nm-dbus-aux.h b/src/libnm-glib-aux/nm-dbus-aux.h
index 420a0c55..dfba61b0 100644
--- a/src/libnm-glib-aux/nm-dbus-aux.h
+++ b/src/libnm-glib-aux/nm-dbus-aux.h
@@ -30,10 +30,10 @@ typedef void (*NMDBusConnectionCallDefaultCb)(GVariant *result, GError *error, g
 /*****************************************************************************/
 
 static inline void
-nm_dbus_connection_call_start_service_by_name(GDBusConnection *   dbus_connection,
-                                              const char *        name,
+nm_dbus_connection_call_start_service_by_name(GDBusConnection    *dbus_connection,
+                                              const char         *name,
                                               int                 timeout_msec,
-                                              GCancellable *      cancellable,
+                                              GCancellable       *cancellable,
                                               GAsyncReadyCallback callback,
                                               gpointer            user_data)
 {
@@ -54,8 +54,8 @@ nm_dbus_connection_call_start_service_by_name(GDBusConnection *   dbus_connectio
 /*****************************************************************************/
 
 static inline guint
-nm_dbus_connection_signal_subscribe_name_owner_changed(GDBusConnection *   dbus_connection,
-                                                       const char *        service_name,
+nm_dbus_connection_signal_subscribe_name_owner_changed(GDBusConnection    *dbus_connection,
+                                                       const char         *service_name,
                                                        GDBusSignalCallback callback,
                                                        gpointer            user_data,
                                                        GDestroyNotify      user_data_free_func)
@@ -74,22 +74,22 @@ nm_dbus_connection_signal_subscribe_name_owner_changed(GDBusConnection *   dbus_
 }
 
 typedef void (*NMDBusConnectionCallGetNameOwnerCb)(const char *name_owner,
-                                                   GError *    error,
+                                                   GError     *error,
                                                    gpointer    user_data);
 
-void nm_dbus_connection_call_get_name_owner(GDBusConnection *                  dbus_connection,
-                                            const char *                       service_name,
+void nm_dbus_connection_call_get_name_owner(GDBusConnection                   *dbus_connection,
+                                            const char                        *service_name,
                                             int                                timeout_msec,
-                                            GCancellable *                     cancellable,
+                                            GCancellable                      *cancellable,
                                             NMDBusConnectionCallGetNameOwnerCb callback,
                                             gpointer                           user_data);
 
 static inline void
-nm_dbus_connection_call_request_name(GDBusConnection *   dbus_connection,
-                                     const char *        name,
+nm_dbus_connection_call_request_name(GDBusConnection    *dbus_connection,
+                                     const char         *name,
                                      guint32             flags,
                                      int                 timeout_msec,
-                                     GCancellable *      cancellable,
+                                     GCancellable       *cancellable,
                                      GAsyncReadyCallback callback,
                                      gpointer            user_data)
 {
@@ -108,10 +108,10 @@ nm_dbus_connection_call_request_name(GDBusConnection *   dbus_connection,
 }
 
 static inline guint
-nm_dbus_connection_signal_subscribe_properties_changed(GDBusConnection *   dbus_connection,
-                                                       const char *        bus_name,
-                                                       const char *        object_path,
-                                                       const char *        interface_name,
+nm_dbus_connection_signal_subscribe_properties_changed(GDBusConnection    *dbus_connection,
+                                                       const char         *bus_name,
+                                                       const char         *object_path,
+                                                       const char         *interface_name,
                                                        GDBusSignalCallback callback,
                                                        gpointer            user_data,
                                                        GDestroyNotify      user_data_free_func)
@@ -138,33 +138,33 @@ nm_dbus_connection_signal_subscribe_properties_changed(GDBusConnection *   dbus_
                                               user_data_free_func);
 }
 
-void nm_dbus_connection_call_get_all(GDBusConnection *             dbus_connection,
-                                     const char *                  bus_name,
-                                     const char *                  object_path,
-                                     const char *                  interface_name,
+void nm_dbus_connection_call_get_all(GDBusConnection              *dbus_connection,
+                                     const char                   *bus_name,
+                                     const char                   *object_path,
+                                     const char                   *interface_name,
                                      int                           timeout_msec,
-                                     GCancellable *                cancellable,
+                                     GCancellable                 *cancellable,
                                      NMDBusConnectionCallDefaultCb callback,
                                      gpointer                      user_data);
 
-void nm_dbus_connection_call_set(GDBusConnection *             dbus_connection,
-                                 const char *                  bus_name,
-                                 const char *                  object_path,
-                                 const char *                  interface_name,
-                                 const char *                  property_name,
-                                 GVariant *                    value,
+void nm_dbus_connection_call_set(GDBusConnection              *dbus_connection,
+                                 const char                   *bus_name,
+                                 const char                   *object_path,
+                                 const char                   *interface_name,
+                                 const char                   *property_name,
+                                 GVariant                     *value,
                                  int                           timeout_msec,
-                                 GCancellable *                cancellable,
+                                 GCancellable                 *cancellable,
                                  NMDBusConnectionCallDefaultCb callback,
                                  gpointer                      user_data);
 
 /*****************************************************************************/
 
 static inline guint
-nm_dbus_connection_signal_subscribe_object_manager(GDBusConnection *   dbus_connection,
-                                                   const char *        service_name,
-                                                   const char *        object_path,
-                                                   const char *        signal_name,
+nm_dbus_connection_signal_subscribe_object_manager(GDBusConnection    *dbus_connection,
+                                                   const char         *service_name,
+                                                   const char         *object_path,
+                                                   const char         *signal_name,
                                                    GDBusSignalCallback callback,
                                                    gpointer            user_data,
                                                    GDestroyNotify      user_data_free_func)
@@ -181,12 +181,12 @@ nm_dbus_connection_signal_subscribe_object_manager(GDBusConnection *   dbus_conn
                                               user_data_free_func);
 }
 
-void nm_dbus_connection_call_get_managed_objects(GDBusConnection *             dbus_connection,
-                                                 const char *                  bus_name,
-                                                 const char *                  object_path,
+void nm_dbus_connection_call_get_managed_objects(GDBusConnection              *dbus_connection,
+                                                 const char                   *bus_name,
+                                                 const char                   *object_path,
                                                  GDBusCallFlags                flags,
                                                  int                           timeout_msec,
-                                                 GCancellable *                cancellable,
+                                                 GCancellable                 *cancellable,
                                                  NMDBusConnectionCallDefaultCb callback,
                                                  gpointer                      user_data);
 
@@ -195,28 +195,28 @@ void nm_dbus_connection_call_get_managed_objects(GDBusConnection *             d
 void
 nm_dbus_connection_call_finish_void_cb(GObject *source, GAsyncResult *result, gpointer user_data);
 
-void nm_dbus_connection_call_finish_void_strip_dbus_error_cb(GObject *     source,
+void nm_dbus_connection_call_finish_void_strip_dbus_error_cb(GObject      *source,
                                                              GAsyncResult *result,
                                                              gpointer      user_data);
 
-void nm_dbus_connection_call_finish_variant_cb(GObject *     source,
+void nm_dbus_connection_call_finish_variant_cb(GObject      *source,
                                                GAsyncResult *result,
                                                gpointer      user_data);
 
-void nm_dbus_connection_call_finish_variant_strip_dbus_error_cb(GObject *     source,
+void nm_dbus_connection_call_finish_variant_strip_dbus_error_cb(GObject      *source,
                                                                 GAsyncResult *result,
                                                                 gpointer      user_data);
 
 /*****************************************************************************/
 
 void nm_dbus_call(GBusType            bus_type,
-                  const char *        bus_name,
-                  const char *        object_path,
-                  const char *        interface_name,
-                  const char *        method_name,
-                  GVariant *          parameters,
+                  const char         *bus_name,
+                  const char         *object_path,
+                  const char         *interface_name,
+                  const char         *method_name,
+                  GVariant           *parameters,
                   const GVariantType *reply_type,
-                  GCancellable *      cancellable,
+                  GCancellable       *cancellable,
                   int                 timeout_msec,
                   GAsyncReadyCallback callback,
                   gpointer            user_data);
@@ -244,7 +244,7 @@ GDBusConnection *nm_g_bus_get_blocking(GCancellable *cancellable, GError **error
 
 typedef struct {
     GVariant *result;
-    GError *  error;
+    GError   *error;
 } NMDBusConnectionCallBlockingData;
 
 void
diff --git a/src/libnm-glib-aux/nm-dedup-multi.c b/src/libnm-glib-aux/nm-dedup-multi.c
index f77bb3cd..7d451d0d 100644
--- a/src/libnm-glib-aux/nm-dedup-multi.c
+++ b/src/libnm-glib-aux/nm-dedup-multi.c
@@ -21,7 +21,7 @@ typedef struct {
      * always non-NULL.
      * */
     CList                      lst_entries_sentinel;
-    const NMDedupMultiObj *    obj;
+    const NMDedupMultiObj     *obj;
     const NMDedupMultiIdxType *idx_type;
     bool                       lookup_head;
 } LookupEntry;
@@ -65,9 +65,9 @@ nm_dedup_multi_idx_type_init(NMDedupMultiIdxType *idx_type, const NMDedupMultiId
 /*****************************************************************************/
 
 static NMDedupMultiEntry *
-_entry_lookup_obj(const NMDedupMultiIndex *  self,
+_entry_lookup_obj(const NMDedupMultiIndex   *self,
                   const NMDedupMultiIdxType *idx_type,
-                  const NMDedupMultiObj *    obj)
+                  const NMDedupMultiObj     *obj)
 {
     const LookupEntry stack_entry = {
         .obj         = obj,
@@ -80,15 +80,15 @@ _entry_lookup_obj(const NMDedupMultiIndex *  self,
 }
 
 static NMDedupMultiHeadEntry *
-_entry_lookup_head(const NMDedupMultiIndex *  self,
+_entry_lookup_head(const NMDedupMultiIndex   *self,
                    const NMDedupMultiIdxType *idx_type,
-                   const NMDedupMultiObj *    obj)
+                   const NMDedupMultiObj     *obj)
 {
     NMDedupMultiHeadEntry *head_entry;
     const LookupEntry      stack_entry = {
-        .obj         = obj,
-        .idx_type    = idx_type,
-        .lookup_head = TRUE,
+             .obj         = obj,
+             .idx_type    = idx_type,
+             .lookup_head = TRUE,
     };
 
     ASSERT_idx_type(idx_type);
@@ -108,13 +108,13 @@ _entry_lookup_head(const NMDedupMultiIndex *  self,
 }
 
 static void
-_entry_unpack(const NMDedupMultiEntry *   entry,
+_entry_unpack(const NMDedupMultiEntry    *entry,
               const NMDedupMultiIdxType **out_idx_type,
-              const NMDedupMultiObj **    out_obj,
-              gboolean *                  out_lookup_head)
+              const NMDedupMultiObj     **out_obj,
+              gboolean                   *out_lookup_head)
 {
     const NMDedupMultiHeadEntry *head_entry;
-    const LookupEntry *          lookup_entry;
+    const LookupEntry           *lookup_entry;
 
     nm_assert(entry);
 
@@ -162,7 +162,7 @@ static guint
 _dict_idx_entries_hash(const NMDedupMultiEntry *entry)
 {
     const NMDedupMultiIdxType *idx_type;
-    const NMDedupMultiObj *    obj;
+    const NMDedupMultiObj     *obj;
     gboolean                   lookup_head;
     NMHashState                h;
 
@@ -185,7 +185,7 @@ static gboolean
 _dict_idx_entries_equal(const NMDedupMultiEntry *entry_a, const NMDedupMultiEntry *entry_b)
 {
     const NMDedupMultiIdxType *idx_type_a, *idx_type_b;
-    const NMDedupMultiObj *    obj_a, *obj_b;
+    const NMDedupMultiObj     *obj_a, *obj_b;
     gboolean                   lookup_head_a, lookup_head_b;
 
     _entry_unpack(entry_a, &idx_type_a, &obj_a, &lookup_head_a);
@@ -203,15 +203,15 @@ _dict_idx_entries_equal(const NMDedupMultiEntry *entry_a, const NMDedupMultiEntr
 /*****************************************************************************/
 
 static gboolean
-_add(NMDedupMultiIndex *       self,
-     NMDedupMultiIdxType *     idx_type,
-     const NMDedupMultiObj *   obj,
-     NMDedupMultiEntry *       entry,
+_add(NMDedupMultiIndex        *self,
+     NMDedupMultiIdxType      *idx_type,
+     const NMDedupMultiObj    *obj,
+     NMDedupMultiEntry        *entry,
      NMDedupMultiIdxMode       mode,
-     const NMDedupMultiEntry * entry_order,
-     NMDedupMultiHeadEntry *   head_existing,
+     const NMDedupMultiEntry  *entry_order,
+     NMDedupMultiHeadEntry    *head_existing,
      const NMDedupMultiEntry **out_entry,
-     const NMDedupMultiObj **  out_obj_old)
+     const NMDedupMultiObj   **out_obj_old)
 {
     NMDedupMultiHeadEntry *head_entry;
     const NMDedupMultiObj *obj_new, *obj_old;
@@ -365,11 +365,11 @@ _add(NMDedupMultiIndex *       self,
 }
 
 gboolean
-nm_dedup_multi_index_add(NMDedupMultiIndex *                        self,
-                         NMDedupMultiIdxType *                      idx_type,
+nm_dedup_multi_index_add(NMDedupMultiIndex                         *self,
+                         NMDedupMultiIdxType                       *idx_type,
                          /*const NMDedupMultiObj * */ gconstpointer obj,
                          NMDedupMultiIdxMode                        mode,
-                         const NMDedupMultiEntry **                 out_entry,
+                         const NMDedupMultiEntry                  **out_entry,
                          /* const NMDedupMultiObj ** */ gpointer    out_obj_old)
 {
     NMDedupMultiEntry *entry;
@@ -423,14 +423,14 @@ nm_dedup_multi_index_add(NMDedupMultiIndex *                        self,
  * Return: %TRUE if anything changed, %FALSE if nothing changed.
  */
 gboolean
-nm_dedup_multi_index_add_full(NMDedupMultiIndex *                        self,
-                              NMDedupMultiIdxType *                      idx_type,
+nm_dedup_multi_index_add_full(NMDedupMultiIndex                         *self,
+                              NMDedupMultiIdxType                       *idx_type,
                               /*const NMDedupMultiObj * */ gconstpointer obj,
                               NMDedupMultiIdxMode                        mode,
-                              const NMDedupMultiEntry *                  entry_order,
-                              const NMDedupMultiEntry *                  entry_existing,
-                              const NMDedupMultiHeadEntry *              head_existing,
-                              const NMDedupMultiEntry **                 out_entry,
+                              const NMDedupMultiEntry                   *entry_order,
+                              const NMDedupMultiEntry                   *entry_existing,
+                              const NMDedupMultiHeadEntry               *head_existing,
+                              const NMDedupMultiEntry                  **out_entry,
                               /* const NMDedupMultiObj ** */ gpointer    out_obj_old)
 {
     NMDedupMultiEntry *entry;
@@ -472,7 +472,7 @@ _remove_entry(NMDedupMultiIndex *self, NMDedupMultiEntry *entry, gboolean *out_h
 {
     const NMDedupMultiObj *obj;
     NMDedupMultiHeadEntry *head_entry;
-    NMDedupMultiIdxType *  idx_type;
+    NMDedupMultiIdxType   *idx_type;
 
     nm_assert(self);
     nm_assert(entry);
@@ -519,14 +519,14 @@ _remove_entry(NMDedupMultiIndex *self, NMDedupMultiEntry *entry, gboolean *out_h
 }
 
 static guint
-_remove_head(NMDedupMultiIndex *    self,
+_remove_head(NMDedupMultiIndex     *self,
              NMDedupMultiHeadEntry *head_entry,
              gboolean               remove_all /* otherwise just dirty ones */,
              gboolean               mark_survivors_dirty)
 {
     guint    n;
     gboolean head_entry_removed;
-    CList *  iter_entry, *iter_entry_safe;
+    CList   *iter_entry, *iter_entry_safe;
 
     nm_assert(self);
     nm_assert(head_entry);
@@ -552,7 +552,7 @@ _remove_head(NMDedupMultiIndex *    self,
 }
 
 static guint
-_remove_idx_entry(NMDedupMultiIndex *  self,
+_remove_idx_entry(NMDedupMultiIndex   *self,
                   NMDedupMultiIdxType *idx_type,
                   gboolean             remove_all /* otherwise just dirty ones */,
                   gboolean             mark_survivors_dirty)
@@ -588,8 +588,8 @@ nm_dedup_multi_index_remove_entry(NMDedupMultiIndex *self, gconstpointer entry)
 }
 
 guint
-nm_dedup_multi_index_remove_obj(NMDedupMultiIndex *                          self,
-                                NMDedupMultiIdxType *                        idx_type,
+nm_dedup_multi_index_remove_obj(NMDedupMultiIndex                           *self,
+                                NMDedupMultiIdxType                         *idx_type,
                                 /*const NMDedupMultiObj * */ gconstpointer   obj,
                                 /*const NMDedupMultiObj ** */ gconstpointer *out_obj)
 {
@@ -611,8 +611,8 @@ nm_dedup_multi_index_remove_obj(NMDedupMultiIndex *                          sel
 }
 
 guint
-nm_dedup_multi_index_remove_head(NMDedupMultiIndex *                        self,
-                                 NMDedupMultiIdxType *                      idx_type,
+nm_dedup_multi_index_remove_head(NMDedupMultiIndex                         *self,
+                                 NMDedupMultiIdxType                       *idx_type,
                                  /*const NMDedupMultiObj * */ gconstpointer obj)
 {
     const NMDedupMultiHeadEntry *entry;
@@ -643,8 +643,8 @@ nm_dedup_multi_index_remove_idx(NMDedupMultiIndex *self, NMDedupMultiIdxType *id
  * Returns: the cache entry or %NULL if the entry wasn't found.
  */
 const NMDedupMultiEntry *
-nm_dedup_multi_index_lookup_obj(const NMDedupMultiIndex *                  self,
-                                const NMDedupMultiIdxType *                idx_type,
+nm_dedup_multi_index_lookup_obj(const NMDedupMultiIndex                   *self,
+                                const NMDedupMultiIdxType                 *idx_type,
                                 /*const NMDedupMultiObj * */ gconstpointer obj)
 {
     g_return_val_if_fail(self, FALSE);
@@ -669,8 +669,8 @@ nm_dedup_multi_index_lookup_obj(const NMDedupMultiIndex *                  self,
  * Returns: the cache entry or %NULL if the entry wasn't found.
  */
 const NMDedupMultiHeadEntry *
-nm_dedup_multi_index_lookup_head(const NMDedupMultiIndex *                  self,
-                                 const NMDedupMultiIdxType *                idx_type,
+nm_dedup_multi_index_lookup_head(const NMDedupMultiIndex                   *self,
+                                 const NMDedupMultiIdxType                 *idx_type,
                                  /*const NMDedupMultiObj * */ gconstpointer obj)
 {
     g_return_val_if_fail(self, FALSE);
@@ -682,12 +682,12 @@ nm_dedup_multi_index_lookup_head(const NMDedupMultiIndex *                  self
 /*****************************************************************************/
 
 void
-nm_dedup_multi_index_dirty_set_head(NMDedupMultiIndex *                        self,
-                                    const NMDedupMultiIdxType *                idx_type,
+nm_dedup_multi_index_dirty_set_head(NMDedupMultiIndex                         *self,
+                                    const NMDedupMultiIdxType                 *idx_type,
                                     /*const NMDedupMultiObj * */ gconstpointer obj)
 {
     NMDedupMultiHeadEntry *head_entry;
-    CList *                iter_entry;
+    CList                 *iter_entry;
 
     g_return_if_fail(self);
     g_return_if_fail(idx_type);
@@ -740,7 +740,7 @@ nm_dedup_multi_index_dirty_set_idx(NMDedupMultiIndex *self, const NMDedupMultiId
  * Returns: number of deleted entries.
  */
 guint
-nm_dedup_multi_index_dirty_remove_idx(NMDedupMultiIndex *  self,
+nm_dedup_multi_index_dirty_remove_idx(NMDedupMultiIndex   *self,
                                       NMDedupMultiIdxType *idx_type,
                                       gboolean             mark_survivors_dirty)
 {
@@ -770,7 +770,7 @@ _dict_idx_objs_equal(const NMDedupMultiObj *obj_a, const NMDedupMultiObj *obj_b)
 }
 
 void
-nm_dedup_multi_index_obj_release(NMDedupMultiIndex *                         self,
+nm_dedup_multi_index_obj_release(NMDedupMultiIndex                          *self,
                                  /* const NMDedupMultiObj * */ gconstpointer obj)
 {
     nm_assert(self);
@@ -784,7 +784,7 @@ nm_dedup_multi_index_obj_release(NMDedupMultiIndex *                         sel
 }
 
 gconstpointer
-nm_dedup_multi_index_obj_find(NMDedupMultiIndex *                         self,
+nm_dedup_multi_index_obj_find(NMDedupMultiIndex                          *self,
                               /* const NMDedupMultiObj * */ gconstpointer obj)
 {
     g_return_val_if_fail(self, NULL);
@@ -794,7 +794,7 @@ nm_dedup_multi_index_obj_find(NMDedupMultiIndex *                         self,
 }
 
 gconstpointer
-nm_dedup_multi_index_obj_intern(NMDedupMultiIndex *                         self,
+nm_dedup_multi_index_obj_intern(NMDedupMultiIndex                          *self,
                                 /* const NMDedupMultiObj * */ gconstpointer obj)
 {
     const NMDedupMultiObj *obj_new = obj;
@@ -885,13 +885,13 @@ nm_dedup_multi_obj_clone(const NMDedupMultiObj *obj)
 }
 
 gconstpointer *
-nm_dedup_multi_objs_to_array_head(const NMDedupMultiHeadEntry *  head_entry,
+nm_dedup_multi_objs_to_array_head(const NMDedupMultiHeadEntry   *head_entry,
                                   NMDedupMultiFcnSelectPredicate predicate,
                                   gpointer                       user_data,
-                                  guint *                        out_len)
+                                  guint                         *out_len)
 {
     gconstpointer *result;
-    CList *        iter;
+    CList         *iter;
     guint          i;
 
     if (!head_entry) {
@@ -923,12 +923,12 @@ nm_dedup_multi_objs_to_array_head(const NMDedupMultiHeadEntry *  head_entry,
 }
 
 GPtrArray *
-nm_dedup_multi_objs_to_ptr_array_head(const NMDedupMultiHeadEntry *  head_entry,
+nm_dedup_multi_objs_to_ptr_array_head(const NMDedupMultiHeadEntry   *head_entry,
                                       NMDedupMultiFcnSelectPredicate predicate,
                                       gpointer                       user_data)
 {
     GPtrArray *result;
-    CList *    iter;
+    CList     *iter;
 
     if (!head_entry)
         return NULL;
@@ -1028,8 +1028,8 @@ nm_dedup_multi_index_unref(NMDedupMultiIndex *self)
 {
     GHashTableIter             iter;
     const NMDedupMultiIdxType *idx_type;
-    NMDedupMultiEntry *        entry;
-    const NMDedupMultiObj *    obj;
+    NMDedupMultiEntry         *entry;
+    const NMDedupMultiObj     *obj;
 
     g_return_val_if_fail(self, NULL);
     g_return_val_if_fail(self->ref_count > 0, NULL);
diff --git a/src/libnm-glib-aux/nm-dedup-multi.h b/src/libnm-glib-aux/nm-dedup-multi.h
index fb1cb863..0fa47422 100644
--- a/src/libnm-glib-aux/nm-dedup-multi.h
+++ b/src/libnm-glib-aux/nm-dedup-multi.h
@@ -83,14 +83,14 @@ void                   nm_dedup_multi_obj_unref(const NMDedupMultiObj *obj);
 const NMDedupMultiObj *nm_dedup_multi_obj_clone(const NMDedupMultiObj *obj);
 gboolean               nm_dedup_multi_obj_needs_clone(const NMDedupMultiObj *obj);
 
-gconstpointer nm_dedup_multi_index_obj_intern(NMDedupMultiIndex *                         self,
+gconstpointer nm_dedup_multi_index_obj_intern(NMDedupMultiIndex                          *self,
                                               /* const NMDedupMultiObj * */ gconstpointer obj);
 
-void nm_dedup_multi_index_obj_release(NMDedupMultiIndex *                         self,
+void nm_dedup_multi_index_obj_release(NMDedupMultiIndex                          *self,
                                       /* const NMDedupMultiObj * */ gconstpointer obj);
 
 /* const NMDedupMultiObj * */ gconstpointer
-nm_dedup_multi_index_obj_find(NMDedupMultiIndex *                         self,
+nm_dedup_multi_index_obj_find(NMDedupMultiIndex                          *self,
                               /* const NMDedupMultiObj * */ gconstpointer obj);
 
 /*****************************************************************************/
@@ -132,18 +132,18 @@ struct _NMDedupMultiIdxType {
     guint len;
 };
 
-void nm_dedup_multi_idx_type_init(NMDedupMultiIdxType *           idx_type,
+void nm_dedup_multi_idx_type_init(NMDedupMultiIdxType            *idx_type,
                                   const NMDedupMultiIdxTypeClass *klass);
 
 struct _NMDedupMultiIdxTypeClass {
     NMObjBaseClass parent;
 
     void (*idx_obj_id_hash_update)(const NMDedupMultiIdxType *idx_type,
-                                   const NMDedupMultiObj *    obj,
-                                   struct _NMHashState *      h);
+                                   const NMDedupMultiObj     *obj,
+                                   struct _NMHashState       *h);
     gboolean (*idx_obj_id_equal)(const NMDedupMultiIdxType *idx_type,
-                                 const NMDedupMultiObj *    obj_a,
-                                 const NMDedupMultiObj *    obj_b);
+                                 const NMDedupMultiObj     *obj_a,
+                                 const NMDedupMultiObj     *obj_b);
 
     /* an NMDedupMultiIdxTypeClass which implements partitioning of the
      * tracked objects, must implement the idx_obj_partition*() functions.
@@ -153,17 +153,17 @@ struct _NMDedupMultiIdxTypeClass {
      * routes that don't have a valid ifindex. If the idx-type says that the
      * object is not partitionable, it is never added to the NMDedupMultiIndex. */
     gboolean (*idx_obj_partitionable)(const NMDedupMultiIdxType *idx_type,
-                                      const NMDedupMultiObj *    obj);
+                                      const NMDedupMultiObj     *obj);
     void (*idx_obj_partition_hash_update)(const NMDedupMultiIdxType *idx_type,
-                                          const NMDedupMultiObj *    obj,
-                                          struct _NMHashState *      h);
+                                          const NMDedupMultiObj     *obj,
+                                          struct _NMHashState       *h);
     gboolean (*idx_obj_partition_equal)(const NMDedupMultiIdxType *idx_type,
-                                        const NMDedupMultiObj *    obj_a,
-                                        const NMDedupMultiObj *    obj_b);
+                                        const NMDedupMultiObj     *obj_a,
+                                        const NMDedupMultiObj     *obj_b);
 };
 
 static inline gboolean
-nm_dedup_multi_idx_type_id_equal(const NMDedupMultiIdxType *                 idx_type,
+nm_dedup_multi_idx_type_id_equal(const NMDedupMultiIdxType                  *idx_type,
                                  /* const NMDedupMultiObj * */ gconstpointer obj_a,
                                  /* const NMDedupMultiObj * */ gconstpointer obj_b)
 {
@@ -172,7 +172,7 @@ nm_dedup_multi_idx_type_id_equal(const NMDedupMultiIdxType *                 idx
 }
 
 static inline gboolean
-nm_dedup_multi_idx_type_partition_equal(const NMDedupMultiIdxType *                 idx_type,
+nm_dedup_multi_idx_type_partition_equal(const NMDedupMultiIdxType                  *idx_type,
                                         /* const NMDedupMultiObj * */ gconstpointer obj_a,
                                         /* const NMDedupMultiObj * */ gconstpointer obj_b)
 {
@@ -255,54 +255,54 @@ _nm_auto_unref_dedup_multi_index(NMDedupMultiIndex **v)
 #define NM_DEDUP_MULTI_ENTRY_MISSING      ((const NMDedupMultiEntry *) GUINT_TO_POINTER(1))
 #define NM_DEDUP_MULTI_HEAD_ENTRY_MISSING ((const NMDedupMultiHeadEntry *) GUINT_TO_POINTER(1))
 
-gboolean nm_dedup_multi_index_add_full(NMDedupMultiIndex *                        self,
-                                       NMDedupMultiIdxType *                      idx_type,
+gboolean nm_dedup_multi_index_add_full(NMDedupMultiIndex                         *self,
+                                       NMDedupMultiIdxType                       *idx_type,
                                        /*const NMDedupMultiObj * */ gconstpointer obj,
                                        NMDedupMultiIdxMode                        mode,
-                                       const NMDedupMultiEntry *                  entry_order,
-                                       const NMDedupMultiEntry *                  entry_existing,
-                                       const NMDedupMultiHeadEntry *              head_existing,
-                                       const NMDedupMultiEntry **                 out_entry,
+                                       const NMDedupMultiEntry                   *entry_order,
+                                       const NMDedupMultiEntry                   *entry_existing,
+                                       const NMDedupMultiHeadEntry               *head_existing,
+                                       const NMDedupMultiEntry                  **out_entry,
                                        /* const NMDedupMultiObj ** */ gpointer    out_obj_old);
 
-gboolean nm_dedup_multi_index_add(NMDedupMultiIndex *                        self,
-                                  NMDedupMultiIdxType *                      idx_type,
+gboolean nm_dedup_multi_index_add(NMDedupMultiIndex                         *self,
+                                  NMDedupMultiIdxType                       *idx_type,
                                   /*const NMDedupMultiObj * */ gconstpointer obj,
                                   NMDedupMultiIdxMode                        mode,
-                                  const NMDedupMultiEntry **                 out_entry,
+                                  const NMDedupMultiEntry                  **out_entry,
                                   /* const NMDedupMultiObj ** */ gpointer    out_obj_old);
 
 const NMDedupMultiEntry *
-nm_dedup_multi_index_lookup_obj(const NMDedupMultiIndex *                  self,
-                                const NMDedupMultiIdxType *                idx_type,
+nm_dedup_multi_index_lookup_obj(const NMDedupMultiIndex                   *self,
+                                const NMDedupMultiIdxType                 *idx_type,
                                 /*const NMDedupMultiObj * */ gconstpointer obj);
 
 const NMDedupMultiHeadEntry *
-nm_dedup_multi_index_lookup_head(const NMDedupMultiIndex *                  self,
-                                 const NMDedupMultiIdxType *                idx_type,
+nm_dedup_multi_index_lookup_head(const NMDedupMultiIndex                   *self,
+                                 const NMDedupMultiIdxType                 *idx_type,
                                  /*const NMDedupMultiObj * */ gconstpointer obj);
 
 guint nm_dedup_multi_index_remove_entry(NMDedupMultiIndex *self, gconstpointer entry);
 
-guint nm_dedup_multi_index_remove_obj(NMDedupMultiIndex *                          self,
-                                      NMDedupMultiIdxType *                        idx_type,
+guint nm_dedup_multi_index_remove_obj(NMDedupMultiIndex                           *self,
+                                      NMDedupMultiIdxType                         *idx_type,
                                       /*const NMDedupMultiObj * */ gconstpointer   obj,
                                       /*const NMDedupMultiObj ** */ gconstpointer *out_obj);
 
-guint nm_dedup_multi_index_remove_head(NMDedupMultiIndex *                        self,
-                                       NMDedupMultiIdxType *                      idx_type,
+guint nm_dedup_multi_index_remove_head(NMDedupMultiIndex                         *self,
+                                       NMDedupMultiIdxType                       *idx_type,
                                        /*const NMDedupMultiObj * */ gconstpointer obj);
 
 guint nm_dedup_multi_index_remove_idx(NMDedupMultiIndex *self, NMDedupMultiIdxType *idx_type);
 
-void nm_dedup_multi_index_dirty_set_head(NMDedupMultiIndex *                        self,
-                                         const NMDedupMultiIdxType *                idx_type,
+void nm_dedup_multi_index_dirty_set_head(NMDedupMultiIndex                         *self,
+                                         const NMDedupMultiIdxType                 *idx_type,
                                          /*const NMDedupMultiObj * */ gconstpointer obj);
 
-void nm_dedup_multi_index_dirty_set_idx(NMDedupMultiIndex *        self,
+void nm_dedup_multi_index_dirty_set_idx(NMDedupMultiIndex         *self,
                                         const NMDedupMultiIdxType *idx_type);
 
-guint nm_dedup_multi_index_dirty_remove_idx(NMDedupMultiIndex *  self,
+guint nm_dedup_multi_index_dirty_remove_idx(NMDedupMultiIndex   *self,
                                             NMDedupMultiIdxType *idx_type,
                                             gboolean             mark_survivors_dirty);
 
@@ -395,11 +395,11 @@ nm_dedup_multi_iter_prev(NMDedupMultiIter *iter)
 typedef gboolean (*NMDedupMultiFcnSelectPredicate)(/* const NMDedupMultiObj * */ gconstpointer obj,
                                                    gpointer user_data);
 
-gconstpointer *nm_dedup_multi_objs_to_array_head(const NMDedupMultiHeadEntry *  head_entry,
+gconstpointer *nm_dedup_multi_objs_to_array_head(const NMDedupMultiHeadEntry   *head_entry,
                                                  NMDedupMultiFcnSelectPredicate predicate,
                                                  gpointer                       user_data,
-                                                 guint *                        out_len);
-GPtrArray *    nm_dedup_multi_objs_to_ptr_array_head(const NMDedupMultiHeadEntry *  head_entry,
+                                                 guint                         *out_len);
+GPtrArray     *nm_dedup_multi_objs_to_ptr_array_head(const NMDedupMultiHeadEntry   *head_entry,
                                                      NMDedupMultiFcnSelectPredicate predicate,
                                                      gpointer                       user_data);
 
diff --git a/src/libnm-glib-aux/nm-enum-utils.c b/src/libnm-glib-aux/nm-enum-utils.c
index f97cdfcb..3b9b7e8d 100644
--- a/src/libnm-glib-aux/nm-enum-utils.c
+++ b/src/libnm-glib-aux/nm-enum-utils.c
@@ -17,7 +17,7 @@ _ASSERT_enum_values_info(GType type, const NMUtilsEnumValueInfo *value_infos)
 {
 #if NM_MORE_ASSERTS > 5
     nm_auto_unref_gtypeclass GTypeClass *klass = NULL;
-    gs_unref_hashtable GHashTable *ht          = NULL;
+    gs_unref_hashtable GHashTable       *ht    = NULL;
 
     klass = g_type_class_ref(type);
 
@@ -109,7 +109,7 @@ _enum_is_valid_flags_nick(const char *str)
 char *
 _nm_utils_enum_to_str_full(GType                       type,
                            int                         value,
-                           const char *                flags_separator,
+                           const char                 *flags_separator,
                            const NMUtilsEnumValueInfo *value_infos)
 {
     nm_auto_unref_gtypeclass GTypeClass *klass = NULL;
@@ -199,18 +199,18 @@ _find_value_info(const NMUtilsEnumValueInfo *value_infos, const char *needle)
 
 gboolean
 _nm_utils_enum_from_str_full(GType                       type,
-                             const char *                str,
-                             int *                       out_value,
-                             char **                     err_token,
+                             const char                 *str,
+                             int                        *out_value,
+                             char                      **err_token,
                              const NMUtilsEnumValueInfo *value_infos)
 {
     nm_auto_unref_gtypeclass GTypeClass *klass     = NULL;
     gboolean                             ret       = FALSE;
     int                                  value     = 0;
-    gs_free char *                       str_clone = NULL;
-    char *                               s;
+    gs_free char                        *str_clone = NULL;
+    char                                *s;
     gint64                               v64;
-    const NMUtilsEnumValueInfo *         nick;
+    const NMUtilsEnumValueInfo          *nick;
 
     g_return_val_if_fail(str, FALSE);
 
@@ -317,7 +317,7 @@ const char **
 _nm_utils_enum_get_values(GType type, int from, int to)
 {
     GTypeClass *klass;
-    GPtrArray * array;
+    GPtrArray  *array;
     int         i;
     char        sbuf[64];
 
diff --git a/src/libnm-glib-aux/nm-enum-utils.h b/src/libnm-glib-aux/nm-enum-utils.h
index 89be54e7..6478cadf 100644
--- a/src/libnm-glib-aux/nm-enum-utils.h
+++ b/src/libnm-glib-aux/nm-enum-utils.h
@@ -15,14 +15,14 @@ typedef struct _NMUtilsEnumValueInfo {
     int         value;
 } NMUtilsEnumValueInfo;
 
-char *   _nm_utils_enum_to_str_full(GType                       type,
+char    *_nm_utils_enum_to_str_full(GType                       type,
                                     int                         value,
-                                    const char *                sep,
+                                    const char                 *sep,
                                     const NMUtilsEnumValueInfo *value_infos);
 gboolean _nm_utils_enum_from_str_full(GType                       type,
-                                      const char *                str,
-                                      int *                       out_value,
-                                      char **                     err_token,
+                                      const char                 *str,
+                                      int                        *out_value,
+                                      char                      **err_token,
                                       const NMUtilsEnumValueInfo *value_infos);
 
 const char **_nm_utils_enum_get_values(GType type, int from, int to);
diff --git a/src/libnm-glib-aux/nm-errno.c b/src/libnm-glib-aux/nm-errno.c
index 0426a21d..14d93d64 100644
--- a/src/libnm-glib-aux/nm-errno.c
+++ b/src/libnm-glib-aux/nm-errno.c
@@ -156,7 +156,7 @@ const char *
 nm_strerror_native(int errsv)
 {
     static _nm_thread_local char *buf_static = NULL;
-    char *                        buf;
+    char                         *buf;
 
     buf = buf_static;
     if (G_UNLIKELY(!buf)) {
diff --git a/src/libnm-glib-aux/nm-glib.h b/src/libnm-glib-aux/nm-glib.h
index 49470d92..4ab9cbbd 100644
--- a/src/libnm-glib-aux/nm-glib.h
+++ b/src/libnm-glib-aux/nm-glib.h
@@ -195,7 +195,7 @@ __nmtst_g_test_skip(const char *msg)
 
 /* g_test_add_data_func_full() is only available since glib 2.34. Add a compatibility wrapper. */
 static inline void
-__g_test_add_data_func_full(const char *   testpath,
+__g_test_add_data_func_full(const char    *testpath,
                             gpointer       test_data,
                             GTestDataFunc  test_func,
                             GDestroyNotify data_free_func)
@@ -311,7 +311,7 @@ _nm_g_ptr_array_insert(GPtrArray *array, int index_, gpointer data)
 static inline gboolean
 _g_key_file_save_to_file(GKeyFile *key_file, const char *filename, GError **error)
 {
-    char *   contents;
+    char    *contents;
     gboolean success;
     gsize    length;
 
@@ -484,7 +484,7 @@ _nm_g_variant_new_take_string(char *string)
 #if !GLIB_CHECK_VERSION(2, 38, 0)
 _nm_printf(1, 2) static inline GVariant *_nm_g_variant_new_printf(const char *format_string, ...)
 {
-    char *  string;
+    char   *string;
     va_list ap;
 
     g_return_val_if_fail(format_string, NULL);
@@ -650,10 +650,10 @@ _g_atomic_pointer_compare_and_exchange(void **atomic, void *oldval, void *newval
 
 #if !GLIB_CHECK_VERSION(2, 58, 0)
 static inline gboolean
-g_hash_table_steal_extended(GHashTable *  hash_table,
+g_hash_table_steal_extended(GHashTable   *hash_table,
                             gconstpointer lookup_key,
-                            gpointer *    stolen_key,
-                            gpointer *    stolen_value)
+                            gpointer     *stolen_key,
+                            gpointer     *stolen_value)
 {
     g_assert(stolen_key);
     g_assert(stolen_value);
diff --git a/src/libnm-glib-aux/nm-hash-utils.c b/src/libnm-glib-aux/nm-hash-utils.c
index a6949ebd..68b33998 100644
--- a/src/libnm-glib-aux/nm-hash-utils.c
+++ b/src/libnm-glib-aux/nm-hash-utils.c
@@ -139,12 +139,6 @@ nm_hash_str(const char *str)
 }
 
 guint
-nm_str_hash(gconstpointer str)
-{
-    return nm_hash_str(str);
-}
-
-guint
 nm_hash_ptr(gconstpointer ptr)
 {
     NMHashState h;
@@ -156,12 +150,6 @@ nm_hash_ptr(gconstpointer ptr)
     return nm_hash_complete(&h);
 }
 
-guint
-nm_direct_hash(gconstpointer ptr)
-{
-    return nm_hash_ptr(ptr);
-}
-
 /*****************************************************************************/
 
 guint
@@ -257,7 +245,7 @@ nm_ppdirect_equal(gconstpointer a, gconstpointer b)
 guint
 nm_g_bytes_hash(gconstpointer p)
 {
-    GBytes *      ptr = (GBytes *) p;
+    GBytes       *ptr = (GBytes *) p;
     gconstpointer arr;
     gsize         len;
 
@@ -284,3 +272,31 @@ nm_pg_bytes_equal(gconstpointer a, gconstpointer b)
 
     return g_bytes_equal(*ptr_a, *ptr_b);
 }
+
+/*****************************************************************************/
+
+guint64
+nm_hash_obfuscate_ptr(guint static_seed, gconstpointer val)
+{
+    NMHashState h;
+
+    if (NM_MORE_ASSERTS > 0) {
+        static int obfuscate_static = -1;
+        int        obfuscate;
+
+again:
+        obfuscate = g_atomic_int_get(&obfuscate_static);
+        if (G_UNLIKELY(obfuscate == -1)) {
+            obfuscate = _nm_utils_ascii_str_to_int64(g_getenv("NM_OBFUSCATE_PTR"), 10, 0, 1, 1);
+            if (!g_atomic_int_compare_and_exchange(&obfuscate_static, -1, obfuscate))
+                goto again;
+        }
+
+        if (!obfuscate)
+            return (uintptr_t) val;
+    }
+
+    nm_hash_init(&h, static_seed);
+    nm_hash_update_val(&h, val);
+    return nm_hash_complete_u64(&h);
+}
diff --git a/src/libnm-glib-aux/nm-hash-utils.h b/src/libnm-glib-aux/nm-hash-utils.h
index d7de2de4..b7ee4dd1 100644
--- a/src/libnm-glib-aux/nm-hash-utils.h
+++ b/src/libnm-glib-aux/nm-hash-utils.h
@@ -201,10 +201,10 @@ nm_hash_update_str(NMHashState *state, const char *str)
 #endif
 
 guint nm_hash_ptr(gconstpointer ptr);
-guint nm_direct_hash(gconstpointer str);
+#define nm_direct_hash nm_hash_ptr
 
 guint nm_hash_str(const char *str);
-guint nm_str_hash(gconstpointer str);
+#define nm_str_hash ((guint(*)(gconstpointer str)) nm_hash_str)
 
 #define nm_hash_val(static_seed, val)     \
     ({                                    \
@@ -284,15 +284,7 @@ gboolean nm_pg_bytes_equal(gconstpointer a, gconstpointer b);
  *
  * Note that there is a chance that two different pointer values hash to the same obfuscated
  * value. So beware of that when reviewing logs. However, such a collision is very unlikely. */
-static inline guint64
-nm_hash_obfuscate_ptr(guint static_seed, gconstpointer val)
-{
-    NMHashState h;
-
-    nm_hash_init(&h, static_seed);
-    nm_hash_update_val(&h, val);
-    return nm_hash_complete_u64(&h);
-}
+guint64 nm_hash_obfuscate_ptr(guint static_seed, gconstpointer val);
 
 /* if you want to log obfuscated pointer for a certain context (like, NMPRuleManager
  * logging user-tags), then you are advised to use nm_hash_obfuscate_ptr() with your
diff --git a/src/libnm-glib-aux/nm-io-utils.c b/src/libnm-glib-aux/nm-io-utils.c
index 85a81f69..503f044f 100644
--- a/src/libnm-glib-aux/nm-io-utils.c
+++ b/src/libnm-glib-aux/nm-io-utils.c
@@ -20,9 +20,9 @@
 
 /*****************************************************************************/
 
-_nm_printf(4, 5) static int _get_contents_error(GError **   error,
+_nm_printf(4, 5) static int _get_contents_error(GError    **error,
                                                 int         errsv,
-                                                int *       out_errsv,
+                                                int        *out_errsv,
                                                 const char *format,
                                                 ...)
 {
@@ -94,14 +94,14 @@ nm_utils_fd_get_contents(int                         fd,
                          gboolean                    close_fd,
                          gsize                       max_length,
                          NMUtilsFileGetContentsFlags flags,
-                         char **                     contents,
-                         gsize *                     length,
-                         int *                       out_errsv,
-                         GError **                   error)
+                         char                      **contents,
+                         gsize                      *length,
+                         int                        *out_errsv,
+                         GError                    **error)
 {
     nm_auto_close int fd_keeper = close_fd ? fd : -1;
     struct stat       stat_buf;
-    gs_free char *    str          = NULL;
+    gs_free char     *str          = NULL;
     const bool        do_bzero_mem = NM_FLAGS_HAS(flags, NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET);
     int               errsv;
 
@@ -288,13 +288,13 @@ nm_utils_fd_get_contents(int                         fd,
  */
 gboolean
 nm_utils_file_get_contents(int                         dirfd,
-                           const char *                filename,
+                           const char                 *filename,
                            gsize                       max_length,
                            NMUtilsFileGetContentsFlags flags,
-                           char **                     contents,
-                           gsize *                     length,
-                           int *                       out_errsv,
-                           GError **                   error)
+                           char                      **contents,
+                           gsize                      *length,
+                           int                        *out_errsv,
+                           GError                    **error)
 {
     int fd;
 
@@ -338,13 +338,13 @@ nm_utils_file_get_contents(int                         dirfd,
  * and last modification times.
  */
 gboolean
-nm_utils_file_set_contents(const char *           filename,
-                           const char *           contents,
+nm_utils_file_set_contents(const char            *filename,
+                           const char            *contents,
                            gssize                 length,
                            mode_t                 mode,
                            const struct timespec *times,
-                           int *                  out_errsv,
-                           GError **              error)
+                           int                   *out_errsv,
+                           GError               **error)
 {
     gs_free char *tmp_name = NULL;
     struct stat   statbuf;
@@ -498,7 +498,7 @@ nm_utils_fd_read(int fd, NMStrBuf *out_string)
 
 typedef struct {
     GSubprocess *subprocess;
-    GSource *    timeout_source;
+    GSource     *timeout_source;
 } SubprocessTerminateData;
 
 static void
@@ -527,7 +527,7 @@ void
 nm_g_subprocess_terminate_in_background(GSubprocess *subprocess, int timeout_msec_before_kill)
 {
     SubprocessTerminateData *term_data;
-    GMainContext *           main_context;
+    GMainContext            *main_context;
 
     nm_assert(timeout_msec_before_kill > 0);
 
@@ -573,9 +573,9 @@ char **
 nm_utils_find_mkstemp_files(const char *dirname, const char *filename)
 {
     static const char letters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-    DIR *             dir;
-    struct dirent *   entry;
-    GPtrArray *       arr = NULL;
+    DIR              *dir;
+    struct dirent    *entry;
+    GPtrArray        *arr = NULL;
     gsize             l;
 
     /* We write files with g_file_set_contents() and nm_utils_file_set_contents().
@@ -685,12 +685,12 @@ nm_sd_notify(const char *state)
     struct sockaddr_un sockaddr;
     struct iovec       iovec;
     struct msghdr      msghdr = {
-        .msg_iov    = &iovec,
-        .msg_iovlen = 1,
-        .msg_name   = &sockaddr,
+             .msg_iov    = &iovec,
+             .msg_iovlen = 1,
+             .msg_name   = &sockaddr,
     };
     nm_auto_close int fd = -1;
-    const char *      e;
+    const char       *e;
     int               r;
 
     if (!state)
diff --git a/src/libnm-glib-aux/nm-io-utils.h b/src/libnm-glib-aux/nm-io-utils.h
index 479d0e51..a8503986 100644
--- a/src/libnm-glib-aux/nm-io-utils.h
+++ b/src/libnm-glib-aux/nm-io-utils.h
@@ -26,27 +26,27 @@ gboolean nm_utils_fd_get_contents(int                         fd,
                                   gboolean                    close_fd,
                                   gsize                       max_length,
                                   NMUtilsFileGetContentsFlags flags,
-                                  char **                     contents,
-                                  gsize *                     length,
-                                  int *                       out_errsv,
-                                  GError **                   error);
+                                  char                      **contents,
+                                  gsize                      *length,
+                                  int                        *out_errsv,
+                                  GError                    **error);
 
 gboolean nm_utils_file_get_contents(int                         dirfd,
-                                    const char *                filename,
+                                    const char                 *filename,
                                     gsize                       max_length,
                                     NMUtilsFileGetContentsFlags flags,
-                                    char **                     contents,
-                                    gsize *                     length,
-                                    int *                       out_errsv,
-                                    GError **                   error);
+                                    char                      **contents,
+                                    gsize                      *length,
+                                    int                        *out_errsv,
+                                    GError                    **error);
 
-gboolean nm_utils_file_set_contents(const char *           filename,
-                                    const char *           contents,
+gboolean nm_utils_file_set_contents(const char            *filename,
+                                    const char            *contents,
                                     gssize                 length,
                                     mode_t                 mode,
                                     const struct timespec *times,
-                                    int *                  out_errsv,
-                                    GError **              error);
+                                    int                   *out_errsv,
+                                    GError               **error);
 
 struct _NMStrBuf;
 
diff --git a/src/libnm-glib-aux/nm-json-aux.c b/src/libnm-glib-aux/nm-json-aux.c
index 0a3b25f8..6216d93c 100644
--- a/src/libnm-glib-aux/nm-json-aux.c
+++ b/src/libnm-glib-aux/nm-json-aux.c
@@ -155,15 +155,15 @@ nm_json_gstr_append_obj_name(GString *gstr, const char *key, char start_containe
 
 typedef struct {
     NMJsonVt vt;
-    void *   dl_handle;
+    void    *dl_handle;
 } NMJsonVtInternal;
 
 static NMJsonVtInternal *
 _nm_json_vt_internal_load(void)
 {
     NMJsonVtInternal *v;
-    const char *      soname;
-    void *            handle;
+    const char       *soname;
+    void             *handle;
 
     v = g_new0(NMJsonVtInternal, 1);
 
diff --git a/src/libnm-glib-aux/nm-json-aux.h b/src/libnm-glib-aux/nm-json-aux.h
index 088d67a9..275ed770 100644
--- a/src/libnm-glib-aux/nm-json-aux.h
+++ b/src/libnm-glib-aux/nm-json-aux.h
@@ -399,7 +399,7 @@ nm_value_type_to_json(NMValueType value_type, GString *gstr, gconstpointer p_fie
 }
 
 static inline gboolean
-nm_value_type_from_json(const NMJsonVt * vt,
+nm_value_type_from_json(const NMJsonVt  *vt,
                         NMValueType      value_type,
                         const nm_json_t *elem,
                         gpointer         out_val)
diff --git a/src/libnm-glib-aux/nm-keyfile-aux.c b/src/libnm-glib-aux/nm-keyfile-aux.c
index 9cda1cf7..1cae28b4 100644
--- a/src/libnm-glib-aux/nm-keyfile-aux.c
+++ b/src/libnm-glib-aux/nm-keyfile-aux.c
@@ -19,8 +19,8 @@ struct _NMKeyFileDB {
     NMKeyFileDBLogFcn      log_fcn;
     NMKeyFileDBGotDirtyFcn got_dirty_fcn;
     gpointer               user_data;
-    const char *           group_name;
-    GKeyFile *             kf;
+    const char            *group_name;
+    GKeyFile              *kf;
     guint                  ref_count;
 
     bool is_started : 1;
@@ -77,8 +77,8 @@ _key_file_new(void)
 /*****************************************************************************/
 
 NMKeyFileDB *
-nm_key_file_db_new(const char *           filename,
-                   const char *           group_name,
+nm_key_file_db_new(const char            *filename,
+                   const char            *group_name,
                    NMKeyFileDBLogFcn      log_fcn,
                    NMKeyFileDBGotDirtyFcn got_dirty_fcn,
                    gpointer               user_data)
@@ -175,8 +175,8 @@ nm_key_file_db_destroy(NMKeyFileDB *self)
 void
 nm_key_file_db_start(NMKeyFileDB *self)
 {
-    gs_free char *contents = NULL;
-    gsize         contents_len;
+    gs_free char         *contents = NULL;
+    gsize                 contents_len;
     gs_free_error GError *error = NULL;
 
     g_return_if_fail(_IS_KEY_FILE_DB(self, FALSE, FALSE));
@@ -309,7 +309,7 @@ nm_key_file_db_set_value(NMKeyFileDB *self, const char *key, const char *value)
 
     if (!self->dirty && !got_dirty) {
         gs_free_error GError *error     = NULL;
-        gs_free char *        new_value = NULL;
+        gs_free char         *new_value = NULL;
 
         new_value = g_key_file_get_value(self->kf, self->group_name, key, &error);
         if (error || !new_value || !nm_streq0(old_value, new_value))
@@ -321,8 +321,8 @@ nm_key_file_db_set_value(NMKeyFileDB *self, const char *key, const char *value)
 }
 
 void
-nm_key_file_db_set_string_list(NMKeyFileDB *      self,
-                               const char *       key,
+nm_key_file_db_set_string_list(NMKeyFileDB       *self,
+                               const char        *key,
                                const char *const *value,
                                gssize             len)
 {
@@ -352,7 +352,7 @@ nm_key_file_db_set_string_list(NMKeyFileDB *      self,
 
     if (!self->dirty && !got_dirty) {
         gs_free_error GError *error     = NULL;
-        gs_free char *        new_value = NULL;
+        gs_free char         *new_value = NULL;
 
         new_value = g_key_file_get_value(self->kf, self->group_name, key, &error);
         if (error || !new_value || !nm_streq0(old_value, new_value))
@@ -388,8 +388,8 @@ nm_key_file_db_to_file(NMKeyFileDB *self, gboolean force)
 void
 nm_key_file_db_prune_tmp_files(NMKeyFileDB *self)
 {
-    gs_free char *     n_file   = NULL;
-    gs_free char *     n_dir    = NULL;
+    gs_free char      *n_file   = NULL;
+    gs_free char      *n_dir    = NULL;
     gs_strfreev char **tmpfiles = NULL;
     gsize              i;
 
@@ -401,7 +401,7 @@ nm_key_file_db_prune_tmp_files(NMKeyFileDB *self)
         return;
 
     for (i = 0; tmpfiles[i]; i++) {
-        const char *  tmpfile   = tmpfiles[i];
+        const char   *tmpfile   = tmpfiles[i];
         gs_free char *full_file = NULL;
         int           r;
 
@@ -430,10 +430,10 @@ nm_key_file_db_prune(NMKeyFileDB *self,
                      gboolean (*predicate)(const char *key, gpointer user_data),
                      gpointer user_data)
 {
-    gs_strfreev char **   keys                 = NULL;
+    gs_strfreev char              **keys       = NULL;
     nm_auto_unref_keyfile GKeyFile *kf_to_free = NULL;
-    GKeyFile *                      kf_src     = NULL;
-    GKeyFile *                      kf_dst     = NULL;
+    GKeyFile                       *kf_src     = NULL;
+    GKeyFile                       *kf_dst     = NULL;
     guint                           k;
 
     g_return_if_fail(_IS_KEY_FILE_DB(self, TRUE, FALSE));
diff --git a/src/libnm-glib-aux/nm-keyfile-aux.h b/src/libnm-glib-aux/nm-keyfile-aux.h
index e756c57a..7ada4029 100644
--- a/src/libnm-glib-aux/nm-keyfile-aux.h
+++ b/src/libnm-glib-aux/nm-keyfile-aux.h
@@ -13,13 +13,13 @@ typedef struct _NMKeyFileDB NMKeyFileDB;
 typedef void (*NMKeyFileDBLogFcn)(NMKeyFileDB *self,
                                   int          syslog_level,
                                   gpointer     user_data,
-                                  const char * fmt,
+                                  const char  *fmt,
                                   ...) G_GNUC_PRINTF(4, 5);
 
 typedef void (*NMKeyFileDBGotDirtyFcn)(NMKeyFileDB *self, gpointer user_data);
 
-NMKeyFileDB *nm_key_file_db_new(const char *           filename,
-                                const char *           group,
+NMKeyFileDB *nm_key_file_db_new(const char            *filename,
+                                const char            *group,
                                 NMKeyFileDBLogFcn      log_fcn,
                                 NMKeyFileDBGotDirtyFcn got_dirty_fcn,
                                 gpointer               user_data);
@@ -43,8 +43,8 @@ void nm_key_file_db_remove_key(NMKeyFileDB *self, const char *key);
 
 void nm_key_file_db_set_value(NMKeyFileDB *self, const char *key, const char *value);
 
-void nm_key_file_db_set_string_list(NMKeyFileDB *      self,
-                                    const char *       key,
+void nm_key_file_db_set_string_list(NMKeyFileDB       *self,
+                                    const char        *key,
                                     const char *const *value,
                                     gssize             len);
 
diff --git a/src/libnm-glib-aux/nm-logging-base.c b/src/libnm-glib-aux/nm-logging-base.c
index cc19ef15..5195cbb7 100644
--- a/src/libnm-glib-aux/nm-logging-base.c
+++ b/src/libnm-glib-aux/nm-logging-base.c
@@ -104,8 +104,8 @@ _nm_log_simple_printf(NMLogLevel level, const char *fmt, ...)
 {
     gs_free char *msg_heap = NULL;
     char          msg_stack[700];
-    const char *  msg;
-    const char *  level_str;
+    const char   *msg;
+    const char   *level_str;
     gint64        ts;
 
     ts = nm_utils_clock_gettime_nsec(CLOCK_BOOTTIME);
diff --git a/src/libnm-glib-aux/nm-macros-internal.h b/src/libnm-glib-aux/nm-macros-internal.h
index e7ee7f38..14c16020 100644
--- a/src/libnm-glib-aux/nm-macros-internal.h
+++ b/src/libnm-glib-aux/nm-macros-internal.h
@@ -137,7 +137,7 @@ static inline void
 _nm_auto_freev(gpointer ptr)
 {
     gpointer **p = ptr;
-    gpointer * _ptr;
+    gpointer  *_ptr;
 
     if (*p) {
         for (_ptr = *p; *_ptr; _ptr++)
@@ -552,12 +552,12 @@ nm_str_realloc(char *str)
 
 #define NM_GOBJECT_PROPERTIES_DEFINE_NOTIFY(suffix, obj_type)                                 \
     static inline void _nm_gobject_notify_together_impl##suffix(                              \
-        obj_type *                    obj,                                                    \
+        obj_type                     *obj,                                                    \
         guint                         n,                                                      \
         const _PropertyEnums##suffix *props)                                                  \
     {                                                                                         \
         GObject *const gobj        = (GObject *) obj;                                         \
-        GParamSpec *   pspec_first = NULL;                                                    \
+        GParamSpec    *pspec_first = NULL;                                                    \
         gboolean       frozen      = FALSE;                                                   \
                                                                                               \
         nm_assert(G_IS_OBJECT(obj));                                                          \
@@ -565,7 +565,7 @@ nm_str_realloc(char *str)
                                                                                               \
         while (n-- > 0) {                                                                     \
             const _PropertyEnums##suffix prop = *props++;                                     \
-            GParamSpec *                 pspec;                                               \
+            GParamSpec                  *pspec;                                               \
                                                                                               \
             if (prop == PROP_0##suffix)                                                       \
                 continue;                                                                     \
@@ -1040,7 +1040,7 @@ nm_g_variant_equal(GVariant *a, GVariant *b)
 
 #define nm_str_skip_leading_spaces(str)                          \
     ({                                                           \
-        typeof(*(str)) *             _str_sls        = (str);    \
+        typeof(*(str))              *_str_sls        = (str);    \
         _nm_unused const char *const _str_type_check = _str_sls; \
                                                                  \
         if (_str_sls) {                                          \
@@ -1057,6 +1057,27 @@ nm_strstrip(char *str)
     return str ? g_strstrip(str) : NULL;
 }
 
+static inline char *
+nm_strstrip_dup(const char *str)
+{
+    gsize l;
+    char *s;
+
+    if (!str)
+        return NULL;
+
+    str = nm_str_skip_leading_spaces(str);
+    l   = strlen(str);
+
+    while (l > 0 && g_ascii_isspace(str[l - 1]))
+        l--;
+
+    s = g_new(char, l + 1);
+    memcpy(s, str, l);
+    s[l] = '\0';
+    return s;
+}
+
 static inline const char *
 nm_strstrip_avoid_copy(const char *str, char **str_free)
 {
@@ -1085,7 +1106,7 @@ nm_strstrip_avoid_copy(const char *str, char **str_free)
 #define nm_strstrip_avoid_copy_a(alloca_maxlen, str, out_str_free)                                \
     ({                                                                                            \
         const char *_str_ssac          = (str);                                                   \
-        char **     _out_str_free_ssac = (out_str_free);                                          \
+        char      **_out_str_free_ssac = (out_str_free);                                          \
                                                                                                   \
         G_STATIC_ASSERT_EXPR((alloca_maxlen) > 0);                                                \
                                                                                                   \
@@ -1315,7 +1336,7 @@ _nm_strndup_a_step(char *s, const char *str, gsize len)
         const char *const _str_snd           = (str);              \
         const gsize       _len_snd           = (len);              \
         char **const      _out_str_free_snd  = (out_str_free);     \
-        char *            _s_snd;                                  \
+        char             *_s_snd;                                  \
                                                                    \
         G_STATIC_ASSERT_EXPR((alloca_maxlen) <= 300);              \
                                                                    \
@@ -1423,7 +1444,7 @@ nm_decode_version(guint version, guint *major, guint *minor, guint *micro)
         (_str ? ({                                                       \
             const gsize _trunc_at     = (trunc_at);                      \
             const gsize _strlen_trunc = NM_MIN(strlen(_str), _trunc_at); \
-            char *      _buf;                                            \
+            char       *_buf;                                            \
                                                                          \
             G_STATIC_ASSERT_EXPR((trunc_at) <= 300);                     \
                                                                          \
@@ -1456,7 +1477,7 @@ nm_decode_version(guint version, guint *major, guint *minor, guint *micro)
         char *const       _sbuf_stack    = (sbuf_stack);                                  \
         char **const      _out_sbuf_heap = (out_sbuf_heap);                               \
         gsize *const      _out_len       = (out_len);                                     \
-        const char *      _msg;                                                           \
+        const char       *_msg;                                                           \
         va_list           _va_args;                                                       \
         int               _l;                                                             \
                                                                                           \
@@ -1470,7 +1491,7 @@ nm_decode_version(guint version, guint *major, guint *minor, guint *micro)
                                                                                           \
         if ((gsize) _l >= sizeof(sbuf_stack)) {                                           \
             const gsize _l2 = ((gsize) _l) + 1u;                                          \
-            char *      _sbuf_heap;                                                       \
+            char       *_sbuf_heap;                                                       \
                                                                                           \
             /* Don't use g_strdup_vprintf() here either, because that also needs
              * to first determine the length (which is commonly does by printing
@@ -1503,7 +1524,7 @@ nm_decode_version(guint version, guint *major, guint *minor, guint *micro)
  * must not be larger than 300 bytes, as this gets stack allocated. */
 #define nm_sprintf_buf_unsafe_a(bufsize, format, ...)                       \
     ({                                                                      \
-        char *          _buf;                                               \
+        char           *_buf;                                               \
         int             _buf_len;                                           \
         typeof(bufsize) _bufsize = (bufsize);                               \
                                                                             \
@@ -1531,7 +1552,7 @@ nm_decode_version(guint version, guint *major, guint *minor, guint *micro)
         const char *const _name          = (name);                                         \
         char **const      _p_val_to_free = (p_val_to_free);                                \
         const gsize       _name_len      = strlen(_name);                                  \
-        char *            _buf2;                                                           \
+        char             *_buf2;                                                           \
                                                                                            \
         nm_assert(_p_val_to_free && !*_p_val_to_free);                                     \
         if (NM_STRLEN(format) <= 290 && _name_len < (gsize) (290 - NM_STRLEN(format)))     \
diff --git a/src/libnm-glib-aux/nm-random-utils.c b/src/libnm-glib-aux/nm-random-utils.c
index 2f42f3f6..3a8ba64f 100644
--- a/src/libnm-glib-aux/nm-random-utils.c
+++ b/src/libnm-glib-aux/nm-random-utils.c
@@ -80,7 +80,7 @@ _bad_random_init_seed(BadRandSeed *seed)
 {
     const guint8 *p_at_random;
     int           seed_idx;
-    GRand *       rand;
+    GRand        *rand;
 
     /* g_rand_new() reads /dev/urandom, but we already noticed that
      * /dev/urandom fails to give us good randomness (which is why
@@ -148,7 +148,7 @@ _bad_random_bytes(guint8 *buf, gsize n)
 
     {
         static BadRandState gl_state;
-        static GRand *      gl_rand;
+        static GRand       *gl_rand;
         static GMutex       gl_mutex;
         NM_G_MUTEX_LOCKED(&gl_mutex);
 
@@ -224,7 +224,7 @@ nm_utils_random_bytes(void *p, size_t n)
     int      fd;
     int      r;
     gboolean has_high_quality = TRUE;
-    guint8 * buf              = p;
+    guint8  *buf              = p;
 
     g_return_val_if_fail(p, FALSE);
     g_return_val_if_fail(n > 0, FALSE);
diff --git a/src/libnm-glib-aux/nm-ref-string.c b/src/libnm-glib-aux/nm-ref-string.c
index 93e97c79..fec5d60e 100644
--- a/src/libnm-glib-aux/nm-ref-string.c
+++ b/src/libnm-glib-aux/nm-ref-string.c
@@ -172,6 +172,48 @@ nm_ref_string_new_len(const char *cstr, gsize len)
     return rstr;
 }
 
+/**
+ * nmtst_ref_string_find_len:
+ * @cstr: the string to find.
+ * @len: length of @cstr.
+ *
+ * Returns: (transfer none): %NULL, if the string is currently
+ *   not interned. Otherwise a reference to the interned string.
+ *   Beware: this does not return ownership of the reference,
+ *   it is thus not thread safe. Only use this from unit tests
+ *   when you know that your thread holds a reference to the string
+ *   to keep it alive. Otherwise, this might be a dangling pointer.
+ */
+NMRefString *
+nmtst_ref_string_find_len(const char *cstr, gsize len)
+{
+    NMRefString *rstr = NULL;
+
+    /* @len cannot be close to G_MAXSIZE. For one, that would mean our call
+     * to malloc() below overflows. Also, we use G_MAXSIZE as special length
+     * to indicate using _priv_lookup. */
+    nm_assert(len < G_MAXSIZE - G_STRUCT_OFFSET(NMRefString, str) - 1u);
+
+    G_LOCK(gl_lock);
+
+    if (G_LIKELY(gl_hash)) {
+        NMRefString rr_lookup = {
+            .len = G_MAXSIZE,
+            ._priv_lookup =
+                {
+                    .l_len = len,
+                    .l_str = cstr,
+                },
+        };
+
+        rstr = g_hash_table_lookup(gl_hash, &rr_lookup);
+    }
+
+    G_UNLOCK(gl_lock);
+
+    return rstr;
+}
+
 void
 _nm_ref_string_unref_slow_path(NMRefString *rstr)
 {
diff --git a/src/libnm-glib-aux/nm-ref-string.h b/src/libnm-glib-aux/nm-ref-string.h
index 6950d1b9..3363bce0 100644
--- a/src/libnm-glib-aux/nm-ref-string.h
+++ b/src/libnm-glib-aux/nm-ref-string.h
@@ -46,6 +46,19 @@ nm_ref_string_new(const char *cstr)
 
 /*****************************************************************************/
 
+NMRefString *nmtst_ref_string_find_len(const char *cstr, gsize len);
+
+static inline NMRefString *
+nmtst_ref_string_find(const char *cstr)
+{
+    /* WARNING: only use for testing. See nmtst_ref_string_find_len() why. */
+    if (!cstr)
+        return FALSE;
+    return nmtst_ref_string_find_len(cstr, strlen(cstr));
+}
+
+/*****************************************************************************/
+
 static inline NMRefString *
 nm_ref_string_ref(NMRefString *rstr)
 {
@@ -118,11 +131,14 @@ static inline gboolean
 nm_ref_string_equal_str(NMRefString *rstr, const char *str)
 {
     if (!str)
-        return (!!rstr);
+        return !rstr;
 
     if (!rstr)
         return FALSE;
 
+    /* We don't use streq() here, because an NMRefString might have embedded NUL characters
+     * (as the length is tracked separately). The NUL terminated C string @str must not
+     * compare equal to such a @rstr, thus we first explicitly check strlen(). */
     return rstr->len == strlen(str) && (rstr->str == str || memcmp(rstr->str, str, rstr->len) == 0);
 }
 
@@ -164,24 +180,63 @@ nm_ref_string_unref_upcast(const char *str)
     nm_ref_string_unref(NM_REF_STRING_UPCAST(str));
 }
 
+/**
+ * nm_ref_string_reset_str_upcast:
+ * @ptr: the destination pointer that gets updated.
+ * @str: the new string to be set.
+ *
+ * @ptr is a location (destination pointer) of an "upcast" NMRefString.
+ * That is, it holds either %NULL or some ((NMRefString *) rstr)->str.
+ * In other words, @ptr holds an NMRefString which you could get via
+ * NM_REF_STRING_UPCAST(*ptr).
+ * This function resets @ptr to point to a NMRefString equal to @str.
+ *
+ * Returns: %TRUE if the pointer changed and %FALSE if the value was
+ *   already set to a string equal to @str.
+ */
+static inline gboolean
+nm_ref_string_reset_str_upcast(const char **ptr, const char *str)
+{
+    NMRefString *rstr;
+    gsize        l;
+
+    nm_assert(ptr);
+
+    if (!str)
+        return nm_clear_pointer(ptr, nm_ref_string_unref_upcast);
+
+    rstr = NM_REF_STRING_UPCAST(*ptr);
+
+    l = strlen(str);
+
+    if (rstr && rstr->len == l && (rstr->str == str || memcmp(rstr->str, str, l) == 0))
+        return FALSE;
+
+    *ptr = nm_ref_string_new_len(str, l)->str;
+    nm_ref_string_unref(rstr);
+    return TRUE;
+}
+
 static inline gboolean
 nm_ref_string_reset_str(NMRefString **ptr, const char *str)
 {
-    nm_auto_ref_string NMRefString *rstr = NULL;
-    gsize                           l;
+    NMRefString *rstr;
+    gsize        l;
 
     nm_assert(ptr);
 
     if (!str)
         return nm_clear_pointer(ptr, nm_ref_string_unref);
 
+    rstr = *ptr;
+
     l = strlen(str);
 
-    if ((*ptr) && (*ptr)->len == l && ((*ptr)->str == str || memcmp((*ptr)->str, str, l) == 0))
+    if (rstr && rstr->len == l && (rstr->str == str || memcmp(rstr->str, str, l) == 0))
         return FALSE;
 
-    rstr = *ptr;
     *ptr = nm_ref_string_new_len(str, l);
+    nm_ref_string_unref(rstr);
     return TRUE;
 }
 
diff --git a/src/libnm-glib-aux/nm-secret-utils.h b/src/libnm-glib-aux/nm-secret-utils.h
index ac279635..513dbca5 100644
--- a/src/libnm-glib-aux/nm-secret-utils.h
+++ b/src/libnm-glib-aux/nm-secret-utils.h
@@ -20,6 +20,22 @@ char *nm_secret_strchomp(char *secret);
 
 void nm_free_secret(char *secret);
 
+static inline gboolean
+nm_strdup_reset_secret(char **dst, const char *src)
+{
+    char *old;
+
+    nm_assert(dst);
+
+    if (nm_streq0(*dst, src))
+        return FALSE;
+    old  = *dst;
+    *dst = src ? g_strdup(src) : NULL;
+    if (old)
+        nm_free_secret(old);
+    return TRUE;
+}
+
 NM_AUTO_DEFINE_FCN0(char *, _nm_auto_free_secret, nm_free_secret);
 /**
  * nm_auto_free_secret:
@@ -46,8 +62,8 @@ typedef struct {
     /* the data pointer. This pointer must be allocated with malloc (at least
      * when used with nm_secret_ptr_clear()). */
     union {
-        char *  str;
-        void *  ptr;
+        char   *str;
+        void   *ptr;
         guint8 *bin;
     };
 } NMSecretPtr;
diff --git a/src/libnm-glib-aux/nm-shared-utils.c b/src/libnm-glib-aux/nm-shared-utils.c
index 9d1a1bf1..6e6fed12 100644
--- a/src/libnm-glib-aux/nm-shared-utils.c
+++ b/src/libnm-glib-aux/nm-shared-utils.c
@@ -54,7 +54,7 @@ nm_ip_addr_set_from_untrusted(int           addr_family,
                               gpointer      dst,
                               gconstpointer src,
                               gsize         src_len,
-                              int *         out_addr_family)
+                              int          *out_addr_family)
 {
     nm_assert(dst);
 
@@ -177,7 +177,7 @@ nm_utils_ipv6_addr_set_interface_identifier(struct in6_addr *addr, const NMUtils
  * the interface identifier.
  */
 void
-nm_utils_ipv6_interface_identifier_get_from_addr(NMUtilsIPv6IfaceId *   iid,
+nm_utils_ipv6_interface_identifier_get_from_addr(NMUtilsIPv6IfaceId    *iid,
                                                  const struct in6_addr *addr)
 {
     memcpy(iid, addr->s6_addr + 8, 8);
@@ -245,40 +245,58 @@ nm_utils_gettid(void)
  * The main-thread is determined by remembering the thread-id
  * of when the function was called the first time.
  *
- * When forking, the thread-id is again reset upon first call. */
+ * When forking, the thread-id is again reset upon first call.
+ *
+ * Note that this is only used for asserting, to check that we don't
+ * call the function on the wrong thread. As it's difficult to correctly
+ * cache the tid/pid, we might get this wrong during fork. That is not
+ * a problem, because we err on the side of pretending all is good. */
 gboolean
 _nm_assert_on_main_thread(void)
 {
-    G_LOCK_DEFINE_STATIC(lock);
-    static pid_t seen_tid;
-    static pid_t seen_pid;
-    pid_t        tid;
-    pid_t        pid;
-    gboolean     success = FALSE;
+    static GMutex lock;
+    static int    seen_tid;
+    pid_t         tid;
+    int           t;
+    gboolean      success = FALSE;
 
     tid = nm_utils_gettid();
     nm_assert(tid != 0);
+    nm_assert(({
+        const int tt = tid;
 
-    G_LOCK(lock);
+        tt == tid;
+    }));
 
-    if (G_LIKELY(tid == seen_tid)) {
+    t = g_atomic_int_get(&seen_tid);
+    if (G_LIKELY(t == tid)) {
         /* we don't care about false positives (when the process forked, and the thread-id
          * is accidentally re-used) . It's for assertions only. */
+        return TRUE;
+    }
+
+    g_mutex_lock(&lock);
+
+    t = g_atomic_int_get(&seen_tid);
+    if (G_UNLIKELY(t == tid))
         success = TRUE;
-    } else {
+    else {
+        static pid_t seen_pid;
+        pid_t        pid;
+
         pid = getpid();
         nm_assert(pid != 0);
 
-        if (seen_tid == 0 || seen_pid != pid) {
+        if (t == 0 || seen_pid != pid) {
             /* either this is the first time we call the function, or the process
-             * forked. In both cases, remember the thread-id. */
-            seen_tid = tid;
+             * forked. In both cases, update the thread-id. */
+            g_atomic_int_set(&seen_tid, tid);
             seen_pid = pid;
             success  = TRUE;
         }
     }
 
-    G_UNLOCK(lock);
+    g_mutex_unlock(&lock);
 
     return success;
 }
@@ -377,7 +395,7 @@ nm_strbuf_append_str(char **buf, gsize *len, const char *str)
 void
 nm_strbuf_append(char **buf, gsize *len, const char *format, ...)
 {
-    char *  p = *buf;
+    char   *p = *buf;
     va_list args;
     int     retval;
 
@@ -480,7 +498,7 @@ GBytes *
 nm_g_bytes_get_empty(void)
 {
     static GBytes *bytes = NULL;
-    GBytes *       b;
+    GBytes        *b;
 
 again:
     b = g_atomic_pointer_get(&bytes);
@@ -566,7 +584,7 @@ nm_g_bytes_to_variant_ay(const GBytes *bytes)
 #define _variant_singleton_get(create_variant)                                       \
     ({                                                                               \
         static GVariant *_singleton = NULL;                                          \
-        GVariant *       _v;                                                         \
+        GVariant        *_v;                                                         \
                                                                                      \
         while (TRUE) {                                                               \
             _v = g_atomic_pointer_get(&_singleton);                                  \
@@ -629,7 +647,7 @@ _variant_singleton_get_array_init(GVariant **p_singleton, const char *variant_ty
 #define _variant_singleton_get_array(variant_type)                                   \
     ({                                                                               \
         static GVariant *_singleton = NULL;                                          \
-        GVariant *       _v;                                                         \
+        GVariant        *_v;                                                         \
                                                                                      \
         _v = g_atomic_pointer_get(&_singleton);                                      \
         if (G_UNLIKELY(!_v)) {                                                       \
@@ -708,10 +726,10 @@ nm_g_variant_maybe_singleton_i(gint32 value)
 GHashTable *
 nm_strdict_clone(GHashTable *src)
 {
-    GHashTable *   dst;
+    GHashTable    *dst;
     GHashTableIter iter;
-    const char *   key;
-    const char *   val;
+    const char    *key;
+    const char    *val;
 
     if (!src)
         return NULL;
@@ -732,7 +750,7 @@ nm_strdict_to_variant_ass(GHashTable *strdict)
 {
     gs_free NMUtilsNamedValue *values_free = NULL;
     NMUtilsNamedValue          values_prepared[20];
-    const NMUtilsNamedValue *  values;
+    const NMUtilsNamedValue   *values;
     GVariantBuilder            builder;
     guint                      i;
     guint                      n;
@@ -753,7 +771,7 @@ nm_strdict_to_variant_asv(GHashTable *strdict)
 {
     gs_free NMUtilsNamedValue *values_free = NULL;
     NMUtilsNamedValue          values_prepared[20];
-    const NMUtilsNamedValue *  values;
+    const NMUtilsNamedValue   *values;
     GVariantBuilder            builder;
     guint                      i;
     guint                      n;
@@ -873,7 +891,7 @@ const char *
 nm_utils_flags2str(const NMUtilsFlags2StrDesc *descs,
                    gsize                       n_descs,
                    unsigned                    flags,
-                   char *                      buf,
+                   char                       *buf,
                    gsize                       len)
 {
     gsize i;
@@ -986,10 +1004,10 @@ nm_utils_ip_is_site_local(int addr_family, const void *address)
 static gboolean
 _parse_legacy_addr4(const char *text, in_addr_t *out_addr, GError **error)
 {
-    gs_free char * s_free = NULL;
+    gs_free char  *s_free = NULL;
     struct in_addr a1;
     guint8         bin[sizeof(a1)];
-    char *         s;
+    char          *s;
     int            i;
 
     if (inet_aton(text, &a1) != 1) {
@@ -1024,7 +1042,7 @@ _parse_legacy_addr4(const char *text, in_addr_t *out_addr, GError **error)
     s = nm_memdup_maybe_a(300, text, strlen(text) + 1, &s_free);
 
     for (i = 0; i < G_N_ELEMENTS(bin); i++) {
-        char * current_token = s;
+        char  *current_token = s;
         gint32 v;
 
         s = strchr(s, '.');
@@ -1088,7 +1106,7 @@ gboolean
 nm_utils_parse_inaddr_bin_full(int         addr_family,
                                gboolean    accept_legacy,
                                const char *text,
-                               int *       out_addr_family,
+                               int        *out_addr_family,
                                gpointer    out_addr)
 {
     NMIPAddr addrbin;
@@ -1160,14 +1178,14 @@ nm_utils_parse_inaddr(int addr_family, const char *text, char **out_addr)
 gboolean
 nm_utils_parse_inaddr_prefix_bin(int         addr_family,
                                  const char *text,
-                                 int *       out_addr_family,
+                                 int        *out_addr_family,
                                  gpointer    out_addr,
-                                 int *       out_prefix)
+                                 int        *out_prefix)
 {
     gs_free char *addrstr_free = NULL;
     int           prefix       = -1;
-    const char *  slash;
-    const char *  addrstr;
+    const char   *slash;
+    const char   *addrstr;
     NMIPAddr      addrbin;
 
     g_return_val_if_fail(text, FALSE);
@@ -1218,9 +1236,9 @@ nm_utils_parse_inaddr_prefix(int addr_family, const char *text, char **out_addr,
 
 gboolean
 nm_utils_parse_next_line(const char **inout_ptr,
-                         gsize *      inout_len,
+                         gsize       *inout_len,
                          const char **out_line,
-                         gsize *      out_line_len)
+                         gsize       *out_line_len)
 {
     gboolean    eol_is_carriage_return;
     const char *line_start;
@@ -1843,12 +1861,12 @@ _char_lookup_has_all(const CharLookupTable *lookup, const char *candidates)
 const char **
 nm_strsplit_set_full(const char *str, const char *delimiters, NMUtilsStrsplitSetFlags flags)
 {
-    const char **   ptr;
+    const char    **ptr;
     gsize           num_tokens;
     gsize           i_token;
     gsize           str_len_p1;
-    const char *    c_str;
-    char *          s;
+    const char     *c_str;
+    char           *s;
     CharLookupTable ch_lookup;
     const gboolean  f_escaped = NM_FLAGS_HAS(flags, NM_STRSPLIT_SET_FLAGS_ESCAPED);
     const gboolean  f_allow_escaping =
@@ -1884,7 +1902,7 @@ nm_strsplit_set_full(const char *str, const char *delimiters, NMUtilsStrsplitSet
     ({                                                    \
         const char *const _str_start = (str_start);       \
         const char *const _str_cur   = (str_cur);         \
-        const char *      _str_i     = (_str_cur);        \
+        const char       *_str_i     = (_str_cur);        \
                                                           \
         while (_str_i > _str_start && _str_i[-1] == '\\') \
             _str_i--;                                     \
@@ -2030,16 +2048,16 @@ done2:
 /*****************************************************************************/
 
 const char *
-nm_utils_escaped_tokens_escape_full(const char *                    str,
-                                    const char *                    delimiters,
-                                    const char *                    delimiters_as_needed,
+nm_utils_escaped_tokens_escape_full(const char                     *str,
+                                    const char                     *delimiters,
+                                    const char                     *delimiters_as_needed,
                                     NMUtilsEscapedTokensEscapeFlags flags,
-                                    char **                         out_to_free)
+                                    char                          **out_to_free)
 {
     CharLookupTable ch_lookup;
     CharLookupTable ch_lookup_as_needed;
     gboolean        has_ch_lookup_as_needed = FALSE;
-    char *          ret;
+    char           *ret;
     gsize           str_len;
     gsize           alloc_len;
     gsize           n_escapes;
@@ -2268,7 +2286,7 @@ char **
 nm_utils_strsplit_quoted(const char *str)
 {
     gs_unref_ptrarray GPtrArray *arr     = NULL;
-    gs_free char *               str_out = NULL;
+    gs_free char                *str_out = NULL;
     CharLookupTable              ch_lookup;
 
     nm_assert(str);
@@ -2520,7 +2538,7 @@ nm_strv_cleanup(char **strv, gboolean strip_whitespace, gboolean skip_empty, gbo
 /*****************************************************************************/
 
 GPtrArray *
-_nm_g_ptr_array_copy(GPtrArray *    array,
+_nm_g_ptr_array_copy(GPtrArray     *array,
                      GCopyFunc      func,
                      gpointer       user_data,
                      GDestroyNotify element_free_func)
@@ -2624,14 +2642,14 @@ nm_utils_error_is_notfound(GError *error)
  * Returns: whether the value was successfully set.
  */
 gboolean
-nm_g_object_set_property(GObject *     object,
-                         const char *  property_name,
+nm_g_object_set_property(GObject      *object,
+                         const char   *property_name,
                          const GValue *value,
-                         GError **     error)
+                         GError      **error)
 {
-    GParamSpec *                pspec;
+    GParamSpec                 *pspec;
     nm_auto_unset_gvalue GValue tmp_value = G_VALUE_INIT;
-    GObjectClass *              klass;
+    GObjectClass               *klass;
 
     g_return_val_if_fail(G_IS_OBJECT(object), FALSE);
     g_return_val_if_fail(property_name != NULL, FALSE);
@@ -2725,46 +2743,46 @@ nm_g_object_set_property(GObject *     object,
     G_STMT_END
 
 gboolean
-nm_g_object_set_property_string(GObject *   object,
+nm_g_object_set_property_string(GObject    *object,
                                 const char *property_name,
                                 const char *value,
-                                GError **   error)
+                                GError    **error)
 {
     _set_property(object, property_name, G_TYPE_STRING, g_value_set_string, value, error);
 }
 
 gboolean
-nm_g_object_set_property_string_static(GObject *   object,
+nm_g_object_set_property_string_static(GObject    *object,
                                        const char *property_name,
                                        const char *value,
-                                       GError **   error)
+                                       GError    **error)
 {
     _set_property(object, property_name, G_TYPE_STRING, g_value_set_static_string, value, error);
 }
 
 gboolean
-nm_g_object_set_property_string_take(GObject *   object,
+nm_g_object_set_property_string_take(GObject    *object,
                                      const char *property_name,
-                                     char *      value,
-                                     GError **   error)
+                                     char       *value,
+                                     GError    **error)
 {
     _set_property(object, property_name, G_TYPE_STRING, g_value_take_string, value, error);
 }
 
 gboolean
-nm_g_object_set_property_boolean(GObject *   object,
+nm_g_object_set_property_boolean(GObject    *object,
                                  const char *property_name,
                                  gboolean    value,
-                                 GError **   error)
+                                 GError    **error)
 {
     _set_property(object, property_name, G_TYPE_BOOLEAN, g_value_set_boolean, !!value, error);
 }
 
 gboolean
-nm_g_object_set_property_char(GObject *   object,
+nm_g_object_set_property_char(GObject    *object,
                               const char *property_name,
                               gint8       value,
-                              GError **   error)
+                              GError    **error)
 {
     /* glib says about G_TYPE_CHAR:
      *
@@ -2775,10 +2793,10 @@ nm_g_object_set_property_char(GObject *   object,
 }
 
 gboolean
-nm_g_object_set_property_uchar(GObject *   object,
+nm_g_object_set_property_uchar(GObject    *object,
                                const char *property_name,
                                guint8      value,
-                               GError **   error)
+                               GError    **error)
 {
     _set_property(object, property_name, G_TYPE_UCHAR, g_value_set_uchar, value, error);
 }
@@ -2790,38 +2808,38 @@ nm_g_object_set_property_int(GObject *object, const char *property_name, int val
 }
 
 gboolean
-nm_g_object_set_property_int64(GObject *   object,
+nm_g_object_set_property_int64(GObject    *object,
                                const char *property_name,
                                gint64      value,
-                               GError **   error)
+                               GError    **error)
 {
     _set_property(object, property_name, G_TYPE_INT64, g_value_set_int64, value, error);
 }
 
 gboolean
-nm_g_object_set_property_uint(GObject *   object,
+nm_g_object_set_property_uint(GObject    *object,
                               const char *property_name,
                               guint       value,
-                              GError **   error)
+                              GError    **error)
 {
     _set_property(object, property_name, G_TYPE_UINT, g_value_set_uint, value, error);
 }
 
 gboolean
-nm_g_object_set_property_uint64(GObject *   object,
+nm_g_object_set_property_uint64(GObject    *object,
                                 const char *property_name,
                                 guint64     value,
-                                GError **   error)
+                                GError    **error)
 {
     _set_property(object, property_name, G_TYPE_UINT64, g_value_set_uint64, value, error);
 }
 
 gboolean
-nm_g_object_set_property_flags(GObject *   object,
+nm_g_object_set_property_flags(GObject    *object,
                                const char *property_name,
                                GType       gtype,
                                guint       value,
-                               GError **   error)
+                               GError    **error)
 {
     nm_assert(({
         nm_auto_unref_gtypeclass GTypeClass *gtypeclass = g_type_class_ref(gtype);
@@ -2831,11 +2849,11 @@ nm_g_object_set_property_flags(GObject *   object,
 }
 
 gboolean
-nm_g_object_set_property_enum(GObject *   object,
+nm_g_object_set_property_enum(GObject    *object,
                               const char *property_name,
                               GType       gtype,
                               int         value,
-                              GError **   error)
+                              GError    **error)
 {
     nm_assert(({
         nm_auto_unref_gtypeclass GTypeClass *gtypeclass = g_type_class_ref(gtype);
@@ -2873,7 +2891,7 @@ GType
 nm_g_type_find_implementing_class_for_property(GType gtype, const char *pname)
 {
     nm_auto_unref_gtypeclass GObjectClass *klass = NULL;
-    GParamSpec *                           pspec;
+    GParamSpec                            *pspec;
 
     g_return_val_if_fail(pname, G_TYPE_INVALID);
 
@@ -2949,10 +2967,10 @@ _str_buf_append_c_escape_octal(NMStrBuf *strbuf, char ch)
  *   containing the unescaped string and returned.
  */
 gconstpointer
-nm_utils_buf_utf8safe_unescape(const char *            str,
+nm_utils_buf_utf8safe_unescape(const char             *str,
                                NMUtilsStrUtf8SafeFlags flags,
-                               gsize *                 out_len,
-                               gpointer *              to_free)
+                               gsize                  *out_len,
+                               gpointer               *to_free)
 {
     gboolean    strip_spaces = NM_FLAGS_HAS(flags, NM_UTILS_STR_UTF8_SAFE_UNESCAPE_STRIP_SPACES);
     NMStrBuf    strbuf;
@@ -3114,11 +3132,11 @@ const char *
 nm_utils_buf_utf8safe_escape(gconstpointer           buf,
                              gssize                  buflen,
                              NMUtilsStrUtf8SafeFlags flags,
-                             char **                 to_free)
+                             char                  **to_free)
 {
     const char *const str = buf;
-    const char *      p   = NULL;
-    const char *      s;
+    const char       *p   = NULL;
+    const char       *s;
     gboolean          nul_terminated = FALSE;
     NMStrBuf          strbuf;
 
@@ -3209,7 +3227,7 @@ char *
 nm_utils_buf_utf8safe_escape_cp(gconstpointer buf, gssize buflen, NMUtilsStrUtf8SafeFlags flags)
 {
     const char *s_const;
-    char *      s;
+    char       *s;
 
     s_const = nm_utils_buf_utf8safe_escape(buf, buflen, flags, &s);
     nm_assert(!s || s == s_const);
@@ -3419,11 +3437,11 @@ nm_utils_named_value_clear_with_g_free(NMUtilsNamedValue *val)
 G_STATIC_ASSERT(G_STRUCT_OFFSET(NMUtilsNamedValue, name) == 0);
 
 NMUtilsNamedValue *
-nm_utils_named_values_from_strdict_full(GHashTable *        hash,
-                                        guint *             out_len,
+nm_utils_named_values_from_strdict_full(GHashTable         *hash,
+                                        guint              *out_len,
                                         GCompareDataFunc    compare_func,
                                         gpointer            user_data,
-                                        NMUtilsNamedValue * provided_buffer,
+                                        NMUtilsNamedValue  *provided_buffer,
                                         guint               provided_buffer_len,
                                         NMUtilsNamedValue **out_allocated_buffer)
 {
@@ -3466,7 +3484,7 @@ nm_utils_named_values_from_strdict_full(GHashTable *        hash,
 gssize
 nm_utils_named_value_list_find(const NMUtilsNamedValue *arr,
                                gsize                    len,
-                               const char *             name,
+                               const char              *name,
                                gboolean                 sorted)
 {
     gsize i;
@@ -3556,10 +3574,10 @@ nm_utils_named_value_list_sort(NMUtilsNamedValue *arr,
 /*****************************************************************************/
 
 gpointer *
-nm_utils_hash_keys_to_array(GHashTable *     hash,
+nm_utils_hash_keys_to_array(GHashTable      *hash,
                             GCompareDataFunc compare_func,
                             gpointer         user_data,
-                            guint *          out_len)
+                            guint           *out_len)
 {
     guint     len;
     gpointer *keys;
@@ -3580,14 +3598,14 @@ nm_utils_hash_keys_to_array(GHashTable *     hash,
 }
 
 gpointer *
-nm_utils_hash_values_to_array(GHashTable *     hash,
+nm_utils_hash_values_to_array(GHashTable      *hash,
                               GCompareDataFunc compare_func,
                               gpointer         user_data,
-                              guint *          out_len)
+                              guint           *out_len)
 {
     GHashTableIter iter;
     gpointer       value;
-    gpointer *     arr;
+    gpointer      *arr;
     guint          i, len;
 
     if (!hash || (len = g_hash_table_size(hash)) == 0u) {
@@ -3669,8 +3687,8 @@ nm_utils_hashtable_equal(const GHashTable *a,
 }
 
 static gboolean
-_utils_hashtable_equal(GHashTable *     hash_a,
-                       GHashTable *     hash_b,
+_utils_hashtable_equal(GHashTable      *hash_a,
+                       GHashTable      *hash_b,
                        GCompareDataFunc cmp_values,
                        gpointer         user_data)
 {
@@ -3768,8 +3786,8 @@ static int
 _hashtable_cmp_func(gconstpointer a, gconstpointer b, gpointer user_data)
 {
     const HashTableUserData *d   = user_data;
-    const HashTableCmpData * d_a = *((const HashTableCmpData *const *) a);
-    const HashTableCmpData * d_b = *((const HashTableCmpData *const *) b);
+    const HashTableCmpData  *d_a = *((const HashTableCmpData *const *) a);
+    const HashTableCmpData  *d_b = *((const HashTableCmpData *const *) b);
 
     NM_CMP_RETURN(d->cmp_keys(d_a, d_b, d->user_data));
     return 0;
@@ -3805,11 +3823,11 @@ nm_utils_hashtable_cmp(const GHashTable *a,
                        GCompareDataFunc  cmp_values,
                        gpointer          user_data)
 {
-    GHashTable *hash_a                       = (GHashTable *) a;
-    GHashTable *hash_b                       = (GHashTable *) b;
+    GHashTable               *hash_a         = (GHashTable *) a;
+    GHashTable               *hash_b         = (GHashTable *) b;
     gs_free HashTableCmpData *cmp_array_free = NULL;
-    HashTableCmpData *        cmp_array_a;
-    HashTableCmpData *        cmp_array_b;
+    HashTableCmpData         *cmp_array_a;
+    HashTableCmpData         *cmp_array_b;
     GHashTableIter            h;
     gpointer                  i_key;
     gpointer                  i_val;
@@ -4011,12 +4029,12 @@ _nm_strv_dup_packed(const char *const *strv, gssize len)
 
 {
     gs_free gsize *str_len_free = NULL;
-    gsize *        str_len;
-    const char **  result;
+    gsize         *str_len;
+    const char   **result;
     gsize          mem_len;
     gsize          pre_len;
     gsize          len2;
-    char *         sbuf;
+    char          *sbuf;
     gsize          i;
 
     nm_assert(len >= -1);
@@ -4113,7 +4131,7 @@ nm_utils_ptrarray_find_first(gconstpointer *list, gssize len, gconstpointer need
 /*****************************************************************************/
 
 gboolean
-nm_utils_ptrarray_is_sorted(gconstpointer *  list,
+nm_utils_ptrarray_is_sorted(gconstpointer   *list,
                             gsize            len,
                             gboolean         require_strict,
                             GCompareDataFunc cmpfcn,
@@ -4135,7 +4153,7 @@ nm_utils_ptrarray_is_sorted(gconstpointer *  list,
 }
 
 gssize
-nm_utils_ptrarray_find_binary_search(gconstpointer *  list,
+nm_utils_ptrarray_find_binary_search(gconstpointer   *list,
                                      gsize            len,
                                      gconstpointer    needle,
                                      GCompareDataFunc cmpfcn,
@@ -4172,13 +4190,13 @@ nm_utils_ptrarray_find_binary_search(gconstpointer *  list,
 }
 
 gssize
-nm_utils_ptrarray_find_binary_search_range(gconstpointer *  list,
+nm_utils_ptrarray_find_binary_search_range(gconstpointer   *list,
                                            gsize            len,
                                            gconstpointer    needle,
                                            GCompareDataFunc cmpfcn,
                                            gpointer         user_data,
-                                           gssize *         out_idx_first,
-                                           gssize *         out_idx_last)
+                                           gssize          *out_idx_first,
+                                           gssize          *out_idx_last)
 {
     gssize imin, imax, imid, i2min, i2max, i2mid;
     int    cmp;
@@ -4336,10 +4354,10 @@ nm_utils_get_start_time_for_pid(pid_t pid, char *out_state, pid_t *out_ppid)
 {
     guint64              start_time;
     char                 filename[256];
-    gs_free char *       contents = NULL;
+    gs_free char        *contents = NULL;
     size_t               length;
     gs_free const char **tokens = NULL;
-    char *               p;
+    char                *p;
     char                 state = ' ';
     gint64               ppid  = 0;
 
@@ -4593,8 +4611,8 @@ _nm_utils_user_data_unpack(NMUtilsUserData *user_data, int nargs, ...)
 
 typedef struct {
     gpointer                    callback_user_data;
-    GCancellable *              cancellable;
-    GSource *                   source;
+    GCancellable               *cancellable;
+    GSource                    *source;
     NMUtilsInvokeOnIdleCallback callback;
     gulong                      cancelled_id;
 } InvokeOnIdleData;
@@ -4639,12 +4657,12 @@ _nm_utils_invoke_on_idle_cb_cancelled(GCancellable *cancellable, InvokeOnIdleDat
 static void
 _nm_utils_invoke_on_idle_start(gboolean                    use_timeout,
                                guint                       timeout_msec,
-                               GCancellable *              cancellable,
+                               GCancellable               *cancellable,
                                NMUtilsInvokeOnIdleCallback callback,
                                gpointer                    callback_user_data)
 {
     InvokeOnIdleData *data;
-    GSource *         source;
+    GSource          *source;
 
     g_return_if_fail(callback);
 
@@ -4688,7 +4706,7 @@ _nm_utils_invoke_on_idle_start(gboolean                    use_timeout,
 }
 
 void
-nm_utils_invoke_on_idle(GCancellable *              cancellable,
+nm_utils_invoke_on_idle(GCancellable               *cancellable,
                         NMUtilsInvokeOnIdleCallback callback,
                         gpointer                    callback_user_data)
 {
@@ -4697,7 +4715,7 @@ nm_utils_invoke_on_idle(GCancellable *              cancellable,
 
 void
 nm_utils_invoke_on_timeout(guint                       timeout_msec,
-                           GCancellable *              cancellable,
+                           GCancellable               *cancellable,
                            NMUtilsInvokeOnIdleCallback callback,
                            gpointer                    callback_user_data)
 {
@@ -4787,11 +4805,11 @@ nm_utils_bin2hexstr_full(gconstpointer addr,
                          gsize         length,
                          char          delimiter,
                          gboolean      upper_case,
-                         char *        out)
+                         char         *out)
 {
     const guint8 *in     = addr;
-    const char *  LOOKUP = upper_case ? "0123456789ABCDEF" : "0123456789abcdef";
-    char *        out0;
+    const char   *LOOKUP = upper_case ? "0123456789ABCDEF" : "0123456789abcdef";
+    char         *out0;
 
     if (out)
         out0 = out;
@@ -4829,12 +4847,12 @@ nm_utils_hexstr2bin_full(const char *hexstr,
                          gboolean    hexdigit_pairs_required,
                          const char *delimiter_candidates,
                          gsize       required_len,
-                         guint8 *    buffer,
+                         guint8     *buffer,
                          gsize       buffer_len,
-                         gsize *     out_len)
+                         gsize      *out_len)
 {
     const char *in            = hexstr;
-    guint8 *    out           = buffer;
+    guint8     *out           = buffer;
     gboolean    delimiter_has = TRUE;
     guint8      delimiter     = '\0';
     gsize       len;
@@ -4918,7 +4936,7 @@ nm_utils_hexstr2bin_alloc(const char *hexstr,
                           gboolean    delimiter_required,
                           const char *delimiter_candidates,
                           gsize       required_len,
-                          gsize *     out_len)
+                          gsize      *out_len)
 {
     guint8 *buffer;
     gsize   buffer_len, len;
@@ -4968,16 +4986,16 @@ fail:
 GVariant *
 nm_utils_gvariant_vardict_filter(GVariant *src,
                                  gboolean (*filter_fcn)(const char *key,
-                                                        GVariant *  val,
-                                                        char **     out_key,
-                                                        GVariant ** out_val,
+                                                        GVariant   *val,
+                                                        char      **out_key,
+                                                        GVariant  **out_val,
                                                         gpointer    user_data),
                                  gpointer user_data)
 {
     GVariantIter    iter;
     GVariantBuilder builder;
-    const char *    key;
-    GVariant *      val;
+    const char     *key;
+    GVariant       *val;
 
     g_return_val_if_fail(src && g_variant_is_of_type(src, G_VARIANT_TYPE_VARDICT), NULL);
     g_return_val_if_fail(filter_fcn, NULL);
@@ -4987,8 +5005,8 @@ nm_utils_gvariant_vardict_filter(GVariant *src,
     g_variant_iter_init(&iter, src);
     while (g_variant_iter_next(&iter, "{&sv}", &key, &val)) {
         _nm_unused gs_unref_variant GVariant *val_free = val;
-        gs_free char *                        key2     = NULL;
-        gs_unref_variant GVariant *val2                = NULL;
+        gs_free char                         *key2     = NULL;
+        gs_unref_variant GVariant            *val2     = NULL;
 
         if (filter_fcn(key, val, &key2, &val2, user_data)) {
             g_variant_builder_add(&builder, "{sv}", key2 ?: key, val2 ?: val);
@@ -5000,9 +5018,9 @@ nm_utils_gvariant_vardict_filter(GVariant *src,
 
 static gboolean
 _gvariant_vardict_filter_drop_one(const char *key,
-                                  GVariant *  val,
-                                  char **     out_key,
-                                  GVariant ** out_val,
+                                  GVariant   *val,
+                                  char      **out_key,
+                                  GVariant  **out_val,
                                   gpointer    user_data)
 {
     return !nm_streq(key, user_data);
@@ -5231,8 +5249,8 @@ typedef struct {
 typedef struct {
     GSource       source;
     GMainContext *context;
-    GHashTable *  fds;
-    GPollFD *     fds_arr;
+    GHashTable   *fds;
+    GPollFD      *fds_arr;
     guint         fds_len;
     int           max_priority;
     bool          acquired : 1;
@@ -5272,16 +5290,16 @@ _ctx_integ_source_reacquire(CtxIntegSource *ctx_src)
 static gboolean
 _ctx_integ_source_prepare(GSource *source, int *out_timeout)
 {
-    CtxIntegSource *ctx_src = ((CtxIntegSource *) source);
-    int             max_priority;
-    int             timeout = -1;
-    gboolean        any_ready;
-    GHashTableIter  h_iter;
-    PollData *      poll_data;
-    gboolean        fds_changed;
-    GPollFD         new_fds_stack[300u / sizeof(GPollFD)];
+    CtxIntegSource  *ctx_src = ((CtxIntegSource *) source);
+    int              max_priority;
+    int              timeout = -1;
+    gboolean         any_ready;
+    GHashTableIter   h_iter;
+    PollData        *poll_data;
+    gboolean         fds_changed;
+    GPollFD          new_fds_stack[300u / sizeof(GPollFD)];
     gs_free GPollFD *new_fds_heap = NULL;
-    GPollFD *        new_fds;
+    GPollFD         *new_fds;
     guint            new_fds_len;
     guint            new_fds_alloc;
     guint            i;
@@ -5455,7 +5473,7 @@ _ctx_integ_source_check(GSource *source)
     CtxIntegSource *ctx_src = ((CtxIntegSource *) source);
     GHashTableIter  h_iter;
     gboolean        some_ready;
-    PollData *      poll_data;
+    PollData       *poll_data;
 
     nm_assert(ctx_src->context);
 
@@ -5511,7 +5529,7 @@ _ctx_integ_source_finalize(GSource *source)
 {
     CtxIntegSource *ctx_src = ((CtxIntegSource *) source);
     GHashTableIter  h_iter;
-    PollData *      poll_data;
+    PollData       *poll_data;
 
     g_return_if_fail(ctx_src->context);
 
@@ -5890,17 +5908,17 @@ attribute_escape(const char *src, char c1, char c2)
 }
 
 void
-_nm_utils_format_variant_attributes_full(GString *                            str,
-                                         const NMUtilsNamedValue *            values,
+_nm_utils_format_variant_attributes_full(GString                             *str,
+                                         const NMUtilsNamedValue             *values,
                                          guint                                num_values,
                                          const NMVariantAttributeSpec *const *spec,
                                          char                                 attr_separator,
                                          char                                 key_value_separator)
 {
     const NMVariantAttributeSpec *const *s;
-    const char *                         name, *value;
-    GVariant *                           variant;
-    char *                               escaped;
+    const char                          *name, *value;
+    GVariant                            *variant;
+    char                                *escaped;
     char                                 buf[64];
     char                                 sep = 0;
     guint                                i;
@@ -5960,15 +5978,15 @@ _nm_utils_format_variant_attributes_full(GString *                            st
 }
 
 char *
-_nm_utils_format_variant_attributes(GHashTable *                         attributes,
+_nm_utils_format_variant_attributes(GHashTable                          *attributes,
                                     const NMVariantAttributeSpec *const *spec,
                                     char                                 attr_separator,
                                     char                                 key_value_separator)
 {
     gs_free NMUtilsNamedValue *values_free = NULL;
     NMUtilsNamedValue          values_prepared[20];
-    const NMUtilsNamedValue *  values;
-    GString *                  str = NULL;
+    const NMUtilsNamedValue   *values;
+    GString                   *str = NULL;
     guint                      len;
 
     g_return_val_if_fail(attr_separator, NULL);
@@ -6078,7 +6096,7 @@ nm_utils_uid_to_name(uid_t uid)
     gs_free char *buf_heap = NULL;
     char          buf_stack[4096];
     gsize         bufsize;
-    char *        buf;
+    char         *buf;
 
     bufsize = sizeof(buf_stack);
     buf     = buf_stack;
@@ -6112,7 +6130,7 @@ nm_utils_name_to_uid(const char *name, uid_t *out_uid)
     gs_free char *buf_heap = NULL;
     char          buf_stack[4096];
     gsize         bufsize;
-    char *        buf;
+    char         *buf;
 
     if (!name)
         return nm_assert_unreachable_val(FALSE);
@@ -6210,7 +6228,7 @@ char *
 _nm_utils_ssid_to_string_arr(const guint8 *ssid, gsize len)
 {
     gs_free char *s_copy = NULL;
-    const char *  s_cnst;
+    const char   *s_cnst;
 
     if (len == 0)
         return g_strdup("(empty)");
@@ -6286,7 +6304,7 @@ nm_utils_ip4_address_clear_host_address(in_addr_t addr, guint8 plen)
  * @dst and @src to the same destination or set @src NULL.
  */
 const struct in6_addr *
-nm_utils_ip6_address_clear_host_address(struct in6_addr *      dst,
+nm_utils_ip6_address_clear_host_address(struct in6_addr       *dst,
                                         const struct in6_addr *src,
                                         guint8                 plen)
 {
@@ -6475,10 +6493,10 @@ nm_crypto_md5_hash(const guint8 *salt,
                    gsize         salt_len,
                    const guint8 *password,
                    gsize         password_len,
-                   guint8 *      buffer,
+                   guint8       *buffer,
                    gsize         buflen)
 {
-    nm_auto_free_checksum GChecksum *                 ctx = NULL;
+    nm_auto_free_checksum GChecksum                  *ctx = NULL;
     nm_auto_clear_static_secret_ptr const NMSecretPtr digest =
         NM_SECRET_PTR_STATIC(NM_UTILS_CHECKSUM_LENGTH_MD5);
     gsize bufidx = 0;
@@ -6569,7 +6587,7 @@ static pthread_key_t _tls_reg_key;
 static void
 _tls_reg_destroy(gpointer data)
 {
-    CList *     lst_head = data;
+    CList      *lst_head = data;
     TlsRegData *entry;
 
     if (!lst_head)
@@ -6612,8 +6630,8 @@ nm_utils_thread_local_register_destroy(gpointer tls_data, GDestroyNotify destroy
 {
     NM_AUTO_PROTECT_ERRNO(errsv);
     static pthread_once_t key_once = PTHREAD_ONCE_INIT;
-    CList *               lst_head;
-    TlsRegData *          entry;
+    CList                *lst_head;
+    TlsRegData           *entry;
 
     nm_assert(destroy_notify);
 
diff --git a/src/libnm-glib-aux/nm-shared-utils.h b/src/libnm-glib-aux/nm-shared-utils.h
index 8dd53dcf..54550f27 100644
--- a/src/libnm-glib-aux/nm-shared-utils.h
+++ b/src/libnm-glib-aux/nm-shared-utils.h
@@ -36,12 +36,7 @@ pid_t nm_utils_gettid(void);
 gboolean _nm_assert_on_main_thread(void);
 
 #if NM_MORE_ASSERTS > 5
-#define NM_ASSERT_ON_MAIN_THREAD()              \
-    G_STMT_START                                \
-    {                                           \
-        nm_assert(_nm_assert_on_main_thread()); \
-    }                                           \
-    G_STMT_END
+#define NM_ASSERT_ON_MAIN_THREAD() nm_assert(_nm_assert_on_main_thread())
 #else
 #define NM_ASSERT_ON_MAIN_THREAD() \
     G_STMT_START                   \
@@ -90,7 +85,7 @@ G_STATIC_ASSERT(sizeof(int) == sizeof(gint32));
 #define _NM_INT_LE_MAXINT32(value)                   \
     ({                                               \
         _nm_unused typeof(value) _value   = (value); \
-        _nm_unused const int *   _p_value = &_value; \
+        _nm_unused const int    *_p_value = &_value; \
                                                      \
         TRUE;                                        \
     })
@@ -248,10 +243,9 @@ extern const NMIPAddr nm_ip_addr_zero;
 static inline int
 nm_ip_addr_cmp(int addr_family, gconstpointer a, gconstpointer b)
 {
-    nm_assert(a);
-    nm_assert(b);
-
-    return memcmp(a, b, nm_utils_addr_family_to_size(addr_family));
+    NM_CMP_SELF(a, b);
+    NM_CMP_DIRECT_MEMCMP(a, b, nm_utils_addr_family_to_size(addr_family));
+    return 0;
 }
 
 static inline gboolean
@@ -313,7 +307,7 @@ gboolean nm_ip_addr_set_from_untrusted(int           addr_family,
                                        gpointer      dst,
                                        gconstpointer src,
                                        gsize         src_len,
-                                       int *         out_addr_family);
+                                       int          *out_addr_family);
 
 gboolean
 nm_ip_addr_set_from_variant(int addr_family, gpointer dst, GVariant *variant, int *out_addr_family);
@@ -375,20 +369,20 @@ typedef struct _NMUtilsIPv6IfaceId {
         }                           \
     }
 
-void nm_utils_ipv6_addr_set_interface_identifier(struct in6_addr *         addr,
+void nm_utils_ipv6_addr_set_interface_identifier(struct in6_addr          *addr,
                                                  const NMUtilsIPv6IfaceId *iid);
 
-void nm_utils_ipv6_interface_identifier_get_from_addr(NMUtilsIPv6IfaceId *   iid,
+void nm_utils_ipv6_interface_identifier_get_from_addr(NMUtilsIPv6IfaceId    *iid,
                                                       const struct in6_addr *addr);
 
 gboolean nm_utils_ipv6_interface_identifier_get_from_token(NMUtilsIPv6IfaceId *iid,
-                                                           const char *        token);
+                                                           const char         *token);
 
 const char *nm_utils_inet6_interface_identifier_to_token(const NMUtilsIPv6IfaceId *iid,
                                                          char buf[static INET6_ADDRSTRLEN]);
 
 gboolean nm_utils_get_ipv6_interface_identifier(NMLinkType          link_type,
-                                                const guint8 *      hwaddr,
+                                                const guint8       *hwaddr,
                                                 guint               len,
                                                 guint               dev_id,
                                                 NMUtilsIPv6IfaceId *out_iid);
@@ -398,7 +392,7 @@ gboolean nm_utils_get_ipv6_interface_identifier(NMLinkType          link_type,
 gconstpointer
 nm_utils_ipx_address_clear_host_address(int family, gpointer dst, gconstpointer src, guint8 plen);
 in_addr_t              nm_utils_ip4_address_clear_host_address(in_addr_t addr, guint8 plen);
-const struct in6_addr *nm_utils_ip6_address_clear_host_address(struct in6_addr *      dst,
+const struct in6_addr *nm_utils_ip6_address_clear_host_address(struct in6_addr       *dst,
                                                                const struct in6_addr *src,
                                                                guint8                 plen);
 
@@ -623,9 +617,9 @@ GVariant *nm_strdict_to_variant_asv(GHashTable *strdict);
 
 GVariant *nm_utils_gvariant_vardict_filter(GVariant *src,
                                            gboolean (*filter_fcn)(const char *key,
-                                                                  GVariant *  val,
-                                                                  char **     out_key,
-                                                                  GVariant ** out_val,
+                                                                  GVariant   *val,
+                                                                  char      **out_key,
+                                                                  GVariant  **out_val,
                                                                   gpointer    user_data),
                                            gpointer user_data);
 
@@ -751,7 +745,7 @@ gboolean nm_strv_has_duplicate(const char *const *list, gssize len, gboolean is_
 
 const char **nm_strv_cleanup_const(const char **strv, gboolean skip_empty, gboolean skip_repeated);
 
-char **nm_strv_cleanup(char **  strv,
+char **nm_strv_cleanup(char   **strv,
                        gboolean strip_whitespace,
                        gboolean skip_empty,
                        gboolean skip_repeated);
@@ -824,7 +818,7 @@ const char *nm_utils_escaped_tokens_escape_full(const char *str,
                                                 const char *delimiters,
                                                 const char *delimiters_as_needed,
                                                 NMUtilsEscapedTokensEscapeFlags flags,
-                                                char **                         out_to_free);
+                                                char                          **out_to_free);
 
 static inline const char *
 nm_utils_escaped_tokens_escape(const char *str, const char *delimiters, char **out_to_free)
@@ -859,7 +853,7 @@ nm_utils_escaped_tokens_escape_unnecessary(const char *str, const char *delimite
 
     {
         gs_free char *str_to_free = NULL;
-        const char *  str0;
+        const char   *str0;
 
         str0 = nm_utils_escaped_tokens_escape(str, delimiters, &str_to_free);
         nm_assert(str0 == str);
@@ -873,7 +867,7 @@ nm_utils_escaped_tokens_escape_unnecessary(const char *str, const char *delimite
 static inline void
 nm_utils_escaped_tokens_escape_gstr_assert(const char *str,
                                            const char *delimiters,
-                                           GString *   gstring)
+                                           GString    *gstring)
 {
     g_string_append(gstring, nm_utils_escaped_tokens_escape_unnecessary(str, delimiters));
 }
@@ -987,7 +981,7 @@ guint32 _nm_utils_ip4_get_default_prefix(in_addr_t ip);
 gconstpointer
 nm_utils_ipx_address_clear_host_address(int family, gpointer dst, gconstpointer src, guint8 plen);
 in_addr_t              nm_utils_ip4_address_clear_host_address(in_addr_t addr, guint8 plen);
-const struct in6_addr *nm_utils_ip6_address_clear_host_address(struct in6_addr *      dst,
+const struct in6_addr *nm_utils_ip6_address_clear_host_address(struct in6_addr       *dst,
                                                                const struct in6_addr *src,
                                                                guint8                 plen);
 int                    nm_utils_ip6_address_same_prefix_cmp(const struct in6_addr *addr_a,
@@ -1001,12 +995,12 @@ gboolean nm_utils_ip_is_site_local(int addr_family, const void *address);
 gboolean nm_utils_parse_inaddr_bin_full(int         addr_family,
                                         gboolean    accept_legacy,
                                         const char *text,
-                                        int *       out_addr_family,
+                                        int        *out_addr_family,
                                         gpointer    out_addr);
 static inline gboolean
 nm_utils_parse_inaddr_bin(int         addr_family,
                           const char *text,
-                          int *       out_addr_family,
+                          int        *out_addr_family,
                           gpointer    out_addr)
 {
     return nm_utils_parse_inaddr_bin_full(addr_family, FALSE, text, out_addr_family, out_addr);
@@ -1016,17 +1010,17 @@ gboolean nm_utils_parse_inaddr(int addr_family, const char *text, char **out_add
 
 gboolean nm_utils_parse_inaddr_prefix_bin(int         addr_family,
                                           const char *text,
-                                          int *       out_addr_family,
+                                          int        *out_addr_family,
                                           gpointer    out_addr,
-                                          int *       out_prefix);
+                                          int        *out_prefix);
 
 gboolean
 nm_utils_parse_inaddr_prefix(int addr_family, const char *text, char **out_addr, int *out_prefix);
 
 gboolean nm_utils_parse_next_line(const char **inout_ptr,
-                                  gsize *      inout_len,
+                                  gsize       *inout_len,
                                   const char **out_line,
-                                  gsize *      out_line_len);
+                                  gsize       *out_line_len);
 
 gint64 nm_g_ascii_strtoll(const char *nptr, char **endptr, guint base);
 
@@ -1083,7 +1077,7 @@ typedef struct {
 const char *nm_utils_flags2str(const NMUtilsFlags2StrDesc *descs,
                                gsize                       n_descs,
                                unsigned                    flags,
-                               char *                      buf,
+                               char                       *buf,
                                gsize                       len);
 
 /*****************************************************************************/
@@ -1373,70 +1367,70 @@ nm_utils_error_set_literal(GError **error, int error_code, const char *literal)
 
 /*****************************************************************************/
 
-gboolean nm_g_object_set_property(GObject *     object,
-                                  const char *  property_name,
+gboolean nm_g_object_set_property(GObject      *object,
+                                  const char   *property_name,
                                   const GValue *value,
-                                  GError **     error);
+                                  GError      **error);
 
-gboolean nm_g_object_set_property_string(GObject *   object,
+gboolean nm_g_object_set_property_string(GObject    *object,
                                          const char *property_name,
                                          const char *value,
-                                         GError **   error);
+                                         GError    **error);
 
-gboolean nm_g_object_set_property_string_static(GObject *   object,
+gboolean nm_g_object_set_property_string_static(GObject    *object,
                                                 const char *property_name,
                                                 const char *value,
-                                                GError **   error);
+                                                GError    **error);
 
-gboolean nm_g_object_set_property_string_take(GObject *   object,
+gboolean nm_g_object_set_property_string_take(GObject    *object,
                                               const char *property_name,
-                                              char *      value,
-                                              GError **   error);
+                                              char       *value,
+                                              GError    **error);
 
-gboolean nm_g_object_set_property_boolean(GObject *   object,
+gboolean nm_g_object_set_property_boolean(GObject    *object,
                                           const char *property_name,
                                           gboolean    value,
-                                          GError **   error);
+                                          GError    **error);
 
-gboolean nm_g_object_set_property_char(GObject *   object,
+gboolean nm_g_object_set_property_char(GObject    *object,
                                        const char *property_name,
                                        gint8       value,
-                                       GError **   error);
+                                       GError    **error);
 
-gboolean nm_g_object_set_property_uchar(GObject *   object,
+gboolean nm_g_object_set_property_uchar(GObject    *object,
                                         const char *property_name,
                                         guint8      value,
-                                        GError **   error);
+                                        GError    **error);
 
 gboolean
 nm_g_object_set_property_int(GObject *object, const char *property_name, int value, GError **error);
 
-gboolean nm_g_object_set_property_int64(GObject *   object,
+gboolean nm_g_object_set_property_int64(GObject    *object,
                                         const char *property_name,
                                         gint64      value,
-                                        GError **   error);
+                                        GError    **error);
 
-gboolean nm_g_object_set_property_uint(GObject *   object,
+gboolean nm_g_object_set_property_uint(GObject    *object,
                                        const char *property_name,
                                        guint       value,
-                                       GError **   error);
+                                       GError    **error);
 
-gboolean nm_g_object_set_property_uint64(GObject *   object,
+gboolean nm_g_object_set_property_uint64(GObject    *object,
                                          const char *property_name,
                                          guint64     value,
-                                         GError **   error);
+                                         GError    **error);
 
-gboolean nm_g_object_set_property_flags(GObject *   object,
+gboolean nm_g_object_set_property_flags(GObject    *object,
                                         const char *property_name,
                                         GType       gtype,
                                         guint       value,
-                                        GError **   error);
+                                        GError    **error);
 
-gboolean nm_g_object_set_property_enum(GObject *   object,
+gboolean nm_g_object_set_property_enum(GObject    *object,
                                        const char *property_name,
                                        GType       gtype,
                                        int         value,
-                                       GError **   error);
+                                       GError    **error);
 
 GParamSpec *nm_g_object_class_find_property_from_gtype(GType gtype, const char *property_name);
 
@@ -1464,6 +1458,8 @@ GParamSpec *nm_g_object_class_find_property_from_gtype(GType gtype, const char *
     _NM_G_PARAM_SPEC_CAST(param_spec, G_TYPE_INT, GParamSpecInt)
 #define NM_G_PARAM_SPEC_CAST_UINT(param_spec) \
     _NM_G_PARAM_SPEC_CAST(param_spec, G_TYPE_UINT, GParamSpecUInt)
+#define NM_G_PARAM_SPEC_CAST_INT64(param_spec) \
+    _NM_G_PARAM_SPEC_CAST(param_spec, G_TYPE_INT64, GParamSpecInt64)
 #define NM_G_PARAM_SPEC_CAST_UINT64(param_spec) \
     _NM_G_PARAM_SPEC_CAST(param_spec, G_TYPE_UINT64, GParamSpecUInt64)
 #define NM_G_PARAM_SPEC_CAST_ENUM(param_spec) \
@@ -1479,6 +1475,8 @@ GParamSpec *nm_g_object_class_find_property_from_gtype(GType gtype, const char *
     (NM_G_PARAM_SPEC_CAST_INT(NM_ENSURE_NOT_NULL(param_spec))->default_value)
 #define NM_G_PARAM_SPEC_GET_DEFAULT_UINT(param_spec) \
     (NM_G_PARAM_SPEC_CAST_UINT(NM_ENSURE_NOT_NULL(param_spec))->default_value)
+#define NM_G_PARAM_SPEC_GET_DEFAULT_INT64(param_spec) \
+    (NM_G_PARAM_SPEC_CAST_INT64(NM_ENSURE_NOT_NULL(param_spec))->default_value)
 #define NM_G_PARAM_SPEC_GET_DEFAULT_UINT64(param_spec) \
     (NM_G_PARAM_SPEC_CAST_UINT64(NM_ENSURE_NOT_NULL(param_spec))->default_value)
 #define NM_G_PARAM_SPEC_GET_DEFAULT_ENUM(param_spec) \
@@ -1526,15 +1524,15 @@ typedef enum {
 const char *nm_utils_buf_utf8safe_escape(gconstpointer           buf,
                                          gssize                  buflen,
                                          NMUtilsStrUtf8SafeFlags flags,
-                                         char **                 to_free);
+                                         char                  **to_free);
 char *
 nm_utils_buf_utf8safe_escape_cp(gconstpointer buf, gssize buflen, NMUtilsStrUtf8SafeFlags flags);
 const char *
 nm_utils_buf_utf8safe_escape_bytes(GBytes *bytes, NMUtilsStrUtf8SafeFlags flags, char **to_free);
-gconstpointer nm_utils_buf_utf8safe_unescape(const char *            str,
+gconstpointer nm_utils_buf_utf8safe_unescape(const char             *str,
                                              NMUtilsStrUtf8SafeFlags flags,
-                                             gsize *                 out_len,
-                                             gpointer *              to_free);
+                                             gsize                  *out_len,
+                                             gpointer               *to_free);
 
 const char *
 nm_utils_str_utf8safe_escape(const char *str, NMUtilsStrUtf8SafeFlags flags, char **to_free);
@@ -1634,8 +1632,8 @@ nm_g_variant_builder_add_sv(GVariantBuilder *builder, const char *key, GVariant
 
 static inline void
 nm_g_variant_builder_add_sv_bytearray(GVariantBuilder *builder,
-                                      const char *     key,
-                                      const guint8 *   arr,
+                                      const char      *key,
+                                      const guint8    *arr,
                                       gsize            len)
 {
     g_variant_builder_add(builder, "{sv}", key, nm_g_variant_new_ay(arr, len));
@@ -1660,15 +1658,16 @@ nm_g_source_destroy_and_unref(GSource *source)
      * will destroy the user-data of the callback right away (and not only
      * during the last g_source_unref()).
      *
-     * It also means, that if the user data itself has the reference to the
-     * source, then this will lead to crash:
+     * This means for example, if the user data itself has the reference to the
+     * source, then the following would lead to a crash:
      *
      *     g_source_destroy(user_data->my_source);
      *     // ups, user_data was destroyed (if source was attached).
      *     g_source_unref(user_data->my_source);
      *
-     *  nm_g_source_destroy_and_unref() and nm_clear_g_source_inst() does not
-     *  suffer from this problem. */
+     *  nm_g_source_destroy_and_unref(user_data->my_source) and nm_clear_g_source_inst(&user_data->my_source)
+     *  does not have this problem (of course, afterwards, user_data would be a dangling
+     *  pointer). */
     g_source_destroy(source);
     g_source_unref(source);
 }
@@ -1960,12 +1959,12 @@ typedef struct {
 typedef struct {
     union {
         NMUtilsNamedEntry named_entry;
-        const char *      name;
-        char *            name_mutable;
+        const char       *name;
+        char             *name_mutable;
     };
     union {
         const char *value_str;
-        char *      value_str_mutable;
+        char       *value_str_mutable;
         gpointer    value_ptr;
     };
 } NMUtilsNamedValue;
@@ -1976,11 +1975,11 @@ typedef struct {
     }
 
 NMUtilsNamedValue *
-nm_utils_named_values_from_strdict_full(GHashTable *        hash,
-                                        guint *             out_len,
+nm_utils_named_values_from_strdict_full(GHashTable         *hash,
+                                        guint              *out_len,
                                         GCompareDataFunc    compare_func,
                                         gpointer            user_data,
-                                        NMUtilsNamedValue * provided_buffer,
+                                        NMUtilsNamedValue  *provided_buffer,
                                         guint               provided_buffer_len,
                                         NMUtilsNamedValue **out_allocated_buffer);
 
@@ -1995,7 +1994,7 @@ nm_utils_named_values_from_strdict_full(GHashTable *        hash,
 
 gssize nm_utils_named_value_list_find(const NMUtilsNamedValue *arr,
                                       gsize                    len,
-                                      const char *             name,
+                                      const char              *name,
                                       gboolean                 sorted);
 
 gboolean nm_utils_named_value_list_is_sorted(const NMUtilsNamedValue *arr,
@@ -2013,15 +2012,15 @@ void nm_utils_named_value_clear_with_g_free(NMUtilsNamedValue *val);
 
 /*****************************************************************************/
 
-gpointer *nm_utils_hash_keys_to_array(GHashTable *     hash,
+gpointer *nm_utils_hash_keys_to_array(GHashTable      *hash,
                                       GCompareDataFunc compare_func,
                                       gpointer         user_data,
-                                      guint *          out_len);
+                                      guint           *out_len);
 
-gpointer *nm_utils_hash_values_to_array(GHashTable *     hash,
+gpointer *nm_utils_hash_values_to_array(GHashTable      *hash,
                                         GCompareDataFunc compare_func,
                                         gpointer         user_data,
-                                        guint *          out_len);
+                                        guint           *out_len);
 
 static inline const char **
 nm_strdict_get_keys(const GHashTable *hash, gboolean sorted, guint *out_length)
@@ -2078,7 +2077,7 @@ const char **_nm_strv_dup_packed(const char *const *strv, gssize len);
     ({                                                                             \
         const char *const *const _strv    = NM_CAST_STRV_CC(strv);                 \
         const gssize             _len     = (len);                                 \
-        const char **            _result  = NULL;                                  \
+        const char             **_result  = NULL;                                  \
         const char ***const      _to_free = (to_free);                             \
                                                                                    \
         G_STATIC_ASSERT_EXPR((alloca_maxlen) <= 500u / sizeof(const char *));      \
@@ -2177,7 +2176,7 @@ nm_g_ptr_array_unref(GPtrArray *arr)
 #define nm_g_ptr_array_set(pdst, val)                              \
     ({                                                             \
         GPtrArray **_pdst    = (pdst);                             \
-        GPtrArray * _val     = (val);                              \
+        GPtrArray  *_val     = (val);                              \
         gboolean    _changed = FALSE;                              \
                                                                    \
         nm_assert(_pdst);                                          \
@@ -2194,7 +2193,7 @@ nm_g_ptr_array_unref(GPtrArray *arr)
 #define nm_g_ptr_array_set_take(pdst, val)                         \
     ({                                                             \
         GPtrArray **_pdst    = (pdst);                             \
-        GPtrArray * _val     = (val);                              \
+        GPtrArray  *_val     = (val);                              \
         gboolean    _changed = FALSE;                              \
                                                                    \
         nm_assert(_pdst);                                          \
@@ -2222,7 +2221,7 @@ nm_g_ptr_array_pdata(const GPtrArray *arr)
     return arr ? arr->pdata : NULL;
 }
 
-GPtrArray *_nm_g_ptr_array_copy(GPtrArray *    array,
+GPtrArray *_nm_g_ptr_array_copy(GPtrArray     *array,
                                 GCopyFunc      func,
                                 gpointer       user_data,
                                 GDestroyNotify element_free_func);
@@ -2298,25 +2297,25 @@ nm_g_hash_table_remove(GHashTable *hash, gconstpointer key)
 
 /*****************************************************************************/
 
-gboolean nm_utils_ptrarray_is_sorted(gconstpointer *  list,
+gboolean nm_utils_ptrarray_is_sorted(gconstpointer   *list,
                                      gsize            len,
                                      gboolean         require_strict,
                                      GCompareDataFunc cmpfcn,
                                      gpointer         user_data);
 
-gssize nm_utils_ptrarray_find_binary_search(gconstpointer *  list,
+gssize nm_utils_ptrarray_find_binary_search(gconstpointer   *list,
                                             gsize            len,
                                             gconstpointer    needle,
                                             GCompareDataFunc cmpfcn,
                                             gpointer         user_data);
 
-gssize nm_utils_ptrarray_find_binary_search_range(gconstpointer *  list,
+gssize nm_utils_ptrarray_find_binary_search_range(gconstpointer   *list,
                                                   gsize            len,
                                                   gconstpointer    needle,
                                                   GCompareDataFunc cmpfcn,
                                                   gpointer         user_data,
-                                                  gssize *         out_idx_first,
-                                                  gssize *         out_idx_last);
+                                                  gssize          *out_idx_first,
+                                                  gssize          *out_idx_last);
 
 #define nm_strv_find_binary_search(strv, len, needle)                 \
     ({                                                                \
@@ -2546,12 +2545,12 @@ void _nm_utils_user_data_unpack(NMUtilsUserData *user_data, int nargs, ...);
 
 typedef void (*NMUtilsInvokeOnIdleCallback)(gpointer user_data, GCancellable *cancellable);
 
-void nm_utils_invoke_on_idle(GCancellable *              cancellable,
+void nm_utils_invoke_on_idle(GCancellable               *cancellable,
                              NMUtilsInvokeOnIdleCallback callback,
                              gpointer                    callback_user_data);
 
 void nm_utils_invoke_on_timeout(guint                       timeout_msec,
-                                GCancellable *              cancellable,
+                                GCancellable               *cancellable,
                                 NMUtilsInvokeOnIdleCallback callback,
                                 gpointer                    callback_user_data);
 
@@ -2707,15 +2706,15 @@ char *nm_utils_bin2hexstr_full(gconstpointer addr,
                                gsize         length,
                                char          delimiter,
                                gboolean      upper_case,
-                               char *        out);
+                               char         *out);
 
 #define nm_utils_bin2hexstr_a(addr, length, delimiter, upper_case, str_to_free)               \
     ({                                                                                        \
         gconstpointer _addr        = (addr);                                                  \
         gsize         _length      = (length);                                                \
         char          _delimiter   = (delimiter);                                             \
-        char **       _str_to_free = (str_to_free);                                           \
-        char *        _s;                                                                     \
+        char        **_str_to_free = (str_to_free);                                           \
+        char         *_s;                                                                     \
         gsize         _s_len;                                                                 \
                                                                                               \
         nm_assert(_str_to_free);                                                              \
@@ -2748,9 +2747,9 @@ guint8 *nm_utils_hexstr2bin_full(const char *hexstr,
                                  gboolean    hexdigit_pairs_required,
                                  const char *delimiter_candidates,
                                  gsize       required_len,
-                                 guint8 *    buffer,
+                                 guint8     *buffer,
                                  gsize       buffer_len,
-                                 gsize *     out_len);
+                                 gsize      *out_len);
 
 #define nm_utils_hexstr2bin_buf(hexstr,               \
                                 allow_0x_prefix,      \
@@ -2772,7 +2771,7 @@ guint8 *nm_utils_hexstr2bin_alloc(const char *hexstr,
                                   gboolean    delimiter_required,
                                   const char *delimiter_candidates,
                                   gsize       required_len,
-                                  gsize *     out_len);
+                                  gsize      *out_len);
 
 /**
  * _nm_utils_hwaddr_aton:
@@ -2834,7 +2833,7 @@ static inline const char *
 _nm_utils_hwaddr_ntoa(gconstpointer addr,
                       gsize         addr_len,
                       gboolean      upper_case,
-                      char *        buf,
+                      char         *buf,
                       gsize         buf_len)
 {
     g_return_val_if_fail(addr, NULL);
@@ -2952,7 +2951,7 @@ _nm_utils_hwaddr_ntoa(gconstpointer addr,
 
 static inline GTask *
 nm_g_task_new(gpointer            source_object,
-              GCancellable *      cancellable,
+              GCancellable       *cancellable,
               gpointer            source_tag,
               GAsyncReadyCallback callback,
               gpointer            callback_data)
@@ -3143,25 +3142,31 @@ nm_strvarray_remove_first(GArray *strv, const char *needle)
 /*****************************************************************************/
 
 struct _NMVariantAttributeSpec {
-    char *              name;
+    char               *name;
     const GVariantType *type;
     bool                v4 : 1;
     bool                v6 : 1;
     bool                no_value : 1;
     bool                consumes_rest : 1;
-    char                str_type;
+
+    /* This indicates a non-standard parsing behavior. What this is,
+     * depends on the actual validation and how to handle it.
+     *
+     * Note that the entire NMVariantAttributeSpec is internal API,
+     * so we can change behavior and adjust it as it fits. */
+    char type_detail;
 };
 
 typedef struct _NMVariantAttributeSpec NMVariantAttributeSpec;
 
-void _nm_utils_format_variant_attributes_full(GString *                            str,
-                                              const NMUtilsNamedValue *            values,
+void _nm_utils_format_variant_attributes_full(GString                             *str,
+                                              const NMUtilsNamedValue             *values,
                                               guint                                num_values,
                                               const NMVariantAttributeSpec *const *spec,
                                               char                                 attr_separator,
                                               char key_value_separator);
 
-char *_nm_utils_format_variant_attributes(GHashTable *                         attributes,
+char *_nm_utils_format_variant_attributes(GHashTable                          *attributes,
                                           const NMVariantAttributeSpec *const *spec,
                                           char                                 attr_separator,
                                           char                                 key_value_separator);
@@ -3172,7 +3177,7 @@ gboolean nm_utils_is_localhost(const char *name);
 
 gboolean nm_utils_is_specific_hostname(const char *name);
 
-char *   nm_utils_uid_to_name(uid_t uid);
+char    *nm_utils_uid_to_name(uid_t uid);
 gboolean nm_utils_name_to_uid(const char *name, uid_t *out_uid);
 
 /*****************************************************************************/
@@ -3183,8 +3188,8 @@ double nm_utils_exp10(gint16 e);
 
 gboolean _nm_utils_is_empty_ssid_arr(const guint8 *ssid, gsize len);
 gboolean _nm_utils_is_empty_ssid_gbytes(GBytes *ssid);
-char *   _nm_utils_ssid_to_string_arr(const guint8 *ssid, gsize len);
-char *   _nm_utils_ssid_to_string_gbytes(GBytes *ssid);
+char    *_nm_utils_ssid_to_string_arr(const guint8 *ssid, gsize len);
+char    *_nm_utils_ssid_to_string_gbytes(GBytes *ssid);
 
 /*****************************************************************************/
 
@@ -3207,7 +3212,7 @@ void nm_crypto_md5_hash(const guint8 *salt,
                         gsize         salt_len,
                         const guint8 *password,
                         gsize         password_len,
-                        guint8 *      buffer,
+                        guint8       *buffer,
                         gsize         buflen);
 
 /*****************************************************************************/
diff --git a/src/libnm-glib-aux/nm-str-buf.h b/src/libnm-glib-aux/nm-str-buf.h
index 7a7f580c..47d1f055 100644
--- a/src/libnm-glib-aux/nm-str-buf.h
+++ b/src/libnm-glib-aux/nm-str-buf.h
@@ -348,7 +348,7 @@ nm_utils_escaped_tokens_escape_strbuf(const char *str, const char *delimiters, N
 static inline void
 nm_utils_escaped_tokens_escape_strbuf_assert(const char *str,
                                              const char *delimiters,
-                                             NMStrBuf *  strbuf)
+                                             NMStrBuf   *strbuf)
 {
     nm_str_buf_append(strbuf, nm_utils_escaped_tokens_escape_unnecessary(str, delimiters));
 }
diff --git a/src/libnm-glib-aux/nm-test-utils.h b/src/libnm-glib-aux/nm-test-utils.h
index 253aaf0e..caf43d5f 100644
--- a/src/libnm-glib-aux/nm-test-utils.h
+++ b/src/libnm-glib-aux/nm-test-utils.h
@@ -104,7 +104,7 @@
 #define nmtst_assert_error(error, expect_error_domain, expect_error_code, expect_error_pattern) \
     G_STMT_START                                                                                \
     {                                                                                           \
-        GError *    _error                = (error);                                            \
+        GError     *_error                = (error);                                            \
         GQuark      _expect_error_domain  = (expect_error_domain);                              \
         const char *_expect_error_pattern = (expect_error_pattern);                             \
                                                                                                 \
@@ -182,6 +182,23 @@
     }                                           \
     G_STMT_END
 
+#define nmtst_assert_strv(strv, ...)                              \
+    G_STMT_START                                                  \
+    {                                                             \
+        const char *const *const _strv  = (strv);                 \
+        const char *const        _exp[] = {__VA_ARGS__, NULL};    \
+        const gsize              _n     = G_N_ELEMENTS(_exp) - 1; \
+        gsize                    _i;                              \
+                                                                  \
+        g_assert(_n == NM_NARG(__VA_ARGS__));                     \
+        g_assert(_strv);                                          \
+        for (_i = 0; _i < _n; _i++) {                             \
+            g_assert(_exp[_i]);                                   \
+            g_assert_cmpstr(_strv[_i], ==, _exp[_i]);             \
+        }                                                         \
+    }                                                             \
+    G_STMT_END
+
 /*****************************************************************************/
 
 /* Our nm-error error numbers use negative values to signal failure.
@@ -204,16 +221,16 @@
 /*****************************************************************************/
 
 struct __nmtst_internal {
-    GRand *  rand0;
+    GRand   *rand0;
     guint32  rand_seed;
-    GRand *  rand;
+    GRand   *rand;
     gboolean is_debug;
     gboolean assert_logging;
     gboolean no_expect_message;
     gboolean test_quick;
     gboolean test_tap_log;
-    char *   sudo_cmd;
-    char **  orig_argv;
+    char    *sudo_cmd;
+    char   **orig_argv;
 };
 
 extern struct __nmtst_internal __nmtst_internal;
@@ -255,7 +272,7 @@ static inline char **
 nmtst_str_split(char *str, const char *delimiters)
 {
     const char *d;
-    GArray *    result = g_array_sized_new(TRUE, FALSE, sizeof(char *), 3);
+    GArray     *result = g_array_sized_new(TRUE, FALSE, sizeof(char *), 3);
 
     g_assert(str);
     g_assert(delimiters && !strchr(delimiters, '\\'));
@@ -312,35 +329,35 @@ nmtst_free(void)
 }
 
 static inline void
-_nmtst_log_handler(const char *   log_domain,
+_nmtst_log_handler(const char    *log_domain,
                    GLogLevelFlags log_level,
-                   const char *   message,
+                   const char    *message,
                    gpointer       user_data)
 {
     g_print("%s\n", message);
 }
 
 static inline void
-__nmtst_init(int *       argc,
-             char ***    argv,
+__nmtst_init(int        *argc,
+             char     ***argv,
              gboolean    assert_logging,
              const char *log_level,
              const char *log_domains,
-             gboolean *  out_set_logging)
-{
-    const char *      nmtst_debug;
-    gboolean          is_debug    = FALSE;
-    char *            c_log_level = NULL, *c_log_domains = NULL;
-    char *            sudo_cmd       = NULL;
-    GArray *          debug_messages = g_array_new(TRUE, FALSE, sizeof(char *));
-    int               i;
-    gboolean          no_expect_message = FALSE;
-    gboolean          _out_set_logging;
-    gboolean          test_quick         = FALSE;
-    gboolean          test_quick_set     = FALSE;
-    gboolean          test_quick_argv    = FALSE;
-    gs_unref_ptrarray GPtrArray *p_tests = NULL;
-    gs_unref_ptrarray GPtrArray *s_tests = NULL;
+             gboolean   *out_set_logging)
+{
+    const char                  *nmtst_debug;
+    gboolean                     is_debug    = FALSE;
+    char                        *c_log_level = NULL, *c_log_domains = NULL;
+    char                        *sudo_cmd       = NULL;
+    GArray                      *debug_messages = g_array_new(TRUE, FALSE, sizeof(char *));
+    int                          i;
+    gboolean                     no_expect_message = FALSE;
+    gboolean                     _out_set_logging;
+    gboolean                     test_quick      = FALSE;
+    gboolean                     test_quick_set  = FALSE;
+    gboolean                     test_quick_argv = FALSE;
+    gs_unref_ptrarray GPtrArray *p_tests         = NULL;
+    gs_unref_ptrarray GPtrArray *s_tests         = NULL;
 
     if (!out_set_logging)
         out_set_logging = &_out_set_logging;
@@ -471,10 +488,10 @@ __nmtst_init(int *       argc,
         /* g_test_init() sets g_log_set_always_fatal() for G_LOG_LEVEL_WARNING
          * and G_LOG_LEVEL_CRITICAL. So, beware that the test will fail if you
          * have any WARN or ERR log messages -- unless you g_test_expect_message(). */
-        GPtrArray *    arg_array   = g_ptr_array_new();
+        GPtrArray     *arg_array   = g_ptr_array_new();
         gs_free char **arg_array_c = NULL;
         int            arg_array_n, j;
-        static char ** s_tests_x, **p_tests_x;
+        static char  **s_tests_x, **p_tests_x;
 
         if (*argc) {
             for (i = 0; i < *argc; i++)
@@ -628,7 +645,7 @@ __nmtst_init(int *       argc,
      * add "/bin" and "/sbin" to $PATH for all tests. */
     {
         static char *path_new;
-        const char * path_old;
+        const char  *path_old;
 
         g_assert(!path_new);
 
@@ -692,6 +709,17 @@ nmtst_test_quick(void)
     return __nmtst_internal.test_quick;
 }
 
+static inline gboolean
+nmtst_test_skip_slow(void)
+{
+    if (!nmtst_test_quick())
+        return FALSE;
+
+    g_print("Skipping test: don't run long running test %s (NMTST_DEBUG=slow)\n", g_get_prgname());
+    g_test_skip("Skip long running test");
+    return TRUE;
+}
+
 #if GLIB_CHECK_VERSION(2, 34, 0)
 #undef g_test_expect_message
 #define g_test_expect_message(...)                                                   \
@@ -747,10 +775,10 @@ typedef void (*NmtstTestHandler)(const NmtstTestData *test_data);
 struct _NmtstTestData {
     union {
         const char *testpath;
-        char *      _testpath;
+        char       *_testpath;
     };
     gsize            n_args;
-    gpointer *       args;
+    gpointer        *args;
     NmtstTestHandler _func_setup;
     GTestDataFunc    _func_test;
     NmtstTestHandler _func_teardown;
@@ -804,7 +832,7 @@ _nmtst_test_run(gconstpointer data)
 }
 
 static inline void
-_nmtst_add_test_func_full(const char *     testpath,
+_nmtst_add_test_func_full(const char      *testpath,
                           GTestDataFunc    func_test,
                           NmtstTestHandler func_setup,
                           NmtstTestHandler func_teardown,
@@ -874,7 +902,7 @@ nmtst_get_rand(void)
             g_rand_set_seed(__nmtst_internal.rand, seed);
         } else {
             /* NMTST_SEED_RAND is set. Use it as a seed. */
-            char * s;
+            char  *s;
             gint64 i;
 
             i = g_ascii_strtoll(str, &s, 0);
@@ -1067,7 +1095,7 @@ nmtst_stable_rand(guint64 seed, gpointer buf, gsize len)
 {
     const guint64 C = 1442695040888963407llu;
     const guint64 A = 6364136223846793005llu;
-    guint8 *      b;
+    guint8       *b;
     union {
         guint8  a[sizeof(guint64)];
         guint64 n;
@@ -1203,7 +1231,7 @@ static inline gboolean
 nmtst_main_loop_run(GMainLoop *loop, guint timeout_msec)
 {
     nm_auto_unref_gsource GSource *source = NULL;
-    GMainLoop *                    loopx  = loop;
+    GMainLoop                     *loopx  = loop;
 
     if (timeout_msec > 0) {
         source = g_timeout_source_new(timeout_msec);
@@ -1244,7 +1272,7 @@ _nmtst_main_loop_quit_on_notify(GObject *object, GParamSpec *pspec, gpointer use
     ({                                                                                          \
         nm_auto_destroy_and_unref_gsource GSource *_source_timeout = NULL;                      \
         nm_auto_destroy_and_unref_gsource GSource *_source_poll    = NULL;                      \
-        GMainContext *                             _context        = (context);                 \
+        GMainContext                              *_context        = (context);                 \
         gboolean                                   _had_timeout    = FALSE;                     \
         typeof(timeout_msec)                       _timeout_msec0  = (timeout_msec);            \
         typeof(poll_msec)                          _poll_msec0     = (poll_msec);               \
@@ -1319,7 +1347,7 @@ nmtst_main_context_assert_no_dispatch(GMainContext *context, guint timeout_msec)
 typedef struct {
     GMainLoop *_main_loop;
     union {
-        GSList *          _list;
+        GSList           *_list;
         const void *const is_waiting;
     };
 } NMTstContextBusyWatcherData;
@@ -1328,7 +1356,7 @@ static inline void
 _nmtst_context_busy_watcher_add_cb(gpointer data, GObject *where_the_object_was)
 {
     NMTstContextBusyWatcherData *watcher_data = data;
-    GSList *                     l;
+    GSList                      *l;
 
     g_assert(watcher_data);
 
@@ -1389,7 +1417,7 @@ nmtst_get_sudo_cmd(void)
 static inline void
 nmtst_reexec_sudo(void)
 {
-    char * str;
+    char  *str;
     char **argv;
     int    i;
     int    errsv;
@@ -1426,7 +1454,7 @@ nmtst_find_all_indexes(gpointer *elements,
                        gsize     n_needles,
                        gboolean (*equal_fcn)(gpointer element, gpointer needle, gpointer user_data),
                        gpointer user_data,
-                       gssize * out_idx)
+                       gssize  *out_idx)
 {
     gsize i, j, k;
     gsize found = 0;
@@ -1489,13 +1517,13 @@ __define_nmtst_static(01, 1024) __define_nmtst_static(02, 1024) __define_nmtst_s
 #if defined(__NM_UTILS_H__) || defined(NM_UTILS_H)
 
 #define NMTST_UUID_INIT(uuid)                                          \
-    gs_free char *    _nmtst_hidden_##uuid = nm_utils_uuid_generate(); \
+    gs_free char     *_nmtst_hidden_##uuid = nm_utils_uuid_generate(); \
     const char *const uuid                 = _nmtst_hidden_##uuid
 
     static inline const char *nmtst_uuid_generate(void)
 {
     static _nm_thread_local char u[37];
-    gs_free char *               m = NULL;
+    gs_free char                *m = NULL;
 
     m = nm_utils_uuid_generate();
     g_assert(m && strlen(m) == sizeof(u) - 1);
@@ -1609,10 +1637,10 @@ _nmtst_assert_ip4_address(const char *file, int line, in_addr_t addr, const char
     _nmtst_assert_ip4_address(__FILE__, __LINE__, addr, str_expected)
 
 static inline void
-_nmtst_assert_ip6_address(const char *           file,
+_nmtst_assert_ip6_address(const char            *file,
                           int                    line,
                           const struct in6_addr *addr,
-                          const char *           str_expected)
+                          const char            *str_expected)
 {
     struct in6_addr any = in6addr_any;
 
@@ -1650,20 +1678,20 @@ _nmtst_assert_ip6_address(const char *           file,
                        ##__VA_ARGS__,                                                            \
                        NULL)
 static inline int __nmtst_spawn_sync(const char *working_directory,
-                                     char **     standard_out,
-                                     char **     standard_err,
+                                     char      **standard_out,
+                                     char      **standard_err,
                                      int         assert_exit_status,
                                      ...) G_GNUC_NULL_TERMINATED;
 static inline int
 __nmtst_spawn_sync(const char *working_directory,
-                   char **     standard_out,
-                   char **     standard_err,
+                   char      **standard_out,
+                   char      **standard_err,
                    int         assert_exit_status,
                    ...)
 {
     int        exit_status = 0;
-    GError *   error       = NULL;
-    char *     arg;
+    GError    *error       = NULL;
+    char      *arg;
     va_list    va_args;
     GPtrArray *argv = g_ptr_array_new();
     gboolean   success;
@@ -1724,9 +1752,9 @@ nmtst_file_resolve_relative_path(const char *rel, const char *cwd)
 static inline char *
 nmtst_file_get_contents(const char *filename)
 {
-    GError * error = NULL;
+    GError  *error = NULL;
     gboolean success;
-    char *   contents = NULL;
+    char    *contents = NULL;
     gsize    len;
 
     success = g_file_get_contents(filename, &contents, &len, &error);
@@ -1738,7 +1766,7 @@ nmtst_file_get_contents(const char *filename)
 #define nmtst_file_set_contents_size(filename, content, size)                 \
     G_STMT_START                                                              \
     {                                                                         \
-        GError *    _error = NULL;                                            \
+        GError     *_error = NULL;                                            \
         gboolean    _success;                                                 \
         const char *_content = (content);                                     \
         gssize      _size    = (size);                                        \
@@ -1924,9 +1952,9 @@ nmtst_setting_ip_config_add_address(NMSettingIPConfig *s_ip, const char *address
 
 static inline void
 nmtst_setting_ip_config_add_route(NMSettingIPConfig *s_ip,
-                                  const char *       dest,
+                                  const char        *dest,
                                   guint              prefix,
-                                  const char *       next_hop,
+                                  const char        *next_hop,
                                   gint64             metric)
 {
     NMIPRoute *route;
@@ -2030,15 +2058,15 @@ nmtst_clone_connection(NMConnection *connection)
 }
 
 static inline NMConnection *
-nmtst_create_minimal_connection(const char *          id,
-                                const char *          uuid,
-                                const char *          type,
+nmtst_create_minimal_connection(const char           *id,
+                                const char           *uuid,
+                                const char           *type,
                                 NMSettingConnection **out_s_con)
 {
-    NMConnection *       con;
-    NMSetting *          s_base = NULL;
+    NMConnection        *con;
+    NMSetting           *s_base = NULL;
     NMSettingConnection *s_con;
-    gs_free char *       uuid_free = NULL;
+    gs_free char        *uuid_free = NULL;
 
     g_assert(id);
 
@@ -2095,7 +2123,7 @@ nmtst_create_minimal_connection(const char *          id,
 static inline gboolean
 _nmtst_connection_normalize_v(NMConnection *connection, va_list args)
 {
-    GError *    error = NULL;
+    GError     *error = NULL;
     gboolean    success;
     gboolean    was_modified = FALSE;
     GHashTable *parameters   = NULL;
@@ -2156,10 +2184,10 @@ nmtst_assert_connection_equals(NMConnection *a,
                                NMConnection *b,
                                gboolean      normalize_b)
 {
-    gboolean        compare;
+    gboolean                      compare;
     gs_unref_object NMConnection *a2           = NULL;
     gs_unref_object NMConnection *b2           = NULL;
-    GHashTable *                  out_settings = NULL;
+    GHashTable                   *out_settings = NULL;
 
     g_assert(NM_IS_CONNECTION(a));
     g_assert(NM_IS_CONNECTION(b));
@@ -2171,8 +2199,8 @@ nmtst_assert_connection_equals(NMConnection *a,
 
     compare = nm_connection_diff(a, b, NM_SETTING_COMPARE_FLAG_EXACT, &out_settings);
     if (!compare || out_settings) {
-        const char *   name, *pname;
-        GHashTable *   setting;
+        const char    *name, *pname;
+        GHashTable    *setting;
         GHashTableIter iter, iter2;
 
         __NMTST_LOG(g_message, ">>> ASSERTION nmtst_assert_connection_equals() fails");
@@ -2190,7 +2218,7 @@ nmtst_assert_connection_equals(NMConnection *a,
 #ifdef __NM_KEYFILE_INTERNAL_H__
         {
             nm_auto_unref_keyfile GKeyFile *kf_a = NULL, *kf_b = NULL;
-            gs_free char *                  str_a = NULL, *str_b = NULL;
+            gs_free char                   *str_a = NULL, *str_b = NULL;
 
             kf_a = nm_keyfile_write(a, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, NULL);
             kf_b = nm_keyfile_write(b, NM_KEYFILE_HANDLER_FLAGS_NONE, NULL, NULL, NULL);
@@ -2222,7 +2250,7 @@ static inline void
 nmtst_assert_connection_verifies(NMConnection *con)
 {
     /* assert that the connection does verify, it might be normaliziable or not */
-    GError * error = NULL;
+    GError  *error = NULL;
     gboolean success;
 
     g_assert(NM_IS_CONNECTION(con));
@@ -2236,10 +2264,10 @@ static inline void
 nmtst_assert_connection_verifies_without_normalization(NMConnection *con)
 {
     /* assert that the connection verifies and does not need any normalization */
-    GError *        error = NULL;
-    gboolean        success;
-    gboolean        was_modified        = FALSE;
-    gs_unref_object NMConnection *clone = NULL;
+    GError                       *error = NULL;
+    gboolean                      success;
+    gboolean                      was_modified = FALSE;
+    gs_unref_object NMConnection *clone        = NULL;
 
     clone = nmtst_clone_connection(con);
 
@@ -2256,10 +2284,10 @@ static inline void
 nmtst_assert_connection_verifies_and_normalizable(NMConnection *con)
 {
     /* assert that the connection does verify, but normalization still modifies it */
-    GError *        error = NULL;
-    gboolean        success;
-    gboolean        was_modified        = FALSE;
-    gs_unref_object NMConnection *clone = NULL;
+    GError                       *error = NULL;
+    gboolean                      success;
+    gboolean                      was_modified = FALSE;
+    gs_unref_object NMConnection *clone        = NULL;
 
     clone = nmtst_clone_connection(con);
 
@@ -2280,10 +2308,10 @@ nmtst_assert_connection_verifies_after_normalization(NMConnection *con,
                                                      int           expect_error_code)
 {
     /* assert that the connection does not verify, but normalization does fix it */
-    GError *        error = NULL;
-    gboolean        success;
-    gboolean        was_modified        = FALSE;
-    gs_unref_object NMConnection *clone = NULL;
+    GError                       *error = NULL;
+    gboolean                      success;
+    gboolean                      was_modified = FALSE;
+    gs_unref_object NMConnection *clone        = NULL;
 
     clone = nmtst_clone_connection(con);
 
@@ -2308,10 +2336,10 @@ nmtst_assert_connection_unnormalizable(NMConnection *con,
 {
     /* assert that the connection does not verify, and it cannot be fixed by normalization */
 
-    GError *        error = NULL;
-    gboolean        success;
-    gboolean        was_modified        = FALSE;
-    gs_unref_object NMConnection *clone = NULL;
+    GError                       *error = NULL;
+    gboolean                      success;
+    gboolean                      was_modified = FALSE;
+    gs_unref_object NMConnection *clone        = NULL;
 
     clone = nmtst_clone_connection(con);
 
@@ -2333,7 +2361,7 @@ nmtst_assert_setting_verifies(NMSetting *setting)
 {
     /* assert that the setting verifies without an error */
 
-    GError * error = NULL;
+    GError  *error = NULL;
     gboolean success;
 
     g_assert(NM_IS_SETTING(setting));
@@ -2351,12 +2379,12 @@ _nmtst_assert_connection_has_settings(NMConnection *connection,
                                       gboolean      has_at_most,
                                       ...)
 {
-    gs_unref_hashtable GHashTable *names = NULL;
-    gs_free NMSetting **settings         = NULL;
-    va_list             ap;
-    const char *        name;
-    guint               i, len;
-    gs_unref_ptrarray GPtrArray *names_arr = NULL;
+    gs_unref_hashtable GHashTable *names    = NULL;
+    gs_free NMSetting            **settings = NULL;
+    va_list                        ap;
+    const char                    *name;
+    guint                          i, len;
+    gs_unref_ptrarray GPtrArray   *names_arr = NULL;
 
     g_assert(NM_IS_CONNECTION(connection));
 
@@ -2382,9 +2410,9 @@ _nmtst_assert_connection_has_settings(NMConnection *connection,
         }
     }
     if (g_hash_table_size(names) > 0 && has_at_least) {
-        gs_free char *       expected_str   = g_strjoinv(" ", (char **) names_arr->pdata);
+        gs_free char        *expected_str   = g_strjoinv(" ", (char **) names_arr->pdata);
         gs_free const char **settings_names = NULL;
-        gs_free char *       has_str        = NULL;
+        gs_free char        *has_str        = NULL;
 
         settings_names = g_new0(const char *, len + 1);
         for (i = 0; i < len; i++)
@@ -2413,7 +2441,7 @@ nmtst_assert_setting_verify_fails(NMSetting *setting,
 {
     /* assert that the setting verification fails */
 
-    GError * error = NULL;
+    GError  *error = NULL;
     gboolean success;
 
     g_assert(NM_IS_SETTING(setting));
@@ -2452,7 +2480,7 @@ nmtst_assert_setting_is_equal(gconstpointer /* const NMSetting * */ a,
 static inline NMSetting *
 nmtst_assert_setting_dbus_new(GType gtype, GVariant *variant)
 {
-    NMSetting *   setting;
+    NMSetting            *setting;
     gs_free_error GError *error = NULL;
 
     g_assert(g_type_is_a(gtype, NM_TYPE_SETTING));
@@ -2484,8 +2512,8 @@ nmtst_assert_setting_dbus_roundtrip(gconstpointer /* const NMSetting * */ settin
 static inline void
 nmtst_assert_hwaddr_equals(gconstpointer hwaddr1,
                            gssize        hwaddr1_len,
-                           const char *  expected,
-                           const char *  file,
+                           const char   *expected,
+                           const char   *file,
                            int           line)
 {
     guint8      buf2[NM_UTILS_HWADDR_LEN_MAX];
@@ -2531,11 +2559,11 @@ static inline NMConnection *
 nmtst_create_connection_from_keyfile(const char *keyfile_str, const char *full_filename)
 {
     nm_auto_unref_keyfile GKeyFile *keyfile = NULL;
-    gs_free_error GError *error             = NULL;
-    gboolean              success;
-    NMConnection *        con;
-    gs_free char *        filename = g_path_get_basename(full_filename);
-    gs_free char *        base_dir = g_path_get_dirname(full_filename);
+    gs_free_error GError           *error   = NULL;
+    gboolean                        success;
+    NMConnection                   *con;
+    gs_free char                   *filename = g_path_get_basename(full_filename);
+    gs_free char                   *base_dir = g_path_get_dirname(full_filename);
 
     g_assert(keyfile_str);
     g_assert(full_filename && full_filename[0] == '/');
@@ -2568,8 +2596,8 @@ _nmtst_variant_new_vardict(int dummy, ...)
 {
     GVariantBuilder builder;
     va_list         ap;
-    const char *    name;
-    GVariant *      variant;
+    const char     *name;
+    GVariant       *variant;
 
     g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
 
@@ -2608,7 +2636,7 @@ _nmtst_variant_new_vardict(int dummy, ...)
     G_STMT_START                                                          \
     {                                                                     \
         gsize       _l;                                                   \
-        GVariant *  _variant = (variant);                                 \
+        GVariant   *_variant = (variant);                                 \
         const char *_str     = (str);                                     \
                                                                           \
         nmtst_assert_variant_is_of_type(_variant, G_VARIANT_TYPE_STRING); \
@@ -2625,8 +2653,8 @@ _nmtst_variant_new_vardict(int dummy, ...)
         if (memcmp(_ptr2, _ptr, _len) != 0) {                                            \
             gs_free char *_x1 = NULL;                                                    \
             gs_free char *_x2 = NULL;                                                    \
-            const char *  _xx1;                                                          \
-            const char *  _xx2;                                                          \
+            const char   *_xx1;                                                          \
+            const char   *_xx2;                                                          \
                                                                                          \
             _xx1 = nm_utils_buf_utf8safe_escape(_ptr,                                    \
                                                 _len,                                    \
@@ -2650,7 +2678,7 @@ _nmtst_variant_new_vardict(int dummy, ...)
 #define nmtst_assert_variant_bytestring(variant, ptr, len)                    \
     G_STMT_START                                                              \
     {                                                                         \
-        GVariant *    _variant = (variant);                                   \
+        GVariant     *_variant = (variant);                                   \
         gconstpointer _ptr     = (ptr);                                       \
         gconstpointer _ptr2;                                                  \
         gsize         _len = (len);                                           \
@@ -2677,8 +2705,8 @@ typedef enum {
     {                                                                              \
         GVariantIter            __connection_iter, *__setting_iter;                \
         GVariantBuilder         __connection_builder, __setting_builder;           \
-        const char *            __cur_setting_name, *__cur_property_name;          \
-        GVariant *              __property_val;                                    \
+        const char             *__cur_setting_name, *__cur_property_name;          \
+        GVariant               *__property_val;                                    \
         NmtstVariantEditorPhase __phase;                                           \
                                                                                    \
         g_variant_builder_init(&__connection_builder, NM_VARIANT_TYPE_CONNECTION); \
@@ -2790,7 +2818,7 @@ static inline GVariant *
 nmtst_variant_from_string(const GVariantType *variant_type, const char *variant_str)
 {
     GVariant *variant;
-    GError *  error = NULL;
+    GError   *error = NULL;
 
     g_assert(variant_type);
     g_assert(variant_str);
@@ -2805,13 +2833,13 @@ nmtst_variant_from_string(const GVariantType *variant_type, const char *variant_
 static inline void
 nmtst_keyfile_assert_data(GKeyFile *kf, const char *data, gssize data_len)
 {
-    nm_auto_unref_keyfile GKeyFile *kf2 = NULL;
-    gs_free_error GError *error         = NULL;
-    gs_free char *        d1            = NULL;
-    gs_free char *        d2            = NULL;
-    gboolean              success;
-    gsize                 d1_len;
-    gsize                 d2_len;
+    nm_auto_unref_keyfile GKeyFile *kf2   = NULL;
+    gs_free_error GError           *error = NULL;
+    gs_free char                   *d1    = NULL;
+    gs_free char                   *d2    = NULL;
+    gboolean                        success;
+    gsize                           d1_len;
+    gsize                           d2_len;
 
     g_assert(kf);
     g_assert(data || data_len == 0);
@@ -2843,7 +2871,7 @@ nmtst_keyfile_assert_data(GKeyFile *kf, const char *data, gssize data_len)
 static inline gssize
 nmtst_keyfile_get_num_keys(GKeyFile *keyfile, const char *group_name)
 {
-    gs_strfreev char **keys     = NULL;
+    gs_strfreev char    **keys  = NULL;
     gs_free_error GError *error = NULL;
     gsize                 l     = 0;
 
@@ -2871,7 +2899,7 @@ nmtst_ip_address_new(int addr_family, const char *str)
 {
     NMIPAddr     addr;
     int          plen;
-    GError *     error = NULL;
+    GError      *error = NULL;
     NMIPAddress *a;
 
     if (!nm_utils_parse_inaddr_prefix_bin(addr_family, str, &addr_family, &addr, &plen))
diff --git a/src/libnm-glib-aux/nm-uuid.c b/src/libnm-glib-aux/nm-uuid.c
index e7f67c70..19b09667 100644
--- a/src/libnm-glib-aux/nm-uuid.c
+++ b/src/libnm-glib-aux/nm-uuid.c
@@ -45,7 +45,7 @@ gboolean
 nm_uuid_parse_full(const char *str, NMUuid *out_uuid, gboolean *out_is_normalized)
 {
     NMUuid   uuid;
-    guint8 * p;
+    guint8  *p;
     int      i;
     gboolean is_normalized = TRUE;
 
@@ -194,8 +194,8 @@ nm_uuid_is_valid_nmlegacy(const char *str)
 
 gboolean
 nm_uuid_is_valid_nm(const char *str,
-                    gboolean *  out_normalized,
-                    char *      out_normalized_str /* [static 37] */)
+                    gboolean   *out_normalized,
+                    char       *out_normalized_str /* [static 37] */)
 {
     NMUuid   uuid;
     gboolean is_normalized;
@@ -310,8 +310,8 @@ nm_uuid_generate_random_str(char buf[static 37])
  * Returns: the input @uuid. This function cannot fail.
  **/
 NMUuid *
-nm_uuid_generate_from_string(NMUuid *      uuid,
-                             const char *  s,
+nm_uuid_generate_from_string(NMUuid       *uuid,
+                             const char   *s,
                              gssize        slen,
                              NMUuidType    uuid_type,
                              const NMUuid *type_args)
@@ -382,14 +382,20 @@ nm_uuid_generate_from_string(NMUuid *      uuid,
  * object's #NMSettingConnection:id: property
  **/
 char *
-nm_uuid_generate_from_string_str(const char *  s,
+nm_uuid_generate_from_string_str(const char   *s,
                                  gssize        slen,
                                  NMUuidType    uuid_type,
                                  const NMUuid *type_args)
 {
-    NMUuid uuid;
+    NMUuid        uuid;
+    const NMUuid *u;
+
+    u = nm_uuid_generate_from_string(&uuid, s, slen, uuid_type, type_args);
+
+    if (G_UNLIKELY(!u))
+        return nm_assert_unreachable_val(NULL);
+    nm_assert(u == &uuid);
 
-    nm_uuid_generate_from_string(&uuid, s, slen, uuid_type, type_args);
     return nm_uuid_unparse(&uuid, g_new(char, 37));
 }
 
@@ -415,7 +421,7 @@ nm_uuid_generate_from_strings(const char *string1, ...)
     {
         nm_auto_str_buf NMStrBuf str = NM_STR_BUF_INIT(NM_UTILS_GET_NEXT_REALLOC_SIZE_104, FALSE);
         va_list                  args;
-        const char *             s;
+        const char              *s;
 
         nm_str_buf_append_len(&str, string1, strlen(string1) + 1u);
 
diff --git a/src/libnm-glib-aux/nm-uuid.h b/src/libnm-glib-aux/nm-uuid.h
index 504ec789..15b03a2d 100644
--- a/src/libnm-glib-aux/nm-uuid.h
+++ b/src/libnm-glib-aux/nm-uuid.h
@@ -76,8 +76,8 @@ nm_uuid_is_normalized(const char *str)
 gboolean nm_uuid_is_valid_nmlegacy(const char *str);
 
 gboolean nm_uuid_is_valid_nm(const char *str,
-                             gboolean *  out_normalized,
-                             char *      out_normalized_str /* [static 37] */);
+                             gboolean   *out_normalized,
+                             char       *out_normalized_str /* [static 37] */);
 
 /*****************************************************************************/
 
@@ -109,13 +109,13 @@ typedef enum {
     NM_UUID_TYPE_VERSION5 = 5,
 } NMUuidType;
 
-NMUuid *nm_uuid_generate_from_string(NMUuid *      uuid,
-                                     const char *  s,
+NMUuid *nm_uuid_generate_from_string(NMUuid       *uuid,
+                                     const char   *s,
                                      gssize        slen,
                                      NMUuidType    uuid_type,
                                      const NMUuid *type_args);
 
-char *nm_uuid_generate_from_string_str(const char *  s,
+char *nm_uuid_generate_from_string_str(const char   *s,
                                        gssize        slen,
                                        NMUuidType    uuid_type,
                                        const NMUuid *type_args);
diff --git a/src/libnm-glib-aux/nm-value-type.h b/src/libnm-glib-aux/nm-value-type.h
index 0addeec6..d774e120 100644
--- a/src/libnm-glib-aux/nm-value-type.h
+++ b/src/libnm-glib-aux/nm-value-type.h
@@ -44,7 +44,7 @@ typedef union {
 
     /* for convenience, also let the union contain other pointer types. These are
      * for NM_VALUE_TYPE_UNSPEC. */
-    gconstpointer *  v_ptr;
+    gconstpointer   *v_ptr;
     const GPtrArray *v_ptrarray;
 
 } NMValueTypUnion;
@@ -181,7 +181,7 @@ nm_value_type_copy(NMValueType value_type, gpointer dst, gconstpointer src)
 static inline void
 nm_value_type_get_from_variant(NMValueType value_type,
                                gpointer    dst,
-                               GVariant *  variant,
+                               GVariant   *variant,
                                gboolean    clone)
 {
     switch (value_type) {
@@ -230,7 +230,7 @@ nm_value_type_get_from_variant(NMValueType value_type,
 static inline GVariant *
 nm_value_type_to_variant(NMValueType value_type, gconstpointer src)
 {
-    const char *  v_string;
+    const char   *v_string;
     const GBytes *v_bytes;
 
     switch (value_type) {
diff --git a/src/libnm-glib-aux/tests/test-json-aux.c b/src/libnm-glib-aux/tests/test-json-aux.c
index 5f33f4fe..32462a29 100644
--- a/src/libnm-glib-aux/tests/test-json-aux.c
+++ b/src/libnm-glib-aux/tests/test-json-aux.c
@@ -13,7 +13,7 @@
 static void
 test_jansson(void)
 {
-    const NMJsonVt *    vt;
+    const NMJsonVt                *vt;
     nm_auto_decref_json nm_json_t *js1 = NULL;
     nm_auto_decref_json nm_json_t *js2 = NULL;
 
diff --git a/src/libnm-glib-aux/tests/test-shared-general.c b/src/libnm-glib-aux/tests/test-shared-general.c
index 9674f228..ecba02e0 100644
--- a/src/libnm-glib-aux/tests/test-shared-general.c
+++ b/src/libnm-glib-aux/tests/test-shared-general.c
@@ -35,7 +35,7 @@ test_nm_static_assert(void)
 {
     int                                v1[NM_STATIC_ASSERT_EXPR_1(1)];
     typeof(NM_STATIC_ASSERT_EXPR_1(1)) v_int;
-    int *                              p_int;
+    int                               *p_int;
 
     G_STATIC_ASSERT(sizeof(v1) == sizeof(int));
     G_STATIC_ASSERT(NM_STATIC_ASSERT_EXPR_1(1) == 1);
@@ -218,7 +218,7 @@ test_nm_strndup_a(void)
 
         {
             gs_free char *dup_free = NULL;
-            const char *  dup;
+            const char   *dup;
 
             l   = strlen(input) + 1;
             dup = nm_strndup_a(10, input, l - 1, &dup_free);
@@ -231,7 +231,7 @@ test_nm_strndup_a(void)
 
         {
             gs_free char *dup_free = NULL;
-            const char *  dup;
+            const char   *dup;
 
             l   = nmtst_get_rand_uint32() % 23;
             dup = nm_strndup_a(10, input, l, &dup_free);
@@ -321,10 +321,10 @@ test_unaligned(void)
 /*****************************************************************************/
 
 static void
-_strv_cmp_fuzz_input(const char *const * in,
+_strv_cmp_fuzz_input(const char *const  *in,
                      gssize              l,
-                     const char ***      out_strv_free_shallow,
-                     char ***            out_strv_free_deep,
+                     const char       ***out_strv_free_shallow,
+                     char             ***out_strv_free_deep,
                      const char *const **out_s1,
                      const char *const **out_s2)
 {
@@ -402,12 +402,12 @@ test_strv_cmp(void)
     {                                                                                               \
         gssize               _l1 = (l1);                                                            \
         gssize               _l2 = (l2);                                                            \
-        const char *const *  _a1;                                                                   \
-        const char *const *  _a2;                                                                   \
-        const char *const *  _a1x;                                                                  \
-        const char *const *  _a2x;                                                                  \
-        char **              _a1_free_deep    = NULL;                                               \
-        char **              _a2_free_deep    = NULL;                                               \
+        const char *const   *_a1;                                                                   \
+        const char *const   *_a2;                                                                   \
+        const char *const   *_a1x;                                                                  \
+        const char *const   *_a2x;                                                                  \
+        char               **_a1_free_deep    = NULL;                                               \
+        char               **_a2_free_deep    = NULL;                                               \
         gs_free const char **_a1_free_shallow = NULL;                                               \
         gs_free const char **_a2_free_shallow = NULL;                                               \
         int                  _c1, _c2;                                                              \
@@ -468,8 +468,8 @@ _do_strstrip_avoid_copy(const char *str)
     gs_free char *str2 = g_strdup(str);
     gs_free char *str3 = NULL;
     gs_free char *str4 = NULL;
-    const char *  s3;
-    const char *  s4;
+    const char   *s3;
+    const char   *s4;
 
     if (str1)
         g_strstrip(str1);
@@ -528,11 +528,11 @@ test_nm_utils_bin2hexstr(void)
         gboolean upper_case = nmtst_get_rand_bool();
         gboolean hexdigit_pairs_mangled;
         gsize    expected_strlen;
-        char *   str_hex;
+        char    *str_hex;
         gsize    required_len;
         gboolean outlen_set;
         gsize    outlen;
-        guint8 * bin2;
+        guint8  *bin2;
         guint    i, j;
 
         nmtst_rand_buf(NULL, buf, len);
@@ -647,15 +647,22 @@ static void
 test_nm_ref_string(void)
 {
     nm_auto_ref_string NMRefString *s1 = NULL;
-    NMRefString *                   s2;
+    NMRefString                    *s2;
 
     g_assert(NULL == NM_REF_STRING_UPCAST(NULL));
+    g_assert(nm_ref_string_equal_str(NULL, NULL));
+    g_assert(!nm_ref_string_equal_str(NULL, ""));
+    g_assert(!nm_ref_string_equal_str(NULL, "a"));
 
     s1 = nm_ref_string_new("hallo");
     g_assert(s1);
     g_assert_cmpstr(s1->str, ==, "hallo");
     g_assert_cmpint(s1->len, ==, strlen("hallo"));
     g_assert(s1 == NM_REF_STRING_UPCAST(s1->str));
+    g_assert(nm_ref_string_equal_str(s1, "hallo"));
+    g_assert(!nm_ref_string_equal_str(s1, "hallox"));
+    g_assert(!nm_ref_string_equal_str(s1, "hall"));
+    g_assert(!nm_ref_string_equal_str(s1, NULL));
 
     s2 = nm_ref_string_new("hallo");
     g_assert(s2 == s1);
@@ -672,6 +679,7 @@ test_nm_ref_string(void)
     g_assert_cmpint(s2->len, ==, NM_STRLEN(STR_WITH_NUL));
     g_assert_cmpint(s2->len, >, strlen(s2->str));
     g_assert_cmpmem(s2->str, s2->len, STR_WITH_NUL, NM_STRLEN(STR_WITH_NUL));
+    g_assert(!nm_ref_string_equal_str(s2, "hallo"));
     g_assert(s2->str[s2->len] == '\0');
     nm_ref_string_unref(s2);
 }
@@ -909,8 +917,8 @@ test_nm_str_buf(void)
     guint i_run;
 
     for (i_run = 0; TRUE; i_run++) {
-        nm_auto_str_buf NMStrBuf strbuf    = {};
-        nm_auto_free_gstring GString *gstr = NULL;
+        nm_auto_str_buf NMStrBuf      strbuf = {};
+        nm_auto_free_gstring GString *gstr   = NULL;
         int                           i, j, k;
         int                           c;
 
@@ -1102,7 +1110,7 @@ test_strv_dup_packed(void)
     for (i_run = 0; i_run < 500; i_run++) {
         const int            strv_len = nmtst_get_rand_word_length(NULL);
         gs_free const char **strv_cpy = NULL;
-        const char *const *  strv_src;
+        const char *const   *strv_src;
         int                  i, j;
 
         g_ptr_array_set_size(src, 0);