summary refs log tree commit diff
path: root/libnm/nm-libnm-utils.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
committerMichael Biebl <biebl@debian.org>2020-10-05 22:27:18 +0200
commitaafc1dbe4712c86189bbc1d4d54ad8cb4c69be7e (patch)
treea2a9bb4d007339a0b1304540388230ccedac32bd /libnm/nm-libnm-utils.c
parente7b44ef4c80907346ec7492a09c45277459924fc (diff)
New upstream version 1.27.90 upstream/1.27.90
Diffstat (limited to 'libnm/nm-libnm-utils.c')
-rw-r--r--libnm/nm-libnm-utils.c1587
1 files changed, 796 insertions, 791 deletions
diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c
index f8d1ff56..9c27f64d 100644
--- a/libnm/nm-libnm-utils.c
+++ b/libnm/nm-libnm-utils.c
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: LGPL-2.1+
+/* SPDX-License-Identifier: LGPL-2.1+ */
 /*
  * Copyright (C) 2007 - 2008 Novell, Inc.
  * Copyright (C) 2007 - 2018 Red Hat, Inc.
@@ -17,850 +17,855 @@
 volatile int _nml_dbus_log_level = 0;
 
 int
-_nml_dbus_log_level_init (void)
+_nml_dbus_log_level_init(void)
 {
-	const GDebugKey keys[] = {
-		{ "trace",   _NML_DBUS_LOG_LEVEL_TRACE },
-		{ "debug",   _NML_DBUS_LOG_LEVEL_DEBUG },
-		{ "warning", _NML_DBUS_LOG_LEVEL_WARN },
-		{ "error",   _NML_DBUS_LOG_LEVEL_ERROR },
-	};
-	int l;
-
-	l =   _NML_DBUS_LOG_LEVEL_INITIALIZED
-	    | nm_utils_parse_debug_string (g_getenv ("LIBNM_CLIENT_DEBUG"),
-	                                   keys,
-	                                   G_N_ELEMENTS (keys));
-
-	if (!g_atomic_int_compare_and_exchange (&_nml_dbus_log_level, 0, l))
-		l = g_atomic_int_get (&_nml_dbus_log_level);
-
-	nm_assert (l & _NML_DBUS_LOG_LEVEL_INITIALIZED);
-	return l;
+    const GDebugKey keys[] = {
+        {"trace", _NML_DBUS_LOG_LEVEL_TRACE},
+        {"debug", _NML_DBUS_LOG_LEVEL_DEBUG},
+        {"warning", _NML_DBUS_LOG_LEVEL_WARN},
+        {"error", _NML_DBUS_LOG_LEVEL_ERROR},
+        {"stdout", NML_DBUS_LOG_STDOUT},
+    };
+    int l;
+
+    l = _NML_DBUS_LOG_LEVEL_INITIALIZED
+        | nm_utils_parse_debug_string(g_getenv("LIBNM_CLIENT_DEBUG"), keys, G_N_ELEMENTS(keys));
+
+    if (!g_atomic_int_compare_and_exchange(&_nml_dbus_log_level, 0, l))
+        l = g_atomic_int_get(&_nml_dbus_log_level);
+
+    nm_assert(l & _NML_DBUS_LOG_LEVEL_INITIALIZED);
+    return l;
 }
 
 void
-_nml_dbus_log (NMLDBusLogLevel level,
-               const char *fmt,
-               ...) {
-	NMLDBusLogLevel configured_log_level;
-	gs_free char *msg = NULL;
-	va_list args;
-	const char *prefix = "";
-	gint64 ts;
-
-	/* we only call _nml_dbus_log() after nml_dbus_log_enabled(), which already does
-	 * an atomic access to the variable. Since the value is only initialized once and
-	 * never changes, we can just access it without additional locking. */
-	configured_log_level = _nml_dbus_log_level;
-
-	nm_assert (level & configured_log_level);
-
-	va_start (args, fmt);
-	msg = g_strdup_vprintf (fmt, args);
-	va_end (args);
-
-	switch (level) {
-	case NML_DBUS_LOG_LEVEL_TRACE:
-		prefix = "<trace> ";
-		break;
-	case NML_DBUS_LOG_LEVEL_DEBUG:
-		prefix = "<debug> ";
-		break;
-	case NML_DBUS_LOG_LEVEL_WARN:
-		prefix = "<warn > ";
-		if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) {
-			g_warning ("libnm-dbus: %s%s", prefix, msg);
-			return;
-		}
-		break;
-	case NML_DBUS_LOG_LEVEL_ERROR:
-		prefix = "<error> ";
-		if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_ERROR)) {
-			g_critical ("libnm-dbus: %s%s", prefix, msg);
-			return;
-		}
-		if (NM_FLAGS_HAS (configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) {
-			g_warning ("libnm-dbus: %s%s", prefix, msg);
-			return;
-		}
-		break;
-	default:
-		break;
-	}
-
-	ts = nm_utils_clock_gettime_nsec (CLOCK_BOOTTIME);
-
-	g_printerr ("libnm-dbus: %s[%"G_GINT64_FORMAT".%05"G_GINT64_FORMAT"] %s\n",
-	            prefix,
-	            ts / NM_UTILS_NSEC_PER_SEC,
-	            (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000,
-	            msg);
+_nml_dbus_log(NMLDBusLogLevel level, gboolean use_stdout, const char *fmt, ...)
+{
+    NMLDBusLogLevel configured_log_level;
+    gs_free char *  msg = NULL;
+    va_list         args;
+    const char *    prefix = "";
+    gint64          ts;
+
+    /* we only call _nml_dbus_log() after nml_dbus_log_enabled(), which already does
+     * an atomic access to the variable. Since the value is only initialized once and
+     * never changes, we can just access it without additional locking. */
+    configured_log_level = _nml_dbus_log_level;
+
+    nm_assert(level & configured_log_level);
+
+    va_start(args, fmt);
+    msg = g_strdup_vprintf(fmt, args);
+    va_end(args);
+
+    switch (level) {
+    case NML_DBUS_LOG_LEVEL_TRACE:
+        prefix = "<trace> ";
+        break;
+    case NML_DBUS_LOG_LEVEL_DEBUG:
+        prefix = "<debug> ";
+        break;
+    case NML_DBUS_LOG_LEVEL_WARN:
+        prefix = "<warn > ";
+        if (NM_FLAGS_HAS(configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) {
+            g_warning("libnm-dbus: %s%s", prefix, msg);
+            return;
+        }
+        break;
+    case NML_DBUS_LOG_LEVEL_ERROR:
+        prefix = "<error> ";
+        if (NM_FLAGS_HAS(configured_log_level, _NML_DBUS_LOG_LEVEL_ERROR)) {
+            g_critical("libnm-dbus: %s%s", prefix, msg);
+            return;
+        }
+        if (NM_FLAGS_HAS(configured_log_level, _NML_DBUS_LOG_LEVEL_WARN)) {
+            g_warning("libnm-dbus: %s%s", prefix, msg);
+            return;
+        }
+        break;
+    default:
+        break;
+    }
+
+    ts = nm_utils_clock_gettime_nsec(CLOCK_BOOTTIME);
+
+    if (use_stdout) {
+        g_print("libnm-dbus: %s[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s\n",
+                prefix,
+                ts / NM_UTILS_NSEC_PER_SEC,
+                (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000,
+                msg);
+    } else {
+        g_printerr("libnm-dbus: %s[%" G_GINT64_FORMAT ".%05" G_GINT64_FORMAT "] %s\n",
+                   prefix,
+                   ts / NM_UTILS_NSEC_PER_SEC,
+                   (ts / (NM_UTILS_NSEC_PER_SEC / 10000)) % 10000,
+                   msg);
+    }
 }
 
 /*****************************************************************************/
 
 /* Stolen from dbus-glib */
 char *
-nm_utils_wincaps_to_dash (const char *caps)
+nm_utils_wincaps_to_dash(const char *caps)
 {
-	const char *p;
-	GString *str;
-
-	str = g_string_new (NULL);
-	p = caps;
-	while (*p) {
-		if (g_ascii_isupper (*p)) {
-			if (str->len > 0 && (str->len < 2 || str->str[str->len-2] != '-'))
-				g_string_append_c (str, '-');
-			g_string_append_c (str, g_ascii_tolower (*p));
-		} else
-			g_string_append_c (str, *p);
-		++p;
-	}
-
-	return g_string_free (str, FALSE);
+    const char *p;
+    GString *   str;
+
+    str = g_string_new(NULL);
+    p   = caps;
+    while (*p) {
+        if (g_ascii_isupper(*p)) {
+            if (str->len > 0 && (str->len < 2 || str->str[str->len - 2] != '-'))
+                g_string_append_c(str, '-');
+            g_string_append_c(str, g_ascii_tolower(*p));
+        } else
+            g_string_append_c(str, *p);
+        ++p;
+    }
+
+    return g_string_free(str, FALSE);
 }
 
 /*****************************************************************************/
 
 static char *
-_fixup_string (const char *desc,
-               const char *const *ignored_phrases,
-               const char *const *ignored_words,
-               gboolean square_brackets_sensible)
+_fixup_string(const char *       desc,
+              const char *const *ignored_phrases,
+              const char *const *ignored_words,
+              gboolean           square_brackets_sensible)
 {
-	char *desc_full;
-	gboolean in_paren = FALSE;
-	char *p, *q;
-	int i;
-
-	if (!desc || !desc[0])
-		return NULL;
-
-	/* restore original non-UTF-8-safe text. */
-	desc_full = nm_utils_str_utf8safe_unescape_cp (desc, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE);
-
-	/* replace all invalid UTF-8 bytes with space. */
-	p = desc_full;
-	while (!g_utf8_validate (p, -1, (const char **) &q)) {
-		/* the byte is invalid UTF-8. Replace it with space and proceed. */
-		*q = ' ';
-		p = q + 1;
-	}
-
-	/* replace '_', ',', ASCII control characters and parentheses, with space. */
-	for (p = desc_full; p[0]; p++) {
-		if (*p == '(')
-			in_paren = TRUE;
-		if (   NM_IN_SET (*p, '_', ',')
-		    || *p < ' '
-		    || in_paren)
-			*p = ' ';
-		if (*p == ')')
-			in_paren = FALSE;
-	}
-
-	/* Attempt to shorten ID by ignoring certain phrases */
-	for (i = 0; ignored_phrases[i]; i++) {
-		p = strstr (desc_full, ignored_phrases[i]);
-		if (p) {
-			const char *eow = &p[strlen (ignored_phrases[i])];
-
-			/* require that the phrase is delimited by space, or
-			 * at the beginning or end of the description. */
-			if (   (p == desc_full || p[-1] == ' ')
-			    && NM_IN_SET (eow[0], '\0', ' '))
-				memmove (p, eow, strlen (eow) + 1); /* +1 for the \0 */
-		}
-	}
-
-	/* Attempt to shorten ID by ignoring certain individual words.
-	 * - word-split the description at spaces
-	 * - coalesce multiple spaces
-	 * - skip over ignored_words */
-	p = desc_full;
-	q = desc_full;
-	for (;;) {
-		char *eow;
-		gsize l;
-
-		/* skip leading spaces. */
-		while (p[0] == ' ')
-			p++;
-
-		if (!p[0])
-			break;
-
-		/* split leading word on first space */
-		eow = strchr (p, ' ');
-		if (eow)
-			*eow = '\0';
-
-		if (nm_utils_strv_find_first ((char **) ignored_words, -1, p) >= 0)
-			goto next;
-
-		l = strlen (p);
-		if (q != p) {
-			if (q != desc_full)
-				*q++ = ' ';
-			memmove (q, p, l);
-		}
-		q += l;
+    char *   desc_full;
+    gboolean in_paren = FALSE;
+    char *   p, *q;
+    int      i;
+
+    if (!desc || !desc[0])
+        return NULL;
+
+    /* restore original non-UTF-8-safe text. */
+    desc_full = nm_utils_str_utf8safe_unescape_cp(desc, NM_UTILS_STR_UTF8_SAFE_FLAG_NONE);
+
+    /* replace all invalid UTF-8 bytes with space. */
+    p = desc_full;
+    while (!g_utf8_validate(p, -1, (const char **) &q)) {
+        /* the byte is invalid UTF-8. Replace it with space and proceed. */
+        *q = ' ';
+        p  = q + 1;
+    }
+
+    /* replace '_', ',', ASCII control characters and parentheses, with space. */
+    for (p = desc_full; p[0]; p++) {
+        if (*p == '(')
+            in_paren = TRUE;
+        if (NM_IN_SET(*p, '_', ',') || *p < ' ' || in_paren)
+            *p = ' ';
+        if (*p == ')')
+            in_paren = FALSE;
+    }
+
+    /* Attempt to shorten ID by ignoring certain phrases */
+    for (i = 0; ignored_phrases[i]; i++) {
+        p = strstr(desc_full, ignored_phrases[i]);
+        if (p) {
+            const char *eow = &p[strlen(ignored_phrases[i])];
+
+            /* require that the phrase is delimited by space, or
+             * at the beginning or end of the description. */
+            if ((p == desc_full || p[-1] == ' ') && NM_IN_SET(eow[0], '\0', ' '))
+                memmove(p, eow, strlen(eow) + 1); /* +1 for the \0 */
+        }
+    }
+
+    /* Attempt to shorten ID by ignoring certain individual words.
+     * - word-split the description at spaces
+     * - coalesce multiple spaces
+     * - skip over ignored_words */
+    p = desc_full;
+    q = desc_full;
+    for (;;) {
+        char *eow;
+        gsize l;
+
+        /* skip leading spaces. */
+        while (p[0] == ' ')
+            p++;
+
+        if (!p[0])
+            break;
+
+        /* split leading word on first space */
+        eow = strchr(p, ' ');
+        if (eow)
+            *eow = '\0';
+
+        if (nm_utils_strv_find_first((char **) ignored_words, -1, p) >= 0)
+            goto next;
+
+        l = strlen(p);
+        if (q != p) {
+            if (q != desc_full)
+                *q++ = ' ';
+            memmove(q, p, l);
+        }
+        q += l;
 
 next:
-		if (!eow)
-			break;
-		p = eow + 1;
-	}
-
-	*q++ = '\0';
-
-	p = strchr (desc_full, '[');
-	if (p == desc_full) {
-		/* All we're left with is in square brackets.
-		 * Always prefer that to a blank string.*/
-		square_brackets_sensible = TRUE;
-	}
-	if (square_brackets_sensible) {
-		/* If there's a [<string>] that survived the substitution, then the string
-		 * is a short form that is generally preferable. */
-		q = strchr (desc_full, ']');
-		if (p && q > p) {
-			p++;
-			memmove (desc_full, p, q - p);
-			desc_full[q - p] = '\0';
-		}
-	} else {
-		/* [<string>] sometimes contains the preferred human-readable name, but
-		 * mostly it's utterly useless. Sigh. Drop it. */
-		if (p) {
-			if (p > desc_full && p[-1] == ' ')
-				p--;
-			*p = '\0';
-		}
-	}
-
-	if (!desc_full[0]) {
-		g_free (desc_full);
-		return NULL;
-	}
-
-	return desc_full;
+        if (!eow)
+            break;
+        p = eow + 1;
+    }
+
+    *q++ = '\0';
+
+    p = strchr(desc_full, '[');
+    if (p == desc_full) {
+        /* All we're left with is in square brackets.
+         * Always prefer that to a blank string.*/
+        square_brackets_sensible = TRUE;
+    }
+    if (square_brackets_sensible) {
+        /* If there's a [<string>] that survived the substitution, then the string
+         * is a short form that is generally preferable. */
+        q = strchr(desc_full, ']');
+        if (p && q > p) {
+            p++;
+            memmove(desc_full, p, q - p);
+            desc_full[q - p] = '\0';
+        }
+    } else {
+        /* [<string>] sometimes contains the preferred human-readable name, but
+         * mostly it's utterly useless. Sigh. Drop it. */
+        if (p) {
+            if (p > desc_full && p[-1] == ' ')
+                p--;
+            *p = '\0';
+        }
+    }
+
+    if (!desc_full[0]) {
+        g_free(desc_full);
+        return NULL;
+    }
+
+    return desc_full;
 }
 
 char *
-nm_utils_fixup_vendor_string (const char *desc)
+nm_utils_fixup_vendor_string(const char *desc)
 {
-	static const char *const IGNORED_PHRASES[] = {
-		"Access Systems",
-		"Business Mobile Networks BV",
-		"Communications & Multimedia",
-		"Company of Japan",
-		"Computer Co.",
-		"Computer Corp.",
-		"Computer Corporation",
-		"Computer Inc.",
-		"Computer, Inc.",
-		"Information and Communication Products",
-		"Macao Commercial Offshore",
-		"Mobile Phones",
-		"(M) Son",
-		"Multimedia Internet Technology",
-		"Technology Group Ltd.",
-		"Wireless Networks",
-		"Wireless Solutions",
-		NULL,
-	};
-	static const char *const IGNORED_WORDS[] = {
-		"AB",
-		"AG",
-		"A/S",
-		"ASA",
-		"B.V.",
-		"Chips",
-		"Co.",
-		"Co",
-		"Communications",
-		"Components",
-		"Computers",
-		"Computertechnik",
-		"corp.",
-		"Corp.",
-		"Corp",
-		"Corporation",
-		"Design",
-		"Electronics",
-		"Enterprise",
-		"Enterprises",
-		"Europe",
-		"GmbH",
-		"Hardware",
-		"[hex]",
-		"Holdings",
-		"Inc.",
-		"Inc",
-		"INC.",
-		"Incorporated",
-		"Instruments",
-		"International",
-		"Intl.",
-		"Labs",
-		"Limited.",
-		"Limited",
-		"Ltd.",
-		"Ltd",
-		"Microelectronics",
-		"Microsystems",
-		"MSM",
-		"Multimedia",
-		"Networks",
-		"Norway",
-		"Optical",
-		"PCS",
-		"Semiconductor",
-		"Systems",
-		"Systemtechnik",
-		"Techcenter",
-		"Technik",
-		"Technologies",
-		"Technology",
-		"TECHNOLOGY",
-		"Telephonics",
-		"USA",
-		"WCDMA",
-		NULL,
-	};
-	char *desc_full;
-	char *p;
-
-	desc_full = _fixup_string (desc, IGNORED_PHRASES, IGNORED_WORDS, TRUE);
-	if (!desc_full)
-		return NULL;
-
-	/* Chop off everything after a slash. */
-	for (p = desc_full; *p; p++) {
-		if ((p[0] == ' ' && p[1] == '/') || p[0] == '/') {
-			p[0] = '\0';
-			break;
-		}
-	}
-
-	nm_assert (g_utf8_validate (desc_full, -1, NULL));
-
-	return desc_full;
+    static const char *const IGNORED_PHRASES[] = {
+        "Access Systems",
+        "Business Mobile Networks BV",
+        "Communications & Multimedia",
+        "Company of Japan",
+        "Computer Co.",
+        "Computer Corp.",
+        "Computer Corporation",
+        "Computer Inc.",
+        "Computer, Inc.",
+        "Information and Communication Products",
+        "Macao Commercial Offshore",
+        "Mobile Phones",
+        "(M) Son",
+        "Multimedia Internet Technology",
+        "Technology Group Ltd.",
+        "Wireless Networks",
+        "Wireless Solutions",
+        NULL,
+    };
+    static const char *const IGNORED_WORDS[] = {
+        "AB",
+        "AG",
+        "A/S",
+        "ASA",
+        "B.V.",
+        "Chips",
+        "Co.",
+        "Co",
+        "Communications",
+        "Components",
+        "Computers",
+        "Computertechnik",
+        "corp.",
+        "Corp.",
+        "Corp",
+        "Corporation",
+        "Design",
+        "Electronics",
+        "Enterprise",
+        "Enterprises",
+        "Europe",
+        "GmbH",
+        "Hardware",
+        "[hex]",
+        "Holdings",
+        "Inc.",
+        "Inc",
+        "INC.",
+        "Incorporated",
+        "Instruments",
+        "International",
+        "Intl.",
+        "Labs",
+        "Limited.",
+        "Limited",
+        "Ltd.",
+        "Ltd",
+        "Microelectronics",
+        "Microsystems",
+        "MSM",
+        "Multimedia",
+        "Networks",
+        "Norway",
+        "Optical",
+        "PCS",
+        "Semiconductor",
+        "Systems",
+        "Systemtechnik",
+        "Techcenter",
+        "Technik",
+        "Technologies",
+        "Technology",
+        "TECHNOLOGY",
+        "Telephonics",
+        "USA",
+        "WCDMA",
+        NULL,
+    };
+    char *desc_full;
+    char *p;
+
+    desc_full = _fixup_string(desc, IGNORED_PHRASES, IGNORED_WORDS, TRUE);
+    if (!desc_full)
+        return NULL;
+
+    /* Chop off everything after a slash. */
+    for (p = desc_full; *p; p++) {
+        if ((p[0] == ' ' && p[1] == '/') || p[0] == '/') {
+            p[0] = '\0';
+            break;
+        }
+    }
+
+    nm_assert(g_utf8_validate(desc_full, -1, NULL));
+
+    return desc_full;
 }
 
 char *
-nm_utils_fixup_product_string (const char *desc)
+nm_utils_fixup_product_string(const char *desc)
 {
-	static const char *const IGNORED_PHRASES[] = {
-		"100/10 MBit",
-		"10/100 Mbps",
-		"1.0 GbE",
-		"10 GbE",
-		"10 Gigabit",
-		"10 Mbps",
-		"1/10 Gigabit",
-		"150 Mbps",
-		"2.5 GbE",
-		"54 Mbps",
-		"Attached Port",
-		"+ BT",
-		"\"CDC Subset\"",
-		"CE Media Processor",
-		"Controller Area Network",
-		"Converged Network",
-		"DEC-Tulip compatible",
-		"Dish Adapter",
-		"Double 108 Mbps",
-		"Dual Band",
-		"Dual Port",
-		"Embedded UTP",
-		"Ethernet Connection",
-		"Ethernet Pro 100",
-		"Express Module",
-		"Fabric Adapter",
-		"Fast Ethernet",
-		"for 10GBASE-T" ,
-		"for 10GbE backplane" ,
-		"for 10GbE QSFP+" ,
-		"for 10GbE SFP+" ,
-		"for 1GbE",
-		"for 20GbE backplane" ,
-		"for 25GbE backplane" ,
-		"for 25GbE SFP28" ,
-		"for 40GbE backplane" ,
-		"for 40GbE QSFP+" ,
-		"G Adapter",
-		"Gigabit Desktop Network",
-		"Gigabit Ethernet",
-		"Gigabit or",
-		"Host Interface",
-		"Host Virtual Interface",
-		"IEEE 802.11a/b/g",
-		"IEEE 802.11g",
-		"IEEE 802.11G",
-		"IEEE 802.11n",
-		"MAC + PHY",
-		"Mini Card",
-		"Mini Wireless",
-		"multicore SoC",
-		"Multi Function",
-		"N Draft 11n Wireless",
-		"Network Connection",
-		"Network Everywhere",
-		"N Wireless",
-		"N+ Wireless",
-		"OCT To Fast Ethernet Converter",
-		"PC Card",
-		"PCI Express",
-		"Platform Controller Hub",
-		"Plus Bluetooth",
-		"Quad Gigabit",
-		"rev 1",
-		"rev 17",
-		"rev 2",
-		"rev A",
-		"rev B",
-		"rev F",
-		"TO Ethernet",
-		"Turbo Wireless Adapter",
-		"Unified Wire",
-		"USB 1.1",
-		"USB 2.0",
-		"Virtual media for",
-		"WiFi Link",
-		"+ WiMAX",
-		"WiMAX/WiFi Link",
-		"Wireless G",
-		"Wireless G+",
-		"Wireless Lan",
-		"Wireless Mini adapter",
-		"Wireless Mini Adapter",
-		"Wireless N",
-		"with 1000-BASE-T interface",
-		"with CX4 copper interface",
-		"with Range Amplifier",
-		"with SR-XFP optical interface",
-		"w/ Upgradable Antenna",
-		NULL,
-	};
-	static const char *const IGNORED_WORDS[] = {
-		"1000BaseSX",
-		"1000BASE-T",
-		"1000Base-ZX",
-		"100/10M",
-		"100baseFx",
-		"100Base-MII",
-		"100Base-T",
-		"100BaseT4",
-		"100Base-TX",
-		"100BaseTX",
-		"100GbE",
-		"100Mbps",
-		"100MBps",
-		"10/100",
-		"10/100/1000",
-		"10/100/1000Base-T",
-		"10/100/1000BASE-T",
-		"10/100BaseT",
-		"10/100baseTX",
-		"10/100BaseTX",
-		"10/100/BNC",
-		"10/100M",
-		"10/20-Gigabit",
-		"10/25/40/50GbE",
-		"10/40G",
-		"10base-FL",
-		"10BaseT",
-		"10BASE-T",
-		"10G",
-		"10Gb",
-		"10Gb/25Gb",
-		"10Gb/25Gb/40Gb/50Gb",
-		"10Gbase-T",
-		"10GBase-T",
-		"10GBASE-T",
-		"10GbE",
-		"10Gbps",
-		"10-Giga",
-		"10-Gigabit",
-		"10mbps",
-		"10Mbps",
-		"1/10GbE",
-		"1/10-Gigabit",
-		"11b/g/n",
-		"11g",
-		"150Mbps",
-		"16Gbps/10Gbps",
-		"1GbE",
-		"1x2:2",
-		"20GbE",
-		"25Gb",
-		"25GbE",
-		"2-Port",
-		"2x3:3",
-		"3G",
-		"3G/4G",
-		"3x3:3",
-		"40GbE",
-		"4G",
-		"54g",
-		"54M",
-		"54Mbps",
-		"56k",
-		"5G",
-		"802.11",
-		"802.11a/b/g",
-		"802.11abg",
-		"802.11a/b/g/n",
-		"802.11abgn",
-		"802.11ac",
-		"802.11ad",
-		"802.11a/g",
-		"802.11b",
-		"802.11b/g",
-		"802.11bg",
-		"802.11b/g/n",
-		"802.11bgn",
-		"802.11b/g/n-draft",
-		"802.11g",
-		"802.11n",
-		"802.11N",
-		"802.11n/b/g",
-		"802.11ng",
-		"802AIN",
-		"802UIG-1",
-		"adapter",
-		"Adapter",
-		"adaptor",
-		"ADSL",
-		"Basic",
-		"CAN-Bus",
-		"card",
-		"Card",
-		"Cardbus",
-		"CardBus",
-		"CDMA",
-		"CNA",
-		"Composite",
-		"controller",
-		"Controller",
-		"Copper",
-		"DB",
-		"Desktop",
-		"device",
-		"Device",
-		"dongle",
-		"driver",
-		"Dual-band",
-		"Dual-Protocol",
-		"EISA",
-		"Enhanced",
-		"ethernet.",
-		"ethernet",
-		"Ethernet",
-		"Ethernet/RNDIS",
-		"ExpressModule",
-		"family",
-		"Family",
-		"Fast/Gigabit",
-		"Fiber",
-		"gigabit",
-		"Gigabit",
-		"G-NIC",
-		"Hi-Gain",
-		"Hi-Speed",
-		"HSDPA",
-		"HSUPA",
-		"integrated",
-		"Integrated",
-		"interface",
-		"LAN",
-		"LAN+Winmodem",
-		"Laptop",
-		"LTE",
-		"LTE/UMTS/GSM",
-		"MAC",
-		"Micro",
-		"Mini-Card",
-		"Mini-USB",
-		"misprogrammed",
-		"modem",
-		"Modem",
-		"Modem/Networkcard",
-		"Module",
-		"Multimode",
-		"Multithreaded",
-		"Name:",
-		"net",
-		"network",
-		"Network",
-		"n/g/b",
-		"NIC",
-		"Notebook",
-		"OEM",
-		"PCI",
-		"PCI64",
-		"PCIe",
-		"PCI-E",
-		"PCI-Express",
-		"PCI-X",
-		"PCMCIA",
-		"PDA",
-		"PnP",
-		"RDMA",
-		"RJ-45",
-		"Series",
-		"Server",
-		"SoC",
-		"Switch",
-		"Technologies",
-		"TOE",
-		"USB",
-		"USB2.0",
-		"USB/Ethernet",
-		"UTP",
-		"UTP/Coax",
-		"v1",
-		"v1.1",
-		"v2",
-		"V2.0",
-		"v3",
-		"v4",
-		"wifi",
-		"Wi-Fi",
-		"WiFi",
-		"wireless",
-		"Wireless",
-		"Wireless-150N",
-		"Wireless-300N",
-		"Wireless-G",
-		"Wireless-N",
-		"WLAN",
-		NULL,
-	};
-	char *desc_full;
-	char *p;
-
-	desc_full = _fixup_string (desc, IGNORED_PHRASES, IGNORED_WORDS, FALSE);
-	if (!desc_full)
-		return NULL;
-
-	/* Chop off everything after a '-'. */
-	for (p = desc_full; *p; p++) {
-		if (p[0] == ' ' && p[1] == '-' && p[2] == ' ') {
-			p[0] = '\0';
-			break;
-		}
-	}
-
-	nm_assert (g_utf8_validate (desc_full, -1, NULL));
-
-	return desc_full;
+    static const char *const IGNORED_PHRASES[] = {
+        "100/10 MBit",
+        "10/100 Mbps",
+        "1.0 GbE",
+        "10 GbE",
+        "10 Gigabit",
+        "10 Mbps",
+        "1/10 Gigabit",
+        "150 Mbps",
+        "2.5 GbE",
+        "54 Mbps",
+        "Attached Port",
+        "+ BT",
+        "\"CDC Subset\"",
+        "CE Media Processor",
+        "Controller Area Network",
+        "Converged Network",
+        "DEC-Tulip compatible",
+        "Dish Adapter",
+        "Double 108 Mbps",
+        "Dual Band",
+        "Dual Port",
+        "Embedded UTP",
+        "Ethernet Connection",
+        "Ethernet Pro 100",
+        "Express Module",
+        "Fabric Adapter",
+        "Fast Ethernet",
+        "for 10GBASE-T",
+        "for 10GbE backplane",
+        "for 10GbE QSFP+",
+        "for 10GbE SFP+",
+        "for 1GbE",
+        "for 20GbE backplane",
+        "for 25GbE backplane",
+        "for 25GbE SFP28",
+        "for 40GbE backplane",
+        "for 40GbE QSFP+",
+        "G Adapter",
+        "Gigabit Desktop Network",
+        "Gigabit Ethernet",
+        "Gigabit or",
+        "Host Interface",
+        "Host Virtual Interface",
+        "IEEE 802.11a/b/g",
+        "IEEE 802.11g",
+        "IEEE 802.11G",
+        "IEEE 802.11n",
+        "MAC + PHY",
+        "Mini Card",
+        "Mini Wireless",
+        "multicore SoC",
+        "Multi Function",
+        "N Draft 11n Wireless",
+        "Network Connection",
+        "Network Everywhere",
+        "N Wireless",
+        "N+ Wireless",
+        "OCT To Fast Ethernet Converter",
+        "PC Card",
+        "PCI Express",
+        "Platform Controller Hub",
+        "Plus Bluetooth",
+        "Quad Gigabit",
+        "rev 1",
+        "rev 17",
+        "rev 2",
+        "rev A",
+        "rev B",
+        "rev F",
+        "TO Ethernet",
+        "Turbo Wireless Adapter",
+        "Unified Wire",
+        "USB 1.1",
+        "USB 2.0",
+        "Virtual media for",
+        "WiFi Link",
+        "+ WiMAX",
+        "WiMAX/WiFi Link",
+        "Wireless G",
+        "Wireless G+",
+        "Wireless Lan",
+        "Wireless Mini adapter",
+        "Wireless Mini Adapter",
+        "Wireless N",
+        "with 1000-BASE-T interface",
+        "with CX4 copper interface",
+        "with Range Amplifier",
+        "with SR-XFP optical interface",
+        "w/ Upgradable Antenna",
+        NULL,
+    };
+    static const char *const IGNORED_WORDS[] = {
+        "1000BaseSX",
+        "1000BASE-T",
+        "1000Base-ZX",
+        "100/10M",
+        "100baseFx",
+        "100Base-MII",
+        "100Base-T",
+        "100BaseT4",
+        "100Base-TX",
+        "100BaseTX",
+        "100GbE",
+        "100Mbps",
+        "100MBps",
+        "10/100",
+        "10/100/1000",
+        "10/100/1000Base-T",
+        "10/100/1000BASE-T",
+        "10/100BaseT",
+        "10/100baseTX",
+        "10/100BaseTX",
+        "10/100/BNC",
+        "10/100M",
+        "10/20-Gigabit",
+        "10/25/40/50GbE",
+        "10/40G",
+        "10base-FL",
+        "10BaseT",
+        "10BASE-T",
+        "10G",
+        "10Gb",
+        "10Gb/25Gb",
+        "10Gb/25Gb/40Gb/50Gb",
+        "10Gbase-T",
+        "10GBase-T",
+        "10GBASE-T",
+        "10GbE",
+        "10Gbps",
+        "10-Giga",
+        "10-Gigabit",
+        "10mbps",
+        "10Mbps",
+        "1/10GbE",
+        "1/10-Gigabit",
+        "11b/g/n",
+        "11g",
+        "150Mbps",
+        "16Gbps/10Gbps",
+        "1GbE",
+        "1x2:2",
+        "20GbE",
+        "25Gb",
+        "25GbE",
+        "2-Port",
+        "2x3:3",
+        "3G",
+        "3G/4G",
+        "3x3:3",
+        "40GbE",
+        "4G",
+        "54g",
+        "54M",
+        "54Mbps",
+        "56k",
+        "5G",
+        "802.11",
+        "802.11a/b/g",
+        "802.11abg",
+        "802.11a/b/g/n",
+        "802.11abgn",
+        "802.11ac",
+        "802.11ad",
+        "802.11a/g",
+        "802.11b",
+        "802.11b/g",
+        "802.11bg",
+        "802.11b/g/n",
+        "802.11bgn",
+        "802.11b/g/n-draft",
+        "802.11g",
+        "802.11n",
+        "802.11N",
+        "802.11n/b/g",
+        "802.11ng",
+        "802AIN",
+        "802UIG-1",
+        "adapter",
+        "Adapter",
+        "adaptor",
+        "ADSL",
+        "Basic",
+        "CAN-Bus",
+        "card",
+        "Card",
+        "Cardbus",
+        "CardBus",
+        "CDMA",
+        "CNA",
+        "Composite",
+        "controller",
+        "Controller",
+        "Copper",
+        "DB",
+        "Desktop",
+        "device",
+        "Device",
+        "dongle",
+        "driver",
+        "Dual-band",
+        "Dual-Protocol",
+        "EISA",
+        "Enhanced",
+        "ethernet.",
+        "ethernet",
+        "Ethernet",
+        "Ethernet/RNDIS",
+        "ExpressModule",
+        "family",
+        "Family",
+        "Fast/Gigabit",
+        "Fiber",
+        "gigabit",
+        "Gigabit",
+        "G-NIC",
+        "Hi-Gain",
+        "Hi-Speed",
+        "HSDPA",
+        "HSUPA",
+        "integrated",
+        "Integrated",
+        "interface",
+        "LAN",
+        "LAN+Winmodem",
+        "Laptop",
+        "LTE",
+        "LTE/UMTS/GSM",
+        "MAC",
+        "Micro",
+        "Mini-Card",
+        "Mini-USB",
+        "misprogrammed",
+        "modem",
+        "Modem",
+        "Modem/Networkcard",
+        "Module",
+        "Multimode",
+        "Multithreaded",
+        "Name:",
+        "net",
+        "network",
+        "Network",
+        "n/g/b",
+        "NIC",
+        "Notebook",
+        "OEM",
+        "PCI",
+        "PCI64",
+        "PCIe",
+        "PCI-E",
+        "PCI-Express",
+        "PCI-X",
+        "PCMCIA",
+        "PDA",
+        "PnP",
+        "RDMA",
+        "RJ-45",
+        "Series",
+        "Server",
+        "SoC",
+        "Switch",
+        "Technologies",
+        "TOE",
+        "USB",
+        "USB2.0",
+        "USB/Ethernet",
+        "UTP",
+        "UTP/Coax",
+        "v1",
+        "v1.1",
+        "v2",
+        "V2.0",
+        "v3",
+        "v4",
+        "wifi",
+        "Wi-Fi",
+        "WiFi",
+        "wireless",
+        "Wireless",
+        "Wireless-150N",
+        "Wireless-300N",
+        "Wireless-G",
+        "Wireless-N",
+        "WLAN",
+        NULL,
+    };
+    char *desc_full;
+    char *p;
+
+    desc_full = _fixup_string(desc, IGNORED_PHRASES, IGNORED_WORDS, FALSE);
+    if (!desc_full)
+        return NULL;
+
+    /* Chop off everything after a '-'. */
+    for (p = desc_full; *p; p++) {
+        if (p[0] == ' ' && p[1] == '-' && p[2] == ' ') {
+            p[0] = '\0';
+            break;
+        }
+    }
+
+    nm_assert(g_utf8_validate(desc_full, -1, NULL));
+
+    return desc_full;
 }
 
 /*****************************************************************************/
 
 const NMLDBusMetaIface *const _nml_dbus_meta_ifaces[] = {
-	&_nml_dbus_meta_iface_nm,
-	&_nml_dbus_meta_iface_nm_accesspoint,
-	&_nml_dbus_meta_iface_nm_agentmanager,
-	&_nml_dbus_meta_iface_nm_checkpoint,
-	&_nml_dbus_meta_iface_nm_connection_active,
-	&_nml_dbus_meta_iface_nm_dhcp4config,
-	&_nml_dbus_meta_iface_nm_dhcp6config,
-	&_nml_dbus_meta_iface_nm_device,
-	&_nml_dbus_meta_iface_nm_device_adsl,
-	&_nml_dbus_meta_iface_nm_device_bluetooth,
-	&_nml_dbus_meta_iface_nm_device_bond,
-	&_nml_dbus_meta_iface_nm_device_bridge,
-	&_nml_dbus_meta_iface_nm_device_dummy,
-	&_nml_dbus_meta_iface_nm_device_generic,
-	&_nml_dbus_meta_iface_nm_device_iptunnel,
-	&_nml_dbus_meta_iface_nm_device_infiniband,
-	&_nml_dbus_meta_iface_nm_device_lowpan,
-	&_nml_dbus_meta_iface_nm_device_macsec,
-	&_nml_dbus_meta_iface_nm_device_macvlan,
-	&_nml_dbus_meta_iface_nm_device_modem,
-	&_nml_dbus_meta_iface_nm_device_olpcmesh,
-	&_nml_dbus_meta_iface_nm_device_ovsbridge,
-	&_nml_dbus_meta_iface_nm_device_ovsinterface,
-	&_nml_dbus_meta_iface_nm_device_ovsport,
-	&_nml_dbus_meta_iface_nm_device_ppp,
-	&_nml_dbus_meta_iface_nm_device_statistics,
-	&_nml_dbus_meta_iface_nm_device_team,
-	&_nml_dbus_meta_iface_nm_device_tun,
-	&_nml_dbus_meta_iface_nm_device_veth,
-	&_nml_dbus_meta_iface_nm_device_vlan,
-	&_nml_dbus_meta_iface_nm_device_vrf,
-	&_nml_dbus_meta_iface_nm_device_vxlan,
-	&_nml_dbus_meta_iface_nm_device_wifip2p,
-	&_nml_dbus_meta_iface_nm_device_wireguard,
-	&_nml_dbus_meta_iface_nm_device_wired,
-	&_nml_dbus_meta_iface_nm_device_wireless,
-	&_nml_dbus_meta_iface_nm_device_wpan,
-	&_nml_dbus_meta_iface_nm_dnsmanager,
-	&_nml_dbus_meta_iface_nm_ip4config,
-	&_nml_dbus_meta_iface_nm_ip6config,
-	&_nml_dbus_meta_iface_nm_settings,
-	&_nml_dbus_meta_iface_nm_settings_connection,
-	&_nml_dbus_meta_iface_nm_vpn_connection,
-	&_nml_dbus_meta_iface_nm_wifip2ppeer,
+    &_nml_dbus_meta_iface_nm,
+    &_nml_dbus_meta_iface_nm_accesspoint,
+    &_nml_dbus_meta_iface_nm_agentmanager,
+    &_nml_dbus_meta_iface_nm_checkpoint,
+    &_nml_dbus_meta_iface_nm_connection_active,
+    &_nml_dbus_meta_iface_nm_dhcp4config,
+    &_nml_dbus_meta_iface_nm_dhcp6config,
+    &_nml_dbus_meta_iface_nm_device,
+    &_nml_dbus_meta_iface_nm_device_adsl,
+    &_nml_dbus_meta_iface_nm_device_bluetooth,
+    &_nml_dbus_meta_iface_nm_device_bond,
+    &_nml_dbus_meta_iface_nm_device_bridge,
+    &_nml_dbus_meta_iface_nm_device_dummy,
+    &_nml_dbus_meta_iface_nm_device_generic,
+    &_nml_dbus_meta_iface_nm_device_iptunnel,
+    &_nml_dbus_meta_iface_nm_device_infiniband,
+    &_nml_dbus_meta_iface_nm_device_lowpan,
+    &_nml_dbus_meta_iface_nm_device_macsec,
+    &_nml_dbus_meta_iface_nm_device_macvlan,
+    &_nml_dbus_meta_iface_nm_device_modem,
+    &_nml_dbus_meta_iface_nm_device_olpcmesh,
+    &_nml_dbus_meta_iface_nm_device_ovsbridge,
+    &_nml_dbus_meta_iface_nm_device_ovsinterface,
+    &_nml_dbus_meta_iface_nm_device_ovsport,
+    &_nml_dbus_meta_iface_nm_device_ppp,
+    &_nml_dbus_meta_iface_nm_device_statistics,
+    &_nml_dbus_meta_iface_nm_device_team,
+    &_nml_dbus_meta_iface_nm_device_tun,
+    &_nml_dbus_meta_iface_nm_device_veth,
+    &_nml_dbus_meta_iface_nm_device_vlan,
+    &_nml_dbus_meta_iface_nm_device_vrf,
+    &_nml_dbus_meta_iface_nm_device_vxlan,
+    &_nml_dbus_meta_iface_nm_device_wifip2p,
+    &_nml_dbus_meta_iface_nm_device_wireguard,
+    &_nml_dbus_meta_iface_nm_device_wired,
+    &_nml_dbus_meta_iface_nm_device_wireless,
+    &_nml_dbus_meta_iface_nm_device_wpan,
+    &_nml_dbus_meta_iface_nm_dnsmanager,
+    &_nml_dbus_meta_iface_nm_ip4config,
+    &_nml_dbus_meta_iface_nm_ip6config,
+    &_nml_dbus_meta_iface_nm_settings,
+    &_nml_dbus_meta_iface_nm_settings_connection,
+    &_nml_dbus_meta_iface_nm_vpn_connection,
+    &_nml_dbus_meta_iface_nm_wifip2ppeer,
 };
 
 #define COMMON_PREFIX "org.freedesktop.NetworkManager"
 
 static int
-_strcmp_common_prefix (gconstpointer a, gconstpointer b, gpointer user_data)
+_strcmp_common_prefix(gconstpointer a, gconstpointer b, gpointer user_data)
 {
-	const NMLDBusMetaIface *iface = a;
-	const char *dbus_iface_name = b;
+    const NMLDBusMetaIface *iface           = a;
+    const char *            dbus_iface_name = b;
 
-	nm_assert (g_str_has_prefix (iface->dbus_iface_name, COMMON_PREFIX));
+    nm_assert(g_str_has_prefix(iface->dbus_iface_name, COMMON_PREFIX));
 
-	return strcmp (&iface->dbus_iface_name[NM_STRLEN (COMMON_PREFIX)], dbus_iface_name);
+    return strcmp(&iface->dbus_iface_name[NM_STRLEN(COMMON_PREFIX)], dbus_iface_name);
 }
 
 const NMLDBusMetaIface *
-nml_dbus_meta_iface_get (const char *dbus_iface_name)
+nml_dbus_meta_iface_get(const char *dbus_iface_name)
 {
-	gssize idx;
-
-	nm_assert (dbus_iface_name);
-
-	G_STATIC_ASSERT_EXPR (G_STRUCT_OFFSET (NMLDBusMetaIface, dbus_iface_name) == 0);
-
-	/* we assume that NetworkManager only uses unique interface names. E.g. one
-	 * interface name always has one particular meaning (and offers one set of
-	 * properties, signals and methods). This is a convenient assumption, and
-	 * we sure would never violate it when extending NM's D-Bus API. */
-
-	if (NM_STR_HAS_PREFIX (dbus_iface_name, COMMON_PREFIX)) {
-		/* optimize, that in fact all our interfaces have the same prefix. */
-		idx = nm_utils_ptrarray_find_binary_search ((gconstpointer *) _nml_dbus_meta_ifaces,
-		                                            G_N_ELEMENTS (_nml_dbus_meta_ifaces),
-		                                            &dbus_iface_name[NM_STRLEN (COMMON_PREFIX)],
-		                                            _strcmp_common_prefix,
-		                                            NULL,
-		                                            NULL,
-		                                            NULL);
-	} else
-		return NULL;
-
-	if (idx < 0)
-		return NULL;
-	return _nml_dbus_meta_ifaces[idx];
+    gssize idx;
+
+    nm_assert(dbus_iface_name);
+
+    G_STATIC_ASSERT_EXPR(G_STRUCT_OFFSET(NMLDBusMetaIface, dbus_iface_name) == 0);
+
+    /* we assume that NetworkManager only uses unique interface names. E.g. one
+     * interface name always has one particular meaning (and offers one set of
+     * properties, signals and methods). This is a convenient assumption, and
+     * we sure would never violate it when extending NM's D-Bus API. */
+
+    if (NM_STR_HAS_PREFIX(dbus_iface_name, COMMON_PREFIX)) {
+        /* optimize, that in fact all our interfaces have the same prefix. */
+        idx = nm_utils_ptrarray_find_binary_search((gconstpointer *) _nml_dbus_meta_ifaces,
+                                                   G_N_ELEMENTS(_nml_dbus_meta_ifaces),
+                                                   &dbus_iface_name[NM_STRLEN(COMMON_PREFIX)],
+                                                   _strcmp_common_prefix,
+                                                   NULL,
+                                                   NULL,
+                                                   NULL);
+    } else
+        return NULL;
+
+    if (idx < 0)
+        return NULL;
+    return _nml_dbus_meta_ifaces[idx];
 }
 
 const NMLDBusMetaProperty *
-nml_dbus_meta_property_get (const NMLDBusMetaIface *meta_iface,
-                            const char *dbus_property_name,
-                            guint *out_idx)
+nml_dbus_meta_property_get(const NMLDBusMetaIface *meta_iface,
+                           const char *            dbus_property_name,
+                           guint *                 out_idx)
 {
-	gssize idx;
-
-	nm_assert (meta_iface);
-	nm_assert (dbus_property_name);
-
-	idx = nm_utils_array_find_binary_search (meta_iface->dbus_properties,
-	                                         sizeof (meta_iface->dbus_properties[0]),
-	                                         meta_iface->n_dbus_properties,
-	                                         &dbus_property_name,
-	                                         nm_strcmp_p_with_data,
-	                                         NULL);
-	if (idx < 0) {
-		NM_SET_OUT (out_idx, meta_iface->n_dbus_properties);
-		return NULL;
-	}
-	NM_SET_OUT (out_idx, idx);
-	return &meta_iface->dbus_properties[idx];
+    gssize idx;
+
+    nm_assert(meta_iface);
+    nm_assert(dbus_property_name);
+
+    idx = nm_utils_array_find_binary_search(meta_iface->dbus_properties,
+                                            sizeof(meta_iface->dbus_properties[0]),
+                                            meta_iface->n_dbus_properties,
+                                            &dbus_property_name,
+                                            nm_strcmp_p_with_data,
+                                            NULL);
+    if (idx < 0) {
+        NM_SET_OUT(out_idx, meta_iface->n_dbus_properties);
+        return NULL;
+    }
+    NM_SET_OUT(out_idx, idx);
+    return &meta_iface->dbus_properties[idx];
 }
 
 void
-_nml_dbus_meta_class_init_with_properties_impl (GObjectClass *object_class,
-                                                const NMLDBusMetaIface *const*meta_ifaces)
+_nml_dbus_meta_class_init_with_properties_impl(GObjectClass *                 object_class,
+                                               const NMLDBusMetaIface *const *meta_ifaces)
 {
-	int i_iface;
-
-	nm_assert (G_IS_OBJECT_CLASS (object_class));
-	nm_assert (meta_ifaces);
-	nm_assert (meta_ifaces[0]);
-
-	for (i_iface = 0; meta_ifaces[i_iface]; i_iface++) {
-		const NMLDBusMetaIface *meta_iface = meta_ifaces[i_iface];
-		guint8 *reverse_idx;
-		guint8 i;
-
-		nm_assert (g_type_is_a (meta_iface->get_type_fcn (), G_OBJECT_CLASS_TYPE (object_class)));
-		nm_assert (meta_iface->n_obj_properties > 0);
-		nm_assert (meta_iface->obj_properties);
-		nm_assert (meta_iface->obj_properties_reverse_idx[0] == 0);
-		nm_assert (meta_iface->obj_properties == meta_ifaces[0]->obj_properties);
-
-		if (i_iface == 0)
-			g_object_class_install_properties (object_class, meta_iface->n_obj_properties, (GParamSpec **) meta_iface->obj_properties);
-
-		reverse_idx = (guint8 *) meta_iface->obj_properties_reverse_idx;
-
-		for (i = 0; i < meta_iface->n_obj_properties; i++)
-			reverse_idx[i] = 0xFFu;
-		for (i = 0; i < meta_iface->n_dbus_properties; i++) {
-			const NMLDBusMetaProperty *mpr = &meta_iface->dbus_properties[i];
-
-			if (   mpr->obj_properties_idx != 0
-			    && !mpr->obj_property_no_reverse_idx) {
-				nm_assert (mpr->obj_properties_idx < meta_iface->n_obj_properties);
-				nm_assert (reverse_idx[mpr->obj_properties_idx] == 0xFFu);
-
-				reverse_idx[mpr->obj_properties_idx] = i;
-			}
-		}
-	}
+    int i_iface;
+
+    nm_assert(G_IS_OBJECT_CLASS(object_class));
+    nm_assert(meta_ifaces);
+    nm_assert(meta_ifaces[0]);
+
+    for (i_iface = 0; meta_ifaces[i_iface]; i_iface++) {
+        const NMLDBusMetaIface *meta_iface = meta_ifaces[i_iface];
+        guint8 *                reverse_idx;
+        guint8                  i;
+
+        nm_assert(g_type_is_a(meta_iface->get_type_fcn(), G_OBJECT_CLASS_TYPE(object_class)));
+        nm_assert(meta_iface->n_obj_properties > 0);
+        nm_assert(meta_iface->obj_properties);
+        nm_assert(meta_iface->obj_properties_reverse_idx[0] == 0);
+        nm_assert(meta_iface->obj_properties == meta_ifaces[0]->obj_properties);
+
+        if (i_iface == 0)
+            g_object_class_install_properties(object_class,
+                                              meta_iface->n_obj_properties,
+                                              (GParamSpec **) meta_iface->obj_properties);
+
+        reverse_idx = (guint8 *) meta_iface->obj_properties_reverse_idx;
+
+        for (i = 0; i < meta_iface->n_obj_properties; i++)
+            reverse_idx[i] = 0xFFu;
+        for (i = 0; i < meta_iface->n_dbus_properties; i++) {
+            const NMLDBusMetaProperty *mpr = &meta_iface->dbus_properties[i];
+
+            if (mpr->obj_properties_idx != 0 && !mpr->obj_property_no_reverse_idx) {
+                nm_assert(mpr->obj_properties_idx < meta_iface->n_obj_properties);
+                nm_assert(reverse_idx[mpr->obj_properties_idx] == 0xFFu);
+
+                reverse_idx[mpr->obj_properties_idx] = i;
+            }
+        }
+    }
 }
 
 gboolean
-nm_utils_g_param_spec_is_default (const GParamSpec *pspec)
+nm_utils_g_param_spec_is_default(const GParamSpec *pspec)
 {
-	g_return_val_if_fail (pspec, FALSE);
-
-	if (pspec->value_type == G_TYPE_BOOLEAN)
-		return ((((GParamSpecBoolean *) pspec)->default_value) == FALSE);
-	if (pspec->value_type == G_TYPE_UCHAR)
-		return ((((GParamSpecUChar *) pspec)->default_value) == 0u);
-	if (pspec->value_type == G_TYPE_INT)
-		return ((((GParamSpecInt *) pspec)->default_value) == 0);
-	if (pspec->value_type == G_TYPE_UINT)
-		return ((((GParamSpecUInt *) pspec)->default_value) == 0u);
-	if (pspec->value_type == G_TYPE_INT64)
-		return ((((GParamSpecInt64 *) pspec)->default_value) == 0);
-	if (pspec->value_type == G_TYPE_UINT64)
-		return ((((GParamSpecUInt64 *) pspec)->default_value) == 0u);
-	if (g_type_is_a (pspec->value_type, G_TYPE_ENUM))
-		return ((((GParamSpecEnum *) pspec)->default_value) == 0);
-	if (g_type_is_a (pspec->value_type, G_TYPE_FLAGS))
-		return ((((GParamSpecFlags *) pspec)->default_value) == 0u);
-	if (pspec->value_type == G_TYPE_STRING)
-		return ((((GParamSpecString *) pspec)->default_value) == NULL);
-	if (NM_IN_SET (pspec->value_type, G_TYPE_BYTES,
-	                                  G_TYPE_PTR_ARRAY,
-	                                  G_TYPE_ARRAY,
-	                                  G_TYPE_HASH_TABLE,
-	                                  G_TYPE_STRV)) {
-		/* boxed types have NULL default. */
-		g_return_val_if_fail (G_IS_PARAM_SPEC_BOXED (pspec), FALSE);
-		g_return_val_if_fail (G_TYPE_IS_BOXED (pspec->value_type), FALSE);
-		return TRUE;
-	}
-	if (g_type_is_a (pspec->value_type, NM_TYPE_OBJECT)) {
-		/* object types have NULL default. */
-		g_return_val_if_fail (G_IS_PARAM_SPEC_OBJECT (pspec), FALSE);
-		g_return_val_if_fail (G_TYPE_IS_OBJECT (pspec->value_type), FALSE);
-		return TRUE;
-	}
-
-	/* This function is only used for asserting/testing. It thus
-	 * strictly asserts and only support argument types that we expect. */
-	g_return_val_if_reached (FALSE);
+    g_return_val_if_fail(pspec, FALSE);
+
+    if (pspec->value_type == G_TYPE_BOOLEAN)
+        return ((((GParamSpecBoolean *) pspec)->default_value) == FALSE);
+    if (pspec->value_type == G_TYPE_UCHAR)
+        return ((((GParamSpecUChar *) pspec)->default_value) == 0u);
+    if (pspec->value_type == G_TYPE_INT)
+        return ((((GParamSpecInt *) pspec)->default_value) == 0);
+    if (pspec->value_type == G_TYPE_UINT)
+        return ((((GParamSpecUInt *) pspec)->default_value) == 0u);
+    if (pspec->value_type == G_TYPE_INT64)
+        return ((((GParamSpecInt64 *) pspec)->default_value) == 0);
+    if (pspec->value_type == G_TYPE_UINT64)
+        return ((((GParamSpecUInt64 *) pspec)->default_value) == 0u);
+    if (g_type_is_a(pspec->value_type, G_TYPE_ENUM))
+        return ((((GParamSpecEnum *) pspec)->default_value) == 0);
+    if (g_type_is_a(pspec->value_type, G_TYPE_FLAGS))
+        return ((((GParamSpecFlags *) pspec)->default_value) == 0u);
+    if (pspec->value_type == G_TYPE_STRING)
+        return ((((GParamSpecString *) pspec)->default_value) == NULL);
+    if (NM_IN_SET(pspec->value_type,
+                  G_TYPE_BYTES,
+                  G_TYPE_PTR_ARRAY,
+                  G_TYPE_ARRAY,
+                  G_TYPE_HASH_TABLE,
+                  G_TYPE_STRV)) {
+        /* boxed types have NULL default. */
+        g_return_val_if_fail(G_IS_PARAM_SPEC_BOXED(pspec), FALSE);
+        g_return_val_if_fail(G_TYPE_IS_BOXED(pspec->value_type), FALSE);
+        return TRUE;
+    }
+    if (g_type_is_a(pspec->value_type, NM_TYPE_OBJECT)) {
+        /* object types have NULL default. */
+        g_return_val_if_fail(G_IS_PARAM_SPEC_OBJECT(pspec), FALSE);
+        g_return_val_if_fail(G_TYPE_IS_OBJECT(pspec->value_type), FALSE);
+        return TRUE;
+    }
+
+    /* This function is only used for asserting/testing. It thus
+     * strictly asserts and only support argument types that we expect. */
+    g_return_val_if_reached(FALSE);
 }