summary refs log tree commit diff
path: root/docs/libnm/html/libnm-nm-utils.html
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2024-12-25 20:36:29 +0100
committerMichael Biebl <biebl@debian.org>2024-12-25 20:36:29 +0100
commite465722b908aa870bdc293b9a417d3c15294aa6d (patch)
tree7c959d3b73f427d6c40522a7464eaa4531ef2f05 /docs/libnm/html/libnm-nm-utils.html
parent56928734cbcf1d3a02fae4f152a541df1b04e04a (diff)
New upstream version 1.50.1 upstream/1.50.1
Diffstat (limited to 'docs/libnm/html/libnm-nm-utils.html')
-rw-r--r--docs/libnm/html/libnm-nm-utils.html3565
1 files changed, 0 insertions, 3565 deletions
diff --git a/docs/libnm/html/libnm-nm-utils.html b/docs/libnm/html/libnm-nm-utils.html
deleted file mode 100644
index f14b001d..00000000
--- a/docs/libnm/html/libnm-nm-utils.html
+++ /dev/null
@@ -1,3565 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>nm-utils: libnm Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
-<link rel="home" href="index.html" title="libnm Reference Manual">
-<link rel="up" href="ch05.html" title="Utility API Reference">
-<link rel="prev" href="libnm-nm-keyfile.html" title="nm-keyfile">
-<link rel="next" href="libnm-nm-conn-utils.html" title="nm-conn-utils">
-<meta name="generator" content="GTK-Doc V1.34.0 (XML mode)">
-<link rel="stylesheet" href="style.css" type="text/css">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
-<td width="100%" align="left" class="shortcuts">
-<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
-                  <a href="#libnm-nm-utils.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#libnm-nm-utils.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
-</td>
-<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
-<td><a accesskey="u" href="ch05.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="libnm-nm-keyfile.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="libnm-nm-conn-utils.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="refentry">
-<a name="libnm-nm-utils"></a><div class="titlepage"></div>
-<div class="refnamediv"><table width="100%"><tr>
-<td valign="top">
-<h2><span class="refentrytitle"><a name="libnm-nm-utils.top_of_page"></a>nm-utils</span></h2>
-<p>nm-utils — Utility functions</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="libnm-nm-utils.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="functions_proto_type">
-<col class="functions_proto_name">
-</colgroup>
-<tbody>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-is-empty-ssid" title="nm_utils_is_empty_ssid ()">nm_utils_is_empty_ssid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-escape-ssid" title="nm_utils_escape_ssid ()">nm_utils_escape_ssid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-same-ssid" title="nm_utils_same_ssid ()">nm_utils_same_ssid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ssid-to-utf8" title="nm_utils_ssid_to_utf8 ()">nm_utils_ssid_to_utf8</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-security-valid" title="nm_utils_security_valid ()">nm_utils_security_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ap-mode-security-valid" title="nm_utils_ap_mode_security_valid ()">nm_utils_ap_mode_security_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wep-key-valid" title="nm_utils_wep_key_valid ()">nm_utils_wep_key_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wpa-psk-valid" title="nm_utils_wpa_psk_valid ()">nm_utils_wpa_psk_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-is-json-object" title="nm_utils_is_json_object ()">nm_utils_is_json_object</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-dns-to-variant" title="nm_utils_ip4_dns_to_variant ()">nm_utils_ip4_dns_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> **
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-dns-from-variant" title="nm_utils_ip4_dns_from_variant ()">nm_utils_ip4_dns_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-addresses-to-variant" title="nm_utils_ip4_addresses_to_variant ()">nm_utils_ip4_addresses_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GPtrArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-addresses-from-variant" title="nm_utils_ip4_addresses_from_variant ()">nm_utils_ip4_addresses_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-routes-to-variant" title="nm_utils_ip4_routes_to_variant ()">nm_utils_ip4_routes_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GPtrArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-routes-from-variant" title="nm_utils_ip4_routes_from_variant ()">nm_utils_ip4_routes_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint32</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-netmask-to-prefix" title="nm_utils_ip4_netmask_to_prefix ()">nm_utils_ip4_netmask_to_prefix</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint32</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-prefix-to-netmask" title="nm_utils_ip4_prefix_to_netmask ()">nm_utils_ip4_prefix_to_netmask</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint32</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip4-get-default-prefix" title="nm_utils_ip4_get_default_prefix ()">nm_utils_ip4_get_default_prefix</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip6-dns-to-variant" title="nm_utils_ip6_dns_to_variant ()">nm_utils_ip6_dns_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> **
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip6-dns-from-variant" title="nm_utils_ip6_dns_from_variant ()">nm_utils_ip6_dns_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip6-addresses-to-variant" title="nm_utils_ip6_addresses_to_variant ()">nm_utils_ip6_addresses_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GPtrArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip6-addresses-from-variant" title="nm_utils_ip6_addresses_from_variant ()">nm_utils_ip6_addresses_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip6-routes-to-variant" title="nm_utils_ip6_routes_to_variant ()">nm_utils_ip6_routes_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GPtrArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip6-routes-from-variant" title="nm_utils_ip6_routes_from_variant ()">nm_utils_ip6_routes_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip-addresses-to-variant" title="nm_utils_ip_addresses_to_variant ()">nm_utils_ip_addresses_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GPtrArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip-addresses-from-variant" title="nm_utils_ip_addresses_from_variant ()">nm_utils_ip_addresses_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GVariant</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip-routes-to-variant" title="nm_utils_ip_routes_to_variant ()">nm_utils_ip_routes_to_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GPtrArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip-routes-from-variant" title="nm_utils_ip_routes_from_variant ()">nm_utils_ip_routes_from_variant</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-uuid-generate" title="nm_utils_uuid_generate ()">nm_utils_uuid_generate</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<span class="c_punctuation">(</span><a class="link" href="libnm-nm-utils.html#NMUtilsFileSearchInPathsPredicate" title="NMUtilsFileSearchInPathsPredicate ()">*NMUtilsFileSearchInPathsPredicate</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<span class="c_punctuation">(</span><a class="link" href="libnm-nm-utils.html#NMUtilsCheckFilePredicate" title="NMUtilsCheckFilePredicate ()">*NMUtilsCheckFilePredicate</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-file-search-in-paths" title="nm_utils_file_search_in_paths ()">nm_utils_file_search_in_paths</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint32</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-freq-to-channel" title="nm_utils_wifi_freq_to_channel ()">nm_utils_wifi_freq_to_channel</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint32</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-channel-to-freq" title="nm_utils_wifi_channel_to_freq ()">nm_utils_wifi_channel_to_freq</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint32</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-find-next-channel" title="nm_utils_wifi_find_next_channel ()">nm_utils_wifi_find_next_channel</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-is-channel-valid" title="nm_utils_wifi_is_channel_valid ()">nm_utils_wifi_is_channel_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">guint</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-2ghz-freqs" title="nm_utils_wifi_2ghz_freqs ()">nm_utils_wifi_2ghz_freqs</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">guint</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-5ghz-freqs" title="nm_utils_wifi_5ghz_freqs ()">nm_utils_wifi_5ghz_freqs</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-wifi-strength-bars" title="nm_utils_wifi_strength_bars ()">nm_utils_wifi_strength_bars</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gsize</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-len" title="nm_utils_hwaddr_len ()">nm_utils_hwaddr_len</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-ntoa" title="nm_utils_hwaddr_ntoa ()">nm_utils_hwaddr_ntoa</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GByteArray</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-atoba" title="nm_utils_hwaddr_atoba ()">nm_utils_hwaddr_atoba</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint8</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-aton" title="nm_utils_hwaddr_aton ()">nm_utils_hwaddr_aton</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-valid" title="nm_utils_hwaddr_valid ()">nm_utils_hwaddr_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-canonical" title="nm_utils_hwaddr_canonical ()">nm_utils_hwaddr_canonical</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-matches" title="nm_utils_hwaddr_matches ()">nm_utils_hwaddr_matches</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-bin2hexstr" title="nm_utils_bin2hexstr ()">nm_utils_bin2hexstr</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GBytes</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-hexstr2bin" title="nm_utils_hexstr2bin ()">nm_utils_hexstr2bin</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-iface-valid-name" title="nm_utils_iface_valid_name ()">nm_utils_iface_valid_name</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-is-valid-iface-name" title="nm_utils_is_valid_iface_name ()">nm_utils_is_valid_iface_name</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-is-uuid" title="nm_utils_is_uuid ()">nm_utils_is_uuid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-inet4-ntop" title="nm_utils_inet4_ntop ()">nm_utils_inet4_ntop</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-inet6-ntop" title="nm_utils_inet6_ntop ()">nm_utils_inet6_ntop</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ipaddr-valid" title="nm_utils_ipaddr_valid ()">nm_utils_ipaddr_valid</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-check-virtual-device-compatibility" title="nm_utils_check_virtual_device_compatibility ()">nm_utils_check_virtual_device_compatibility</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">int</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-bond-mode-string-to-int" title="nm_utils_bond_mode_string_to_int ()">nm_utils_bond_mode_string_to_int</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-bond-mode-int-to-string" title="nm_utils_bond_mode_int_to_string ()">nm_utils_bond_mode_int_to_string</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-enum-to-str" title="nm_utils_enum_to_str ()">nm_utils_enum_to_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-enum-from-str" title="nm_utils_enum_from_str ()">nm_utils_enum_from_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">const <span class="returnvalue">char</span> **
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-enum-get-values" title="nm_utils_enum_get_values ()">nm_utils_enum_get_values</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">guint</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-version" title="nm_utils_version ()">nm_utils_version</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">GHashTable</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-parse-variant-attributes" title="nm_utils_parse_variant_attributes ()">nm_utils_parse_variant_attributes</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-format-variant-attributes" title="nm_utils_format_variant_attributes ()">nm_utils_format_variant_attributes</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><span class="returnvalue">NMTCQdisc</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-tc-qdisc-from-str" title="nm_utils_tc_qdisc_from_str ()">nm_utils_tc_qdisc_from_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-tc-qdisc-to-str" title="nm_utils_tc_qdisc_to_str ()">nm_utils_tc_qdisc_to_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="NMSettingTCConfig.html#NMTCAction"><span class="returnvalue">NMTCAction</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-tc-action-from-str" title="nm_utils_tc_action_from_str ()">nm_utils_tc_action_from_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-tc-action-to-str" title="nm_utils_tc_action_to_str ()">nm_utils_tc_action_to_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><span class="returnvalue">NMTCTfilter</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-tc-tfilter-from-str" title="nm_utils_tc_tfilter_from_str ()">nm_utils_tc_tfilter_from_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-tc-tfilter-to-str" title="nm_utils_tc_tfilter_to_str ()">nm_utils_tc_tfilter_to_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">char</span> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-sriov-vf-to-str" title="nm_utils_sriov_vf_to_str ()">nm_utils_sriov_vf_to_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a class="link" href="NMSettingSriov.html#NMSriovVF"><span class="returnvalue">NMSriovVF</span></a> *
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-sriov-vf-from-str" title="nm_utils_sriov_vf_from_str ()">nm_utils_sriov_vf_from_str</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gint64</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-get-timestamp-msec" title="nm_utils_get_timestamp_msec ()">nm_utils_get_timestamp_msec</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">gboolean</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-base64secret-decode" title="nm_utils_base64secret_decode ()">nm_utils_base64secret_decode</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<span class="returnvalue">void</span>
-</td>
-<td class="function_name">
-<a class="link" href="libnm-nm-utils.html#nm-utils-ensure-gtypes" title="nm_utils_ensure_gtypes ()">nm_utils_ensure_gtypes</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="libnm-nm-utils.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="other_proto_type">
-<col class="other_proto_name">
-</colgroup>
-<tbody>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="libnm-nm-utils.html#NMUtilsSecurityType" title="enum NMUtilsSecurityType">NMUtilsSecurityType</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="libnm-nm-utils.html#NM-UTILS-HWADDR-LEN-MAX:CAPS" title="NM_UTILS_HWADDR_LEN_MAX">NM_UTILS_HWADDR_LEN_MAX</a></td>
-</tr>
-<tr>
-<td class="define_keyword">#define</td>
-<td class="function_name"><a class="link" href="libnm-nm-utils.html#NM-UTILS-INET-ADDRSTRLEN:CAPS" title="NM_UTILS_INET_ADDRSTRLEN">NM_UTILS_INET_ADDRSTRLEN</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword"> </td>
-<td class="function_name"><a class="link" href="libnm-nm-utils.html#NMVariantAttributeSpec" title="NMVariantAttributeSpec">NMVariantAttributeSpec</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="libnm-nm-utils.html#in6-addr" title="struct in6_addr">in6_addr</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="libnm-nm-utils.html#stat" title="struct stat">stat</a></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
-<a name="libnm-nm-utils.object-hierarchy"></a><h2>Object Hierarchy</h2>
-<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html">GEnum</a>
-    <span class="lineart">╰──</span> NMUtilsSecurityType
-</pre>
-</div>
-<div class="refsect1">
-<a name="libnm-nm-utils.description"></a><h2>Description</h2>
-<p>A collection of utility functions for working with SSIDs, IP addresses, Wi-Fi
-access points and devices, among other things.</p>
-</div>
-<div class="refsect1">
-<a name="libnm-nm-utils.functions_details"></a><h2>Functions</h2>
-<div class="refsect2">
-<a name="nm-utils-is-empty-ssid"></a><h3>nm_utils_is_empty_ssid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_is_empty_ssid (<em class="parameter"><code>const <span class="type">guint8</span> *ssid</code></em>,
-                        <em class="parameter"><code><span class="type">gsize</span> len</code></em>);</pre>
-<p>Different manufacturers use different mechanisms for not broadcasting the
-AP's SSID.  This function attempts to detect blank/empty SSIDs using a
-number of known SSID-cloaking methods.</p>
-<div class="refsect3">
-<a name="nm-utils-is-empty-ssid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>ssid</p></td>
-<td class="parameter_description"><p>pointer to a buffer containing the SSID data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length of the SSID data in <em class="parameter"><code>ssid</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-is-empty-ssid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the SSID is "empty", <code class="literal">FALSE</code> if it is not</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-escape-ssid"></a><h3>nm_utils_escape_ssid ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *
-nm_utils_escape_ssid (<em class="parameter"><code>const <span class="type">guint8</span> *ssid</code></em>,
-                      <em class="parameter"><code><span class="type">gsize</span> len</code></em>);</pre>
-<div class="warning">
-<p><code class="literal">nm_utils_escape_ssid</code> has been deprecated since version 1.46 and should not be used in newly-written code.</p>
-<p>use <a class="link" href="libnm-nm-utils.html#nm-utils-ssid-to-utf8" title="nm_utils_ssid_to_utf8 ()"><code class="function">nm_utils_ssid_to_utf8()</code></a> or <a class="link" href="libnm-nm-utils.html#nm-utils-bin2hexstr" title="nm_utils_bin2hexstr ()"><code class="function">nm_utils_bin2hexstr()</code></a>.</p>
-</div>
-<p>This function does a quick printable character conversion of the SSID, simply
-replacing embedded NULLs and non-printable characters with the hexadecimal
-representation of that character.  Intended for debugging only, should not
-be used for display of SSIDs.</p>
-<p>Warning: this function uses a static buffer. It is not thread-safe. Don't
-  use this function.</p>
-<div class="refsect3">
-<a name="nm-utils-escape-ssid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>ssid</p></td>
-<td class="parameter_description"><p>pointer to a buffer containing the SSID data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length of the SSID data in <em class="parameter"><code>ssid</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-escape-ssid.returns"></a><h4>Returns</h4>
-<p> pointer to the escaped SSID, which uses an internal static buffer
-and will be overwritten by subsequent calls to this function</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-same-ssid"></a><h3>nm_utils_same_ssid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_same_ssid (<em class="parameter"><code>const <span class="type">guint8</span> *ssid1</code></em>,
-                    <em class="parameter"><code><span class="type">gsize</span> len1</code></em>,
-                    <em class="parameter"><code>const <span class="type">guint8</span> *ssid2</code></em>,
-                    <em class="parameter"><code><span class="type">gsize</span> len2</code></em>,
-                    <em class="parameter"><code><span class="type">gboolean</span> ignore_trailing_null</code></em>);</pre>
-<p>Earlier versions of the Linux kernel added a NULL byte to the end of the
-SSID to enable easy printing of the SSID on the console or in a terminal,
-but this behavior was problematic (SSIDs are simply byte arrays, not strings)
-and thus was changed.  This function compensates for that behavior at the
-cost of some compatibility with odd SSIDs that may legitimately have trailing
-NULLs, even though that is functionally pointless.</p>
-<div class="refsect3">
-<a name="nm-utils-same-ssid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>ssid1</p></td>
-<td class="parameter_description"><p>the first SSID to compare. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len1]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len1</p></td>
-<td class="parameter_description"><p>length of the SSID data in <em class="parameter"><code>ssid1</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssid2</p></td>
-<td class="parameter_description"><p>the second SSID to compare. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len2]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len2</p></td>
-<td class="parameter_description"><p>length of the SSID data in <em class="parameter"><code>ssid2</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ignore_trailing_null</p></td>
-<td class="parameter_description"><p><code class="literal">TRUE</code> to ignore one trailing NULL byte</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-same-ssid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the SSIDs are the same, <code class="literal">FALSE</code> if they are not</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ssid-to-utf8"></a><h3>nm_utils_ssid_to_utf8 ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_ssid_to_utf8 (<em class="parameter"><code>const <span class="type">guint8</span> *ssid</code></em>,
-                       <em class="parameter"><code><span class="type">gsize</span> len</code></em>);</pre>
-<p>Wi-Fi SSIDs are byte arrays, they are _not_ strings.  Thus, an SSID may
-contain embedded NULLs and other unprintable characters.  Often it is
-useful to print the SSID out for debugging purposes, but that should be the
-_only_ use of this function.  Do not use this function for any persistent
-storage of the SSID, since the printable SSID returned from this function
-cannot be converted back into the real SSID of the access point.</p>
-<p>This function does almost everything humanly possible to convert the input
-into a printable UTF-8 string, using roughly the following procedure:</p>
-<p>1) if the input data is already UTF-8 safe, no conversion is performed
-2) attempts to get the current system language from the LANG environment
-   variable, and depending on the language, uses a table of alternative
-   encodings to try.  For example, if LANG=hu_HU, the table may first try
-   the ISO-8859-2 encoding, and if that fails, try the Windows-1250 encoding.
-   If all fallback encodings fail, replaces non-UTF-8 characters with '?'.
-3) If the system language was unable to be determined, falls back to the
-   ISO-8859-1 encoding, then to the Windows-1251 encoding.
-4) If step 3 fails, replaces non-UTF-8 characters with '?'.</p>
-<p>Again, this function should be used for debugging and display purposes
-_only_.</p>
-<div class="refsect3">
-<a name="nm-utils-ssid-to-utf8.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>ssid</p></td>
-<td class="parameter_description"><p>pointer to a buffer containing the SSID data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length of the SSID data in <em class="parameter"><code>ssid</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ssid-to-utf8.returns"></a><h4>Returns</h4>
-<p>an allocated string containing a UTF-8
-representation of the SSID, which must be freed by the caller using <code class="function">g_free()</code>.
-Returns <code class="literal">NULL</code> on errors. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-security-valid"></a><h3>nm_utils_security_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_security_valid (<em class="parameter"><code><a class="link" href="libnm-nm-utils.html#NMUtilsSecurityType" title="enum NMUtilsSecurityType"><span class="type">NMUtilsSecurityType</span></a> type</code></em>,
-                         <em class="parameter"><code><a class="link" href="libnm-nm-dbus-interface.html#NMDeviceWifiCapabilities" title="enum NMDeviceWifiCapabilities"><span class="type">NMDeviceWifiCapabilities</span></a> wifi_caps</code></em>,
-                         <em class="parameter"><code><span class="type">gboolean</span> have_ap</code></em>,
-                         <em class="parameter"><code><span class="type">gboolean</span> adhoc</code></em>,
-                         <em class="parameter"><code><a class="link" href="libnm-nm-dbus-interface.html#NM80211ApFlags" title="enum NM80211ApFlags"><span class="type">NM80211ApFlags</span></a> ap_flags</code></em>,
-                         <em class="parameter"><code><a class="link" href="libnm-nm-dbus-interface.html#NM80211ApSecurityFlags" title="enum NM80211ApSecurityFlags"><span class="type">NM80211ApSecurityFlags</span></a> ap_wpa</code></em>,
-                         <em class="parameter"><code><a class="link" href="libnm-nm-dbus-interface.html#NM80211ApSecurityFlags" title="enum NM80211ApSecurityFlags"><span class="type">NM80211ApSecurityFlags</span></a> ap_rsn</code></em>);</pre>
-<p>Given a set of device capabilities, and a desired security type to check
-against, determines whether the combination of device, desired security
-type, and AP capabilities intersect.</p>
-<p>NOTE: this function cannot handle checking security for AP/Hotspot mode;
-use <a class="link" href="libnm-nm-utils.html#nm-utils-ap-mode-security-valid" title="nm_utils_ap_mode_security_valid ()"><code class="function">nm_utils_ap_mode_security_valid()</code></a> instead.</p>
-<div class="refsect3">
-<a name="nm-utils-security-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the security type to check AP flags and device capabilities against,
-e.g. <a class="link" href="libnm-nm-utils.html#NMU-SEC-STATIC-WEP:CAPS"><span class="type">NMU_SEC_STATIC_WEP</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>wifi_caps</p></td>
-<td class="parameter_description"><p>bitfield of the capabilities of the specific Wi-Fi device, e.g.
-<a class="link" href="libnm-nm-dbus-interface.html#NM-WIFI-DEVICE-CAP-CIPHER-WEP40:CAPS"><span class="type">NM_WIFI_DEVICE_CAP_CIPHER_WEP40</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>have_ap</p></td>
-<td class="parameter_description"><p>whether the <em class="parameter"><code>ap_flags</code></em>
-, <em class="parameter"><code>ap_wpa</code></em>
-, and <em class="parameter"><code>ap_rsn</code></em>
-arguments are valid</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>adhoc</p></td>
-<td class="parameter_description"><p>whether the capabilities being tested are from an Ad-Hoc AP (IBSS)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ap_flags</p></td>
-<td class="parameter_description"><p>bitfield of AP capabilities, e.g. <a class="link" href="libnm-nm-dbus-interface.html#NM-802-11-AP-FLAGS-PRIVACY:CAPS"><span class="type">NM_802_11_AP_FLAGS_PRIVACY</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ap_wpa</p></td>
-<td class="parameter_description"><p>bitfield of AP capabilities derived from the AP's WPA beacon,
-e.g. (<a class="link" href="libnm-nm-dbus-interface.html#NM-802-11-AP-SEC-PAIR-TKIP:CAPS"><span class="type">NM_802_11_AP_SEC_PAIR_TKIP</span></a> | <a class="link" href="libnm-nm-dbus-interface.html#NM-802-11-AP-SEC-KEY-MGMT-PSK:CAPS"><span class="type">NM_802_11_AP_SEC_KEY_MGMT_PSK</span></a>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ap_rsn</p></td>
-<td class="parameter_description"><p>bitfield of AP capabilities derived from the AP's RSN/WPA2 beacon,
-e.g. (<a class="link" href="libnm-nm-dbus-interface.html#NM-802-11-AP-SEC-PAIR-CCMP:CAPS"><span class="type">NM_802_11_AP_SEC_PAIR_CCMP</span></a> | <a class="link" href="libnm-nm-dbus-interface.html#NM-802-11-AP-SEC-PAIR-TKIP:CAPS"><span class="type">NM_802_11_AP_SEC_PAIR_TKIP</span></a>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-security-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the device capabilities and AP capabilities intersect and are
-compatible with the desired <em class="parameter"><code>type</code></em>
-, <code class="literal">FALSE</code> if they are not</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ap-mode-security-valid"></a><h3>nm_utils_ap_mode_security_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_ap_mode_security_valid (<em class="parameter"><code><a class="link" href="libnm-nm-utils.html#NMUtilsSecurityType" title="enum NMUtilsSecurityType"><span class="type">NMUtilsSecurityType</span></a> type</code></em>,
-                                 <em class="parameter"><code><a class="link" href="libnm-nm-dbus-interface.html#NMDeviceWifiCapabilities" title="enum NMDeviceWifiCapabilities"><span class="type">NMDeviceWifiCapabilities</span></a> wifi_caps</code></em>);</pre>
-<p>Given a set of device capabilities, and a desired security type to check
-against, determines whether the combination of device capabilities and
-desired security type are valid for AP/Hotspot connections.</p>
-<div class="refsect3">
-<a name="nm-utils-ap-mode-security-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the security type to check device capabilities against,
-e.g. <a class="link" href="libnm-nm-utils.html#NMU-SEC-STATIC-WEP:CAPS"><span class="type">NMU_SEC_STATIC_WEP</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>wifi_caps</p></td>
-<td class="parameter_description"><p>bitfield of the capabilities of the specific Wi-Fi device, e.g.
-<a class="link" href="libnm-nm-dbus-interface.html#NM-WIFI-DEVICE-CAP-CIPHER-WEP40:CAPS"><span class="type">NM_WIFI_DEVICE_CAP_CIPHER_WEP40</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ap-mode-security-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the device capabilities are compatible with the desired
-<em class="parameter"><code>type</code></em>
-, <code class="literal">FALSE</code> if they are not.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wep-key-valid"></a><h3>nm_utils_wep_key_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_wep_key_valid (<em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
-                        <em class="parameter"><code><a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType" title="enum NMWepKeyType"><span class="type">NMWepKeyType</span></a> wep_type</code></em>);</pre>
-<p>Checks if <em class="parameter"><code>key</code></em>
- is a valid WEP key</p>
-<div class="refsect3">
-<a name="nm-utils-wep-key-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>a string that might be a WEP key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>wep_type</p></td>
-<td class="parameter_description"><p>the <a class="link" href="NMSettingWirelessSecurity.html#NMWepKeyType" title="enum NMWepKeyType"><span class="type">NMWepKeyType</span></a> type of the WEP key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wep-key-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if <em class="parameter"><code>key</code></em>
-is a WEP key, <code class="literal">FALSE</code> if not</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wpa-psk-valid"></a><h3>nm_utils_wpa_psk_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_wpa_psk_valid (<em class="parameter"><code>const <span class="type">char</span> *psk</code></em>);</pre>
-<p>Checks if <em class="parameter"><code>psk</code></em>
- is a valid WPA PSK</p>
-<div class="refsect3">
-<a name="nm-utils-wpa-psk-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>psk</p></td>
-<td class="parameter_description"><p>a string that might be a WPA PSK</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wpa-psk-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if <em class="parameter"><code>psk</code></em>
-is a WPA PSK, <code class="literal">FALSE</code> if not</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-is-json-object"></a><h3>nm_utils_is_json_object ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_is_json_object (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
-                         <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<div class="refsect3">
-<a name="nm-utils-is-json-object.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the JSON string to test</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>optional error reason</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-is-json-object.returns"></a><h4>Returns</h4>
-<p> whether the passed string is valid JSON.
-If libnm is not compiled with libjansson support, this check will
-also return <code class="literal">TRUE</code> for possibly invalid inputs. If that is a problem
-for you, you must validate the JSON yourself.</p>
-</div>
-<p class="since">Since: 1.6</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-dns-to-variant"></a><h3>nm_utils_ip4_dns_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip4_dns_to_variant (<em class="parameter"><code><span class="type">char</span> **dns</code></em>);</pre>
-<p>Utility function to convert an array of IP address strings int a <span class="type">GVariant</span> of
-type 'au' representing an array of IPv4 addresses.</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-dns-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>dns</p></td>
-<td class="parameter_description"><p>an array of IP address strings. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-dns-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>dns</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-dns-from-variant"></a><h3>nm_utils_ip4_dns_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> **
-nm_utils_ip4_dns_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> of type 'au' representing a list of
-IPv4 addresses into an array of IP address strings.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-dns-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <span class="type">GVariant</span> of type 'au'</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-dns-from-variant.returns"></a><h4>Returns</h4>
-<p>a <code class="literal">NULL</code>-terminated array of IP address strings. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-addresses-to-variant"></a><h3>nm_utils_ip4_addresses_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip4_addresses_to_variant (<em class="parameter"><code><span class="type">GPtrArray</span> *addresses</code></em>,
-                                   <em class="parameter"><code>const <span class="type">char</span> *gateway</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects representing
-IPv4 addresses into a <span class="type">GVariant</span> of type 'aau' representing an array of
-NetworkManager IPv4 addresses (which are tuples of address, prefix, and
-gateway). The "gateway" field of the first address will get the value of
-<em class="parameter"><code>gateway</code></em>
- (if non-<code class="literal">NULL</code>). In all of the other addresses, that field will be 0.</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-addresses-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>addresses</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPAddress]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>gateway</p></td>
-<td class="parameter_description"><p>the gateway IP address. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-addresses-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>addresses</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-addresses-from-variant"></a><h3>nm_utils_ip4_addresses_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
-nm_utils_ip4_addresses_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
-                                     <em class="parameter"><code><span class="type">char</span> **out_gateway</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> of type 'aau' representing a list of
-NetworkManager IPv4 addresses (which are tuples of address, prefix, and
-gateway) into a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. The "gateway" field of
-the first address (if set) will be returned in <em class="parameter"><code>out_gateway</code></em>
-; the "gateway" fields
-of the other addresses are ignored. Note that invalid addresses are discarded
-but the valid addresses are still returned.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-addresses-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <span class="type">GVariant</span> of type 'aau'</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_gateway</p></td>
-<td class="parameter_description"><p>on return, will
-contain the IP gateway. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-addresses-from-variant.returns"></a><h4>Returns</h4>
-<p>a newly allocated
-<span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPAddress]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-routes-to-variant"></a><h3>nm_utils_ip4_routes_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip4_routes_to_variant (<em class="parameter"><code><span class="type">GPtrArray</span> *routes</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects representing
-IPv4 routes into a <span class="type">GVariant</span> of type 'aau' representing an array of
-NetworkManager IPv4 routes (which are tuples of route, prefix, next hop, and
-metric).</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-routes-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>routes</p></td>
-<td class="parameter_description"><p>an array of <span class="type">NMIP4Route</span> objects. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPRoute]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-routes-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>routes</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-routes-from-variant"></a><h3>nm_utils_ip4_routes_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
-nm_utils_ip4_routes_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> of type 'aau' representing an array
-of NetworkManager IPv4 routes (which are tuples of route, prefix, next hop,
-and metric) into a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. Note that invalid routes
-are discarded but the valid routes are still returned.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-routes-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p><span class="type">GVariant</span> of type 'aau'</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-routes-from-variant.returns"></a><h4>Returns</h4>
-<p>a newly allocated
-<span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPRoute]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-netmask-to-prefix"></a><h3>nm_utils_ip4_netmask_to_prefix ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span>
-nm_utils_ip4_netmask_to_prefix (<em class="parameter"><code><span class="type">guint32</span> netmask</code></em>);</pre>
-<div class="refsect3">
-<a name="nm-utils-ip4-netmask-to-prefix.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>netmask</p></td>
-<td class="parameter_description"><p>an IPv4 netmask in network byte order.
-Usually the netmask has all leading bits up to the prefix
-set so that the netmask is identical to having the first
-prefix bits of the address set.
-If that is not the case and there are "holes" in the
-mask, the prefix is determined based on the lowest bit
-set.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-netmask-to-prefix.returns"></a><h4>Returns</h4>
-<p> the CIDR prefix represented by the netmask</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-prefix-to-netmask"></a><h3>nm_utils_ip4_prefix_to_netmask ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span>
-nm_utils_ip4_prefix_to_netmask (<em class="parameter"><code><span class="type">guint32</span> prefix</code></em>);</pre>
-<div class="refsect3">
-<a name="nm-utils-ip4-prefix-to-netmask.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>prefix</p></td>
-<td class="parameter_description"><p>a CIDR prefix, must be not larger than 32.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-prefix-to-netmask.returns"></a><h4>Returns</h4>
-<p> the netmask represented by the prefix, in network byte order</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip4-get-default-prefix"></a><h3>nm_utils_ip4_get_default_prefix ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span>
-nm_utils_ip4_get_default_prefix (<em class="parameter"><code><span class="type">guint32</span> ip</code></em>);</pre>
-<p>When the Internet was originally set up, various ranges of IP addresses were
-segmented into three network classes: A, B, and C.  This function will return
-a prefix that is associated with the IP address specified defining where it
-falls in the predefined classes.</p>
-<div class="refsect3">
-<a name="nm-utils-ip4-get-default-prefix.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>ip</p></td>
-<td class="parameter_description"><p>an IPv4 address (in network byte order)</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip4-get-default-prefix.returns"></a><h4>Returns</h4>
-<p> the default class prefix for the given IP</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip6-dns-to-variant"></a><h3>nm_utils_ip6_dns_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip6_dns_to_variant (<em class="parameter"><code><span class="type">char</span> **dns</code></em>);</pre>
-<p>Utility function to convert an array of IP address strings int a <span class="type">GVariant</span> of
-type 'aay' representing an array of IPv6 addresses.</p>
-<p>If a string cannot be parsed, it will be silently ignored.</p>
-<div class="refsect3">
-<a name="nm-utils-ip6-dns-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>dns</p></td>
-<td class="parameter_description"><p>an array of IP address strings. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip6-dns-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>dns</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip6-dns-from-variant"></a><h3>nm_utils_ip6_dns_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> **
-nm_utils_ip6_dns_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> of type 'aay' representing a list of
-IPv6 addresses into an array of IP address strings. Each "ay" entry must be
-a IPv6 address in binary form (16 bytes long). Invalid entries are silently
-ignored.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip6-dns-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <span class="type">GVariant</span> of type 'aay'</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip6-dns-from-variant.returns"></a><h4>Returns</h4>
-<p>a <code class="literal">NULL</code>-terminated array of IP address strings. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> utf8]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip6-addresses-to-variant"></a><h3>nm_utils_ip6_addresses_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip6_addresses_to_variant (<em class="parameter"><code><span class="type">GPtrArray</span> *addresses</code></em>,
-                                   <em class="parameter"><code>const <span class="type">char</span> *gateway</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects representing
-IPv6 addresses into a <span class="type">GVariant</span> of type 'a(ayuay)' representing an array of
-NetworkManager IPv6 addresses (which are tuples of address, prefix, and
-gateway).  The "gateway" field of the first address will get the value of
-<em class="parameter"><code>gateway</code></em>
- (if non-<code class="literal">NULL</code>). In all of the other addresses, that field will be
-all 0s.</p>
-<div class="refsect3">
-<a name="nm-utils-ip6-addresses-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>addresses</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPAddress]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>gateway</p></td>
-<td class="parameter_description"><p>the gateway IP address. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip6-addresses-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>addresses</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip6-addresses-from-variant"></a><h3>nm_utils_ip6_addresses_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
-nm_utils_ip6_addresses_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
-                                     <em class="parameter"><code><span class="type">char</span> **out_gateway</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> of type 'a(ayuay)' representing a
-list of NetworkManager IPv6 addresses (which are tuples of address, prefix,
-and gateway) into a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. The "gateway" field
-of the first address (if set) will be returned in <em class="parameter"><code>out_gateway</code></em>
-; the "gateway"
-fields of the other addresses are ignored. Note that invalid addresses are
-discarded but the valid addresses are still returned.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip6-addresses-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <span class="type">GVariant</span> of type 'a(ayuay)'</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_gateway</p></td>
-<td class="parameter_description"><p>on return, will
-contain the IP gateway. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip6-addresses-from-variant.returns"></a><h4>Returns</h4>
-<p>a newly allocated
-<span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPAddress]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip6-routes-to-variant"></a><h3>nm_utils_ip6_routes_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip6_routes_to_variant (<em class="parameter"><code><span class="type">GPtrArray</span> *routes</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects representing
-IPv6 routes into a <span class="type">GVariant</span> of type 'a(ayuayu)' representing an array of
-NetworkManager IPv6 routes (which are tuples of route, prefix, next hop, and
-metric).</p>
-<div class="refsect3">
-<a name="nm-utils-ip6-routes-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>routes</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPRoute]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip6-routes-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>routes</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip6-routes-from-variant"></a><h3>nm_utils_ip6_routes_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
-nm_utils_ip6_routes_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> of type 'a(ayuayu)' representing an
-array of NetworkManager IPv6 routes (which are tuples of route, prefix, next
-hop, and metric) into a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. Note that invalid
-routes are ignored but the valid ones are still returned.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip6-routes-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p><span class="type">GVariant</span> of type 'a(ayuayu)'</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip6-routes-from-variant.returns"></a><h4>Returns</h4>
-<p>a newly allocated
-<span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPRoute]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip-addresses-to-variant"></a><h3>nm_utils_ip_addresses_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip_addresses_to_variant (<em class="parameter"><code><span class="type">GPtrArray</span> *addresses</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects representing
-IPv4 or IPv6 addresses into a <span class="type">GVariant</span> of type 'aa{sv}' representing an
-array of new-style NetworkManager IP addresses. All addresses will include
-"address" (an IP address string), and "prefix" (a uint). Some addresses may
-include additional attributes.</p>
-<div class="refsect3">
-<a name="nm-utils-ip-addresses-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>addresses</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPAddress]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip-addresses-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>addresses</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.42</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip-addresses-from-variant"></a><h3>nm_utils_ip_addresses_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
-nm_utils_ip_addresses_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
-                                    <em class="parameter"><code><span class="type">int</span> family</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> representing a list of new-style
-NetworkManager IPv4 or IPv6 addresses (as described in the documentation for
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip-addresses-to-variant" title="nm_utils_ip_addresses_to_variant ()"><code class="function">nm_utils_ip_addresses_to_variant()</code></a>) into a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a>
-objects. Note that invalid addresses are discarded but the valid addresses
-are still returned.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip-addresses-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <span class="type">GVariant</span> of type 'aa{sv}'</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>family</p></td>
-<td class="parameter_description"><p>an IP address family</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip-addresses-from-variant.returns"></a><h4>Returns</h4>
-<p>a newly allocated
-<span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPAddress"><span class="type">NMIPAddress</span></a> objects. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPAddress]</span></p>
-</div>
-<p class="since">Since: 1.42</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip-routes-to-variant"></a><h3>nm_utils_ip_routes_to_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GVariant</span> *
-nm_utils_ip_routes_to_variant (<em class="parameter"><code><span class="type">GPtrArray</span> *routes</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects representing
-IPv4 or IPv6 routes into a <span class="type">GVariant</span> of type 'aa{sv}' representing an array
-of new-style NetworkManager IP routes. All routes will include "dest" (an IP
-address string), "prefix" (an uint) and optionally "next-hop" (an IP address
-string) and "metric" (an uint). Some routes may include additional attributes.
-Note that invalid routes are discarded and only a warning is emitted, but the
-valid routes are still returned.</p>
-<div class="refsect3">
-<a name="nm-utils-ip-routes-to-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>routes</p></td>
-<td class="parameter_description"><p>an array of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPRoute]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip-routes-to-variant.returns"></a><h4>Returns</h4>
-<p>a new floating <span class="type">GVariant</span> representing <em class="parameter"><code>routes</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.42</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ip-routes-from-variant"></a><h3>nm_utils_ip_routes_from_variant ()</h3>
-<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
-nm_utils_ip_routes_from_variant (<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>,
-                                 <em class="parameter"><code><span class="type">int</span> family</code></em>);</pre>
-<p>Utility function to convert a <span class="type">GVariant</span> representing a list of new-style
-NetworkManager IPv4 or IPv6 addresses (as described in the documentation for
-<a class="link" href="libnm-nm-utils.html#nm-utils-ip-routes-to-variant" title="nm_utils_ip_routes_to_variant ()"><code class="function">nm_utils_ip_routes_to_variant()</code></a>) into a <span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects.
-Invalid routes are discarded but the valid routes are still returned.</p>
-<p>Since 1.46, an empty list is returned if the variant type is not valid
-(before it was checked as assertion)</p>
-<div class="refsect3">
-<a name="nm-utils-ip-routes-from-variant.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a <span class="type">GVariant</span> of type 'aa{sv}'</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>family</p></td>
-<td class="parameter_description"><p>an IP address family</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ip-routes-from-variant.returns"></a><h4>Returns</h4>
-<p>a newly allocated
-<span class="type">GPtrArray</span> of <a class="link" href="NMSettingIPConfig.html#NMIPRoute"><span class="type">NMIPRoute</span></a> objects. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMIPRoute]</span></p>
-</div>
-<p class="since">Since: 1.42</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-uuid-generate"></a><h3>nm_utils_uuid_generate ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_uuid_generate (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="nm-utils-uuid-generate.returns"></a><h4>Returns</h4>
-<p> a newly allocated UUID suitable for use as the <a class="link" href="NMSettingConnection.html" title="NMSettingConnection"><span class="type">NMSettingConnection</span></a>
-object's <span class="type">“id”</span>: property.  Should be freed with <code class="function">g_free()</code></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="NMUtilsFileSearchInPathsPredicate"></a><h3>NMUtilsFileSearchInPathsPredicate ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-<span class="c_punctuation">(</span>*NMUtilsFileSearchInPathsPredicate<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
-                                      <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="NMUtilsCheckFilePredicate"></a><h3>NMUtilsCheckFilePredicate ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-<span class="c_punctuation">(</span>*NMUtilsCheckFilePredicate<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">char</span> *filename</code></em>,
-                              <em class="parameter"><code>const <span class="type">struct stat</span> *stat</code></em>,
-                              <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>,
-                              <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-file-search-in-paths"></a><h3>nm_utils_file_search_in_paths ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *
-nm_utils_file_search_in_paths (<em class="parameter"><code>const <span class="type">char</span> *progname</code></em>,
-                               <em class="parameter"><code>const <span class="type">char</span> *try_first</code></em>,
-                               <em class="parameter"><code>const <span class="type">char</span> *const *paths</code></em>,
-                               <em class="parameter"><code><span class="type">GFileTest</span> file_test_flags</code></em>,
-                               <em class="parameter"><code><a class="link" href="libnm-nm-utils.html#NMUtilsFileSearchInPathsPredicate" title="NMUtilsFileSearchInPathsPredicate ()"><span class="type">NMUtilsFileSearchInPathsPredicate</span></a> predicate</code></em>,
-                               <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>,
-                               <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Searches for a <em class="parameter"><code>progname</code></em>
- file in a list of search <em class="parameter"><code>paths</code></em>
-.</p>
-<div class="refsect3">
-<a name="nm-utils-file-search-in-paths.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>progname</p></td>
-<td class="parameter_description"><p>the helper program name, like "iptables"
-Must be a non-empty string, without path separator (/).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>try_first</p></td>
-<td class="parameter_description"><p>a custom path to try first before searching.
-It is silently ignored if it is empty or not an absolute path. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>paths</p></td>
-<td class="parameter_description"><p>a <code class="literal">NULL</code> terminated list of search paths.
-Can be empty or <code class="literal">NULL</code>, in which case only <em class="parameter"><code>try_first</code></em>
-is checked. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>file_test_flags</p></td>
-<td class="parameter_description"><p>the flags passed to <code class="function">g_file_test()</code> when searching
-for <em class="parameter"><code>progname</code></em>
-. Set it to 0 to skip the <code class="function">g_file_test()</code>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>predicate</p></td>
-<td class="parameter_description"><p>if given, pass the file name to this function
-for additional checks. This check is performed after the check for
-<em class="parameter"><code>file_test_flags</code></em>
-. You cannot omit both <em class="parameter"><code>file_test_flags</code></em>
-and <em class="parameter"><code>predicate</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>user data for <em class="parameter"><code>predicate</code></em>
-function. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>on failure, set a "not found" error <code class="literal">G_IO_ERROR</code> <code class="literal">G_IO_ERROR_NOT_FOUND</code>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-file-search-in-paths.returns"></a><h4>Returns</h4>
-<p>the full path to the helper, if found, or <code class="literal">NULL</code> if not found.
-The returned string is not owned by the caller, but later
-invocations of the function might overwrite it. </p>
-<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-freq-to-channel"></a><h3>nm_utils_wifi_freq_to_channel ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span>
-nm_utils_wifi_freq_to_channel (<em class="parameter"><code><span class="type">guint32</span> freq</code></em>);</pre>
-<p>Utility function to translate a Wi-Fi frequency to its corresponding channel.</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-freq-to-channel.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>freq</p></td>
-<td class="parameter_description"><p>frequency</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wifi-freq-to-channel.returns"></a><h4>Returns</h4>
-<p> the channel represented by the frequency or 0</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-channel-to-freq"></a><h3>nm_utils_wifi_channel_to_freq ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span>
-nm_utils_wifi_channel_to_freq (<em class="parameter"><code><span class="type">guint32</span> channel</code></em>,
-                               <em class="parameter"><code>const <span class="type">char</span> *band</code></em>);</pre>
-<p>Utility function to translate a Wi-Fi channel to its corresponding frequency.</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-channel-to-freq.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>channel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>band</p></td>
-<td class="parameter_description"><p>frequency band for wireless ("a" or "bg")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wifi-channel-to-freq.returns"></a><h4>Returns</h4>
-<p> the frequency represented by the channel of the band,
-or -1 when the freq is invalid, or 0 when the band
-is invalid</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-find-next-channel"></a><h3>nm_utils_wifi_find_next_channel ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint32</span>
-nm_utils_wifi_find_next_channel (<em class="parameter"><code><span class="type">guint32</span> channel</code></em>,
-                                 <em class="parameter"><code><span class="type">int</span> direction</code></em>,
-                                 <em class="parameter"><code><span class="type">char</span> *band</code></em>);</pre>
-<p>Utility function to find out next/previous Wi-Fi channel for a channel.</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-find-next-channel.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>current channel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>direction</p></td>
-<td class="parameter_description"><p>whether going downward (0 or less) or upward (1 or more)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>band</p></td>
-<td class="parameter_description"><p>frequency band for wireless ("a" or "bg")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wifi-find-next-channel.returns"></a><h4>Returns</h4>
-<p> the next channel in the specified direction or 0</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-is-channel-valid"></a><h3>nm_utils_wifi_is_channel_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_wifi_is_channel_valid (<em class="parameter"><code><span class="type">guint32</span> channel</code></em>,
-                                <em class="parameter"><code>const <span class="type">char</span> *band</code></em>);</pre>
-<p>Utility function to verify Wi-Fi channel validity.</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-is-channel-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>channel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>band</p></td>
-<td class="parameter_description"><p>frequency band for wireless ("a" or "bg")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wifi-is-channel-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> or <code class="literal">FALSE</code></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-2ghz-freqs"></a><h3>nm_utils_wifi_2ghz_freqs ()</h3>
-<pre class="programlisting">const <span class="returnvalue">guint</span> *
-nm_utils_wifi_2ghz_freqs (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Utility function to return 2.4 GHz Wi-Fi frequencies (802.11bg band).</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-2ghz-freqs.returns"></a><h4>Returns</h4>
-<p> zero-terminated array of frequencies numbers (in MHz)</p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-5ghz-freqs"></a><h3>nm_utils_wifi_5ghz_freqs ()</h3>
-<pre class="programlisting">const <span class="returnvalue">guint</span> *
-nm_utils_wifi_5ghz_freqs (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Utility function to return 5 GHz Wi-Fi frequencies (802.11a band).</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-5ghz-freqs.returns"></a><h4>Returns</h4>
-<p> zero-terminated array of frequencies numbers (in MHz)</p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-wifi-strength-bars"></a><h3>nm_utils_wifi_strength_bars ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *
-nm_utils_wifi_strength_bars (<em class="parameter"><code><span class="type">guint8</span> strength</code></em>);</pre>
-<p>Converts <em class="parameter"><code>strength</code></em>
- into a 4-character-wide graphical representation of
-strength suitable for printing to stdout.</p>
-<p>Previous versions used to take a guess at the terminal type and possibly
-return a wide UTF-8 encoded string. Now it always returns a 7-bit
-clean strings of one to 0 to 4 asterisks. Users that actually need
-the functionality are encouraged to make their implementations instead.</p>
-<div class="refsect3">
-<a name="nm-utils-wifi-strength-bars.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>strength</p></td>
-<td class="parameter_description"><p>the access point strength, from 0 to 100</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-wifi-strength-bars.returns"></a><h4>Returns</h4>
-<p> the graphical representation of the access point strength</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-len"></a><h3>nm_utils_hwaddr_len ()</h3>
-<pre class="programlisting"><span class="returnvalue">gsize</span>
-nm_utils_hwaddr_len (<em class="parameter"><code><span class="type">int</span> type</code></em>);</pre>
-<p>Returns the length in octets of a hardware address of type <em class="parameter"><code>type</code></em>
-.</p>
-<p>Before 1.28, it was an error to call this function with any value other than
-<code class="literal">ARPHRD_ETHER</code> or <code class="literal">ARPHRD_INFINIBAND</code>.</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-len.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the type of address; either <code class="literal">ARPHRD_ETHER</code> or
-<code class="literal">ARPHRD_INFINIBAND</code></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-len.returns"></a><h4>Returns</h4>
-<p> the length or zero if the type is unrecognized.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-ntoa"></a><h3>nm_utils_hwaddr_ntoa ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_hwaddr_ntoa (<em class="parameter"><code><span class="type">gconstpointer</span> addr</code></em>,
-                      <em class="parameter"><code><span class="type">gsize</span> length</code></em>);</pre>
-<p>Converts <em class="parameter"><code>addr</code></em>
- to textual form.</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-ntoa.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>addr</p></td>
-<td class="parameter_description"><p>a binary hardware address. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> guint8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>addr</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-ntoa.returns"></a><h4>Returns</h4>
-<p>the textual form of <em class="parameter"><code>addr</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-atoba"></a><h3>nm_utils_hwaddr_atoba ()</h3>
-<pre class="programlisting"><span class="returnvalue">GByteArray</span> *
-nm_utils_hwaddr_atoba (<em class="parameter"><code>const <span class="type">char</span> *asc</code></em>,
-                       <em class="parameter"><code><span class="type">gsize</span> length</code></em>);</pre>
-<p>Parses <em class="parameter"><code>asc</code></em>
- and converts it to binary form in a <span class="type">GByteArray</span>. See
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-aton" title="nm_utils_hwaddr_aton ()"><code class="function">nm_utils_hwaddr_aton()</code></a> if you don't want a <span class="type">GByteArray</span>.</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-atoba.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>asc</p></td>
-<td class="parameter_description"><p>the ASCII representation of a hardware address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the expected length in bytes of the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-atoba.returns"></a><h4>Returns</h4>
-<p>a new <span class="type">GByteArray</span>, or <code class="literal">NULL</code> if <em class="parameter"><code>asc</code></em>
-couldn't
-be parsed. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-aton"></a><h3>nm_utils_hwaddr_aton ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint8</span> *
-nm_utils_hwaddr_aton (<em class="parameter"><code>const <span class="type">char</span> *asc</code></em>,
-                      <em class="parameter"><code><span class="type">gpointer</span> buffer</code></em>,
-                      <em class="parameter"><code><span class="type">gsize</span> length</code></em>);</pre>
-<p>Parses <em class="parameter"><code>asc</code></em>
- and converts it to binary form in <em class="parameter"><code>buffer</code></em>
-.
-Bytes in <em class="parameter"><code>asc</code></em>
- can be separated by colons (:), or hyphens (-), but not mixed.</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-aton.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>asc</p></td>
-<td class="parameter_description"><p>the ASCII representation of a hardware address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>buffer to store the result into. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> guint8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the expected length in bytes of the result and
-the size of the buffer in bytes.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-aton.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>buffer</code></em>
-, or <code class="literal">NULL</code> if <em class="parameter"><code>asc</code></em>
-couldn't be parsed
-or would be shorter or longer than <em class="parameter"><code>length</code></em>
-.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-valid"></a><h3>nm_utils_hwaddr_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_hwaddr_valid (<em class="parameter"><code>const <span class="type">char</span> *asc</code></em>,
-                       <em class="parameter"><code><span class="type">gssize</span> length</code></em>);</pre>
-<p>Parses <em class="parameter"><code>asc</code></em>
- to see if it is a valid hardware address of the given
-length.</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>asc</p></td>
-<td class="parameter_description"><p>the ASCII representation of a hardware address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the length of address that <em class="parameter"><code>asc</code></em>
-is expected to convert to
-(or -1 to accept any length up to <a class="link" href="libnm-nm-utils.html#NM-UTILS-HWADDR-LEN-MAX:CAPS" title="NM_UTILS_HWADDR_LEN_MAX"><code class="literal">NM_UTILS_HWADDR_LEN_MAX</code></a>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if <em class="parameter"><code>asc</code></em>
-appears to be a valid hardware address
-of the indicated length, <code class="literal">FALSE</code> if not.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-canonical"></a><h3>nm_utils_hwaddr_canonical ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_hwaddr_canonical (<em class="parameter"><code>const <span class="type">char</span> *asc</code></em>,
-                           <em class="parameter"><code><span class="type">gssize</span> length</code></em>);</pre>
-<p>Parses <em class="parameter"><code>asc</code></em>
- to see if it is a valid hardware address of the given
-length, and if so, returns it in canonical form (uppercase, with
-leading 0s as needed, and with colons rather than hyphens).</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-canonical.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>asc</p></td>
-<td class="parameter_description"><p>the ASCII representation of a hardware address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the length of address that <em class="parameter"><code>asc</code></em>
-is expected to convert to
-(or -1 to accept any length up to <a class="link" href="libnm-nm-utils.html#NM-UTILS-HWADDR-LEN-MAX:CAPS" title="NM_UTILS_HWADDR_LEN_MAX"><code class="literal">NM_UTILS_HWADDR_LEN_MAX</code></a>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-canonical.returns"></a><h4>Returns</h4>
-<p>the canonicalized address if <em class="parameter"><code>asc</code></em>
-appears to
-be a valid hardware address of the indicated length, <code class="literal">NULL</code> if not. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hwaddr-matches"></a><h3>nm_utils_hwaddr_matches ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_hwaddr_matches (<em class="parameter"><code><span class="type">gconstpointer</span> hwaddr1</code></em>,
-                         <em class="parameter"><code><span class="type">gssize</span> hwaddr1_len</code></em>,
-                         <em class="parameter"><code><span class="type">gconstpointer</span> hwaddr2</code></em>,
-                         <em class="parameter"><code><span class="type">gssize</span> hwaddr2_len</code></em>);</pre>
-<p>Generalized hardware address comparison function. Tests if <em class="parameter"><code>hwaddr1</code></em>
- and
-<em class="parameter"><code>hwaddr2</code></em>
- "equal" (or more precisely, "equivalent"), with several advantages
-over a simple <code class="function">memcmp()</code>:</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><p>If <em class="parameter"><code>hwaddr1_len</code></em>
- or <em class="parameter"><code>hwaddr2_len</code></em>
- is -1, then the corresponding address is
- assumed to be ASCII rather than binary, and will be converted to binary
- before being compared.</p></li>
-<li class="listitem"><p>If <em class="parameter"><code>hwaddr1</code></em>
- or <em class="parameter"><code>hwaddr2</code></em>
- is <code class="literal">NULL</code>, it is treated instead as though it was
- a zero-filled buffer <em class="parameter"><code>hwaddr1_len</code></em>
- or <em class="parameter"><code>hwaddr2_len</code></em>
- bytes long.</p></li>
-<li class="listitem"><p>If <em class="parameter"><code>hwaddr1</code></em>
- and <em class="parameter"><code>hwaddr2</code></em>
- are InfiniBand hardware addresses (that is, if
- they are <code class="literal">INFINIBAND_ALEN</code> bytes long in binary form)
- then only the last 8 bytes are compared, since those are the only bytes
- that actually identify the hardware. (The other 12 bytes will change
- depending on the configuration of the InfiniBand fabric that the device
- is connected to.)</p></li>
-</ol></div>
-<p>If a passed-in ASCII hardware address cannot be parsed, or would parse to an
-address larger than <a class="link" href="libnm-nm-utils.html#NM-UTILS-HWADDR-LEN-MAX:CAPS" title="NM_UTILS_HWADDR_LEN_MAX"><code class="literal">NM_UTILS_HWADDR_LEN_MAX</code></a>, then it will silently fail to
-match. (This means that externally-provided address strings do not need to be
-sanity-checked before comparing them against known good addresses; they are
-guaranteed to not match if they are invalid.)</p>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-matches.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>hwaddr1</p></td>
-<td class="parameter_description"><p>pointer to a binary or ASCII hardware address, or <code class="literal">NULL</code>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>hwaddr1_len</p></td>
-<td class="parameter_description"><p>size of <em class="parameter"><code>hwaddr1</code></em>
-, or -1 if <em class="parameter"><code>hwaddr1</code></em>
-is ASCII</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>hwaddr2</p></td>
-<td class="parameter_description"><p>pointer to a binary or ASCII hardware address, or <code class="literal">NULL</code>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>hwaddr2_len</p></td>
-<td class="parameter_description"><p>size of <em class="parameter"><code>hwaddr2</code></em>
-, or -1 if <em class="parameter"><code>hwaddr2</code></em>
-is ASCII</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hwaddr-matches.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if <em class="parameter"><code>hwaddr1</code></em>
-and <em class="parameter"><code>hwaddr2</code></em>
-are equivalent, <code class="literal">FALSE</code> if they are
-different (or either of them is invalid).</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-bin2hexstr"></a><h3>nm_utils_bin2hexstr ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_bin2hexstr (<em class="parameter"><code><span class="type">gconstpointer</span> src</code></em>,
-                     <em class="parameter"><code><span class="type">gsize</span> len</code></em>,
-                     <em class="parameter"><code><span class="type">int</span> final_len</code></em>);</pre>
-<p>Converts the byte array <em class="parameter"><code>src</code></em>
- into a hexadecimal string. If <em class="parameter"><code>final_len</code></em>
- is
-greater than -1, the returned string is terminated at that index
-(returned_string[final_len] == '\0'),</p>
-<div class="refsect3">
-<a name="nm-utils-bin2hexstr.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>an array of bytes. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> guint8][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of the <em class="parameter"><code>src</code></em>
-array</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>final_len</p></td>
-<td class="parameter_description"><p>an index where to cut off the returned string, or -1</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-bin2hexstr.returns"></a><h4>Returns</h4>
-<p>the textual form of <em class="parameter"><code>bytes</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-hexstr2bin"></a><h3>nm_utils_hexstr2bin ()</h3>
-<pre class="programlisting"><span class="returnvalue">GBytes</span> *
-nm_utils_hexstr2bin (<em class="parameter"><code>const <span class="type">char</span> *hex</code></em>);</pre>
-<p>Converts a hexadecimal string <em class="parameter"><code>hex</code></em>
- into an array of bytes.  The optional
-separator ':' may be used between single or pairs of hexadecimal characters,
-eg "00:11" or "0:1".  Any "0x" at the beginning of <em class="parameter"><code>hex</code></em>
- is ignored.  <em class="parameter"><code>hex</code></em>
-
-may not start or end with ':'.</p>
-<div class="refsect3">
-<a name="nm-utils-hexstr2bin.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>hex</p></td>
-<td class="parameter_description"><p>a string of hexadecimal characters with optional ':' separators</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-hexstr2bin.returns"></a><h4>Returns</h4>
-<p>the converted bytes, or <code class="literal">NULL</code> on error. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-iface-valid-name"></a><h3>nm_utils_iface_valid_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_iface_valid_name (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
-<div class="warning">
-<p><code class="literal">nm_utils_iface_valid_name</code> has been deprecated since version 1.6 and should not be used in newly-written code.</p>
-<p>Use <a class="link" href="libnm-nm-utils.html#nm-utils-is-valid-iface-name" title="nm_utils_is_valid_iface_name ()"><code class="function">nm_utils_is_valid_iface_name()</code></a> instead, with better error reporting.</p>
-</div>
-<p>Validate the network interface name.</p>
-<div class="refsect3">
-<a name="nm-utils-iface-valid-name.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>Name of interface. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-iface-valid-name.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if interface name is valid, otherwise <code class="literal">FALSE</code> is returned.</p>
-<p>Before 1.20, this function did not accept <code class="literal">NULL</code> as <em class="parameter"><code>name</code></em>
-argument. If you
-want to run against older versions of libnm, don't pass <code class="literal">NULL</code>.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-is-valid-iface-name"></a><h3>nm_utils_is_valid_iface_name ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_is_valid_iface_name (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
-                              <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Validate the network interface name.</p>
-<p>This function is a 1:1 copy of the kernel's interface validation
-function in net/core/dev.c.</p>
-<div class="refsect3">
-<a name="nm-utils-is-valid-iface-name.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>Name of interface. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location to store the error occurring, or <code class="literal">NULL</code> to ignore</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-is-valid-iface-name.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if interface name is valid, otherwise <code class="literal">FALSE</code> is returned.</p>
-<p>Before 1.20, this function did not accept <code class="literal">NULL</code> as <em class="parameter"><code>name</code></em>
-argument. If you
-want to run against older versions of libnm, don't pass <code class="literal">NULL</code>.</p>
-</div>
-<p class="since">Since: 1.6</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-is-uuid"></a><h3>nm_utils_is_uuid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_is_uuid (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>);</pre>
-<div class="warning">
-<p><code class="literal">nm_utils_is_uuid</code> has been deprecated since version 1.32 and should not be used in newly-written code.</p>
-<p>older versions of NetworkManager had a wrong
-  understanding of what makes a valid UUID. This function can thus
-  accept some inputs as valid, which in fact are not valid UUIDs.</p>
-</div>
-<p>Checks if <em class="parameter"><code>str</code></em>
- is a UUID</p>
-<div class="refsect3">
-<a name="nm-utils-is-uuid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>a string that might be a UUID. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-is-uuid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if <em class="parameter"><code>str</code></em>
-is a UUID, <code class="literal">FALSE</code> if not</p>
-<p>In older versions, <a class="link" href="libnm-nm-utils.html#nm-utils-is-uuid" title="nm_utils_is_uuid ()"><code class="function">nm_utils_is_uuid()</code></a> did not accept <code class="literal">NULL</code> as <em class="parameter"><code>str</code></em>
-argument. Don't pass <code class="literal">NULL</code> if you run against older versions of libnm.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-inet4-ntop"></a><h3>nm_utils_inet4_ntop ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *
-nm_utils_inet4_ntop (<em class="parameter"><code><span class="type">guint32</span> inaddr</code></em>,
-                     <em class="parameter"><code><span class="type">char</span> *dst</code></em>);</pre>
-<p>Wrapper for inet_ntop.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="nm-utils-inet4-ntop.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>inaddr</p></td>
-<td class="parameter_description"><p>the address that should be converted to string.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dst</p></td>
-<td class="parameter_description"><p>the destination buffer, it must contain at least
-<code class="literal">INET_ADDRSTRLEN</code> or <code class="literal">NM_INET_ADDRSTRLEN</code>
-characters. If set to <code class="literal">NULL</code>, it will return a pointer to an internal, static
-buffer (shared with <a class="link" href="libnm-nm-utils.html#nm-utils-inet6-ntop" title="nm_utils_inet6_ntop ()"><code class="function">nm_utils_inet6_ntop()</code></a>).  Beware, that the internal
-buffer will be overwritten with ever new call of <a class="link" href="libnm-nm-utils.html#nm-utils-inet4-ntop" title="nm_utils_inet4_ntop ()"><code class="function">nm_utils_inet4_ntop()</code></a> or
-<a class="link" href="libnm-nm-utils.html#nm-utils-inet6-ntop" title="nm_utils_inet6_ntop ()"><code class="function">nm_utils_inet6_ntop()</code></a> that does not provide its own <em class="parameter"><code>dst</code></em>
-buffer. Since
-1.28, the internal buffer is thread local and thus thread safe. Before
-it was not thread safe. When in doubt, pass your own
-<em class="parameter"><code>dst</code></em>
-buffer to avoid these issues.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-inet4-ntop.returns"></a><h4>Returns</h4>
-<p> the input buffer <em class="parameter"><code>dst</code></em>
-, or a pointer to an
-internal, static buffer. This function cannot fail.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-inet6-ntop"></a><h3>nm_utils_inet6_ntop ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *
-nm_utils_inet6_ntop (<em class="parameter"><code>const <span class="type">struct in6_addr</span> *in6addr</code></em>,
-                     <em class="parameter"><code><span class="type">char</span> *dst</code></em>);</pre>
-<p>Wrapper for inet_ntop.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="nm-utils-inet6-ntop.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>in6addr</p></td>
-<td class="parameter_description"><p>the address that should be converted to string.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dst</p></td>
-<td class="parameter_description"><p>the destination buffer, it must contain at least
-<code class="literal">INET6_ADDRSTRLEN</code> or <code class="literal">NM_INET_ADDRSTRLEN</code>
-characters. If set to <code class="literal">NULL</code>, it will return a pointer to an internal, static
-buffer (shared with <a class="link" href="libnm-nm-utils.html#nm-utils-inet4-ntop" title="nm_utils_inet4_ntop ()"><code class="function">nm_utils_inet4_ntop()</code></a>).  Beware, that the internal
-buffer will be overwritten with ever new call of <a class="link" href="libnm-nm-utils.html#nm-utils-inet4-ntop" title="nm_utils_inet4_ntop ()"><code class="function">nm_utils_inet4_ntop()</code></a> or
-<a class="link" href="libnm-nm-utils.html#nm-utils-inet6-ntop" title="nm_utils_inet6_ntop ()"><code class="function">nm_utils_inet6_ntop()</code></a> that does not provide its own <em class="parameter"><code>dst</code></em>
-buffer. Since
-1.28, the internal buffer is thread local and thus thread safe. Before
-it was not thread safe. When in doubt, pass your own
-<em class="parameter"><code>dst</code></em>
-buffer to avoid these issues.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-inet6-ntop.returns"></a><h4>Returns</h4>
-<p> the input buffer <em class="parameter"><code>dst</code></em>
-, or a pointer to an
-internal, static buffer. <code class="literal">NULL</code> is not allowed as <em class="parameter"><code>in6addr</code></em>
-,
-otherwise, this function cannot fail.</p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ipaddr-valid"></a><h3>nm_utils_ipaddr_valid ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_ipaddr_valid (<em class="parameter"><code><span class="type">int</span> family</code></em>,
-                       <em class="parameter"><code>const <span class="type">char</span> *ip</code></em>);</pre>
-<p>Checks if <em class="parameter"><code>ip</code></em>
- contains a valid IP address of the given family.</p>
-<div class="refsect3">
-<a name="nm-utils-ipaddr-valid.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>family</p></td>
-<td class="parameter_description"><p><code class="literal">AF_INET</code> or <code class="literal">AF_INET6</code>, or
-<code class="literal">AF_UNSPEC</code> to accept either</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ip</p></td>
-<td class="parameter_description"><p>an IP address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-ipaddr-valid.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> or <code class="literal">FALSE</code></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-check-virtual-device-compatibility"></a><h3>nm_utils_check_virtual_device_compatibility ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_check_virtual_device_compatibility
-                               (<em class="parameter"><code><span class="type">GType</span> virtual_type</code></em>,
-                                <em class="parameter"><code><span class="type">GType</span> other_type</code></em>);</pre>
-<p>Determines if a connection of type <em class="parameter"><code>virtual_type</code></em>
- can (in the
-general case) work with connections of type <em class="parameter"><code>other_type</code></em>
-.</p>
-<p>If <em class="parameter"><code>virtual_type</code></em>
- is <code class="literal">NM_TYPE_SETTING_VLAN</code>, then this checks if
-<em class="parameter"><code>other_type</code></em>
- is a valid type for the parent of a VLAN.</p>
-<p>If <em class="parameter"><code>virtual_type</code></em>
- is a "controller" type (eg, <code class="literal">NM_TYPE_SETTING_BRIDGE</code>),
-then this checks if <em class="parameter"><code>other_type</code></em>
- is a valid type for a port of that
-controller.</p>
-<p>Note that even if this returns <code class="literal">TRUE</code> it is not guaranteed that
-<span class="emphasis"><em>every</em></span> connection of type <em class="parameter"><code>other_type</code></em>
- is
-compatible with <em class="parameter"><code>virtual_type</code></em>
-; it may depend on the exact
-configuration of the two connections, or on the capabilities of an
-underlying device driver.</p>
-<div class="refsect3">
-<a name="nm-utils-check-virtual-device-compatibility.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>virtual_type</p></td>
-<td class="parameter_description"><p>a virtual connection type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>other_type</p></td>
-<td class="parameter_description"><p>a connection type to test against <em class="parameter"><code>virtual_type</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-check-virtual-device-compatibility.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> or <code class="literal">FALSE</code></p>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-bond-mode-string-to-int"></a><h3>nm_utils_bond_mode_string_to_int ()</h3>
-<pre class="programlisting"><span class="returnvalue">int</span>
-nm_utils_bond_mode_string_to_int (<em class="parameter"><code>const <span class="type">char</span> *mode</code></em>);</pre>
-<p>Convert bonding mode from string representation to numeric value.
-See https://www.kernel.org/doc/Documentation/networking/bonding.txt for
-available modes.
-The <em class="parameter"><code>mode</code></em>
- string can be either a descriptive name or a number (as string).</p>
-<div class="refsect3">
-<a name="nm-utils-bond-mode-string-to-int.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>bonding mode as string</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-bond-mode-string-to-int.returns"></a><h4>Returns</h4>
-<p> numeric bond mode, or -1 on error</p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-bond-mode-int-to-string"></a><h3>nm_utils_bond_mode_int_to_string ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> *
-nm_utils_bond_mode_int_to_string (<em class="parameter"><code><span class="type">int</span> mode</code></em>);</pre>
-<p>Convert bonding mode from integer value to descriptive name.
-See https://www.kernel.org/doc/Documentation/networking/bonding.txt for
-available modes.</p>
-<div class="refsect3">
-<a name="nm-utils-bond-mode-int-to-string.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody><tr>
-<td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>bonding mode as a numeric value</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-bond-mode-int-to-string.returns"></a><h4>Returns</h4>
-<p> bonding mode string, or NULL on error</p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-enum-to-str"></a><h3>nm_utils_enum_to_str ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_enum_to_str (<em class="parameter"><code><span class="type">GType</span> type</code></em>,
-                      <em class="parameter"><code><span class="type">int</span> value</code></em>);</pre>
-<p>Converts an enum value to its string representation. If the enum is a
-<code class="literal">G_TYPE_FLAGS</code> the function returns a comma-separated list of matching values.
-If the value has no corresponding string representation, it is converted
-to a number. For enums it is converted to a decimal number, for flags
-to an (unsigned) hex number.</p>
-<div class="refsect3">
-<a name="nm-utils-enum-to-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <code class="literal">GType</code> of the enum</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>the value to be translated</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-enum-to-str.returns"></a><h4>Returns</h4>
-<p> a newly allocated string or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-enum-from-str"></a><h3>nm_utils_enum_from_str ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_enum_from_str (<em class="parameter"><code><span class="type">GType</span> type</code></em>,
-                        <em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
-                        <em class="parameter"><code><span class="type">int</span> *out_value</code></em>,
-                        <em class="parameter"><code><span class="type">char</span> **err_token</code></em>);</pre>
-<p>Converts a string to the matching enum value.</p>
-<p>If the enum is a <code class="literal">G_TYPE_FLAGS</code> the function returns the logical OR of values
-matching the comma-separated tokens in the string; if an unknown token is found
-the function returns <code class="literal">FALSE</code> and stores a pointer to a newly allocated string
-containing the unrecognized token in <em class="parameter"><code>err_token</code></em>
-.</p>
-<div class="refsect3">
-<a name="nm-utils-enum-from-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <code class="literal">GType</code> of the enum</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the input string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_value</p></td>
-<td class="parameter_description"><p>the output value. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>err_token</p></td>
-<td class="parameter_description"><p>location to store
-the first unrecognized token. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-enum-from-str.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the conversion was successful, <code class="literal">FALSE</code> otherwise</p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-enum-get-values"></a><h3>nm_utils_enum_get_values ()</h3>
-<pre class="programlisting">const <span class="returnvalue">char</span> **
-nm_utils_enum_get_values (<em class="parameter"><code><span class="type">GType</span> type</code></em>,
-                          <em class="parameter"><code><span class="type">int</span> from</code></em>,
-                          <em class="parameter"><code><span class="type">int</span> to</code></em>);</pre>
-<p>Returns the list of possible values for a given enum.</p>
-<div class="refsect3">
-<a name="nm-utils-enum-get-values.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <code class="literal">GType</code> of the enum</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>from</p></td>
-<td class="parameter_description"><p>the first element to be returned</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to</p></td>
-<td class="parameter_description"><p>the last element to be returned</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-enum-get-values.returns"></a><h4>Returns</h4>
-<p>a NULL-terminated dynamically-allocated array of static strings
-or <code class="literal">NULL</code> on error. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data container, but not the data inside it."><span class="acronym">transfer container</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.2</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-version"></a><h3>nm_utils_version ()</h3>
-<pre class="programlisting"><span class="returnvalue">guint</span>
-nm_utils_version (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="nm-utils-version.returns"></a><h4>Returns</h4>
-<p> the version ID of the libnm version. That is, the <a class="link" href="libnm-nm-version-macros.html#NM-VERSION:CAPS" title="NM_VERSION"><code class="literal">NM_VERSION</code></a>
-at runtime.</p>
-</div>
-<p class="since">Since: 1.6</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-parse-variant-attributes"></a><h3>nm_utils_parse_variant_attributes ()</h3>
-<pre class="programlisting"><span class="returnvalue">GHashTable</span> *
-nm_utils_parse_variant_attributes (<em class="parameter"><code>const <span class="type">char</span> *string</code></em>,
-                                   <em class="parameter"><code><span class="type">char</span> attr_separator</code></em>,
-                                   <em class="parameter"><code><span class="type">char</span> key_value_separator</code></em>,
-                                   <em class="parameter"><code><span class="type">gboolean</span> ignore_unknown</code></em>,
-                                   <em class="parameter"><code>const <a class="link" href="libnm-nm-utils.html#NMVariantAttributeSpec" title="NMVariantAttributeSpec"><span class="type">NMVariantAttributeSpec</span></a> *const *spec</code></em>,
-                                   <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Parse attributes from a string.</p>
-<div class="refsect3">
-<a name="nm-utils-parse-variant-attributes.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>string</p></td>
-<td class="parameter_description"><p>the input string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>attr_separator</p></td>
-<td class="parameter_description"><p>the attribute separator character</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key_value_separator</p></td>
-<td class="parameter_description"><p>character separating key and values</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ignore_unknown</p></td>
-<td class="parameter_description"><p>whether unknown attributes should be ignored</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>spec</p></td>
-<td class="parameter_description"><p>the attribute format specifiers</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location to store the error on failure</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-parse-variant-attributes.returns"></a><h4>Returns</h4>
-<p>a <span class="type">GHashTable</span> mapping
-attribute names to <span class="type">GVariant</span> values. Warning: the variant are still floating
-references, owned by the hash table. If you take a reference, ensure to sink
-the one of the hash table first. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GVariant]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-format-variant-attributes"></a><h3>nm_utils_format_variant_attributes ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_format_variant_attributes (<em class="parameter"><code><span class="type">GHashTable</span> *attributes</code></em>,
-                                    <em class="parameter"><code><span class="type">char</span> attr_separator</code></em>,
-                                    <em class="parameter"><code><span class="type">char</span> key_value_separator</code></em>);</pre>
-<p>Format attributes to a string.</p>
-<div class="refsect3">
-<a name="nm-utils-format-variant-attributes.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>attributes</p></td>
-<td class="parameter_description"><p>a <span class="type">GHashTable</span> mapping attribute names to <span class="type">GVariant</span> values. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8 GVariant]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>attr_separator</p></td>
-<td class="parameter_description"><p>the attribute separator character</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key_value_separator</p></td>
-<td class="parameter_description"><p>character separating key and values</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-format-variant-attributes.returns"></a><h4>Returns</h4>
-<p>the string representing attributes, or <code class="literal">NULL</code>
-in case there are no attributes. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-tc-qdisc-from-str"></a><h3>nm_utils_tc_qdisc_from_str ()</h3>
-<pre class="programlisting"><a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><span class="returnvalue">NMTCQdisc</span></a> *
-nm_utils_tc_qdisc_from_str (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
-                            <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Parses the tc style string qdisc representation of the queueing
-discipline to a <a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><code class="literal">NMTCQdisc</code></a> instance. Supports a subset of the tc language.</p>
-<div class="refsect3">
-<a name="nm-utils-tc-qdisc-from-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the string representation of a qdisc</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location of the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-tc-qdisc-from-str.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><code class="literal">NMTCQdisc</code></a> or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-tc-qdisc-to-str"></a><h3>nm_utils_tc_qdisc_to_str ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_tc_qdisc_to_str (<em class="parameter"><code><a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><span class="type">NMTCQdisc</span></a> *qdisc</code></em>,
-                          <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Turns the <a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><code class="literal">NMTCQdisc</code></a> into a tc style string representation of the queueing
-discipline.</p>
-<div class="refsect3">
-<a name="nm-utils-tc-qdisc-to-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>qdisc</p></td>
-<td class="parameter_description"><p>the <a class="link" href="NMSettingTCConfig.html#NMTCQdisc"><code class="literal">NMTCQdisc</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location of the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-tc-qdisc-to-str.returns"></a><h4>Returns</h4>
-<p> formatted string or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-tc-action-from-str"></a><h3>nm_utils_tc_action_from_str ()</h3>
-<pre class="programlisting"><a class="link" href="NMSettingTCConfig.html#NMTCAction"><span class="returnvalue">NMTCAction</span></a> *
-nm_utils_tc_action_from_str (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
-                             <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Parses the tc style string action representation of the queueing
-discipline to a <a class="link" href="NMSettingTCConfig.html#NMTCAction"><code class="literal">NMTCAction</code></a> instance. Supports a subset of the tc language.</p>
-<div class="refsect3">
-<a name="nm-utils-tc-action-from-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the string representation of a action</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location of the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-tc-action-from-str.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="NMSettingTCConfig.html#NMTCAction"><code class="literal">NMTCAction</code></a> or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-tc-action-to-str"></a><h3>nm_utils_tc_action_to_str ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_tc_action_to_str (<em class="parameter"><code><a class="link" href="NMSettingTCConfig.html#NMTCAction"><span class="type">NMTCAction</span></a> *action</code></em>,
-                           <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Turns the <a class="link" href="NMSettingTCConfig.html#NMTCAction"><code class="literal">NMTCAction</code></a> into a tc style string representation of the queueing
-discipline.</p>
-<div class="refsect3">
-<a name="nm-utils-tc-action-to-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>action</p></td>
-<td class="parameter_description"><p>the <a class="link" href="NMSettingTCConfig.html#NMTCAction"><code class="literal">NMTCAction</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location of the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-tc-action-to-str.returns"></a><h4>Returns</h4>
-<p> formatted string or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-tc-tfilter-from-str"></a><h3>nm_utils_tc_tfilter_from_str ()</h3>
-<pre class="programlisting"><a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><span class="returnvalue">NMTCTfilter</span></a> *
-nm_utils_tc_tfilter_from_str (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
-                              <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Parses the tc style string tfilter representation of the queueing
-discipline to a <a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><code class="literal">NMTCTfilter</code></a> instance. Supports a subset of the tc language.</p>
-<div class="refsect3">
-<a name="nm-utils-tc-tfilter-from-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the string representation of a tfilter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location of the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-tc-tfilter-from-str.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><code class="literal">NMTCTfilter</code></a> or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-tc-tfilter-to-str"></a><h3>nm_utils_tc_tfilter_to_str ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_tc_tfilter_to_str (<em class="parameter"><code><a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><span class="type">NMTCTfilter</span></a> *tfilter</code></em>,
-                            <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Turns the <a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><code class="literal">NMTCTfilter</code></a> into a tc style string representation of the queueing
-discipline.</p>
-<div class="refsect3">
-<a name="nm-utils-tc-tfilter-to-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>tfilter</p></td>
-<td class="parameter_description"><p>the <a class="link" href="NMSettingTCConfig.html#NMTCTfilter"><code class="literal">NMTCTfilter</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location of the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-tc-tfilter-to-str.returns"></a><h4>Returns</h4>
-<p> formatted string or <code class="literal">NULL</code></p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-sriov-vf-to-str"></a><h3>nm_utils_sriov_vf_to_str ()</h3>
-<pre class="programlisting"><span class="returnvalue">char</span> *
-nm_utils_sriov_vf_to_str (<em class="parameter"><code>const <a class="link" href="NMSettingSriov.html#NMSriovVF"><span class="type">NMSriovVF</span></a> *vf</code></em>,
-                          <em class="parameter"><code><span class="type">gboolean</span> omit_index</code></em>,
-                          <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Converts a SR-IOV virtual function object to its string representation.</p>
-<div class="refsect3">
-<a name="nm-utils-sriov-vf-to-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>vf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="NMSettingSriov.html#NMSriovVF"><code class="literal">NMSriovVF</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>omit_index</p></td>
-<td class="parameter_description"><p>if <code class="literal">TRUE</code>, the VF index will be omitted from output string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location to store the error on failure</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-sriov-vf-to-str.returns"></a><h4>Returns</h4>
-<p> a newly allocated string or <code class="literal">NULL</code> on error</p>
-</div>
-<p class="since">Since: 1.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-sriov-vf-from-str"></a><h3>nm_utils_sriov_vf_from_str ()</h3>
-<pre class="programlisting"><a class="link" href="NMSettingSriov.html#NMSriovVF"><span class="returnvalue">NMSriovVF</span></a> *
-nm_utils_sriov_vf_from_str (<em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
-                            <em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
-<p>Converts a string to a SR-IOV virtual function object.</p>
-<div class="refsect3">
-<a name="nm-utils-sriov-vf-from-str.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p>the input string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>location to store the error on failure</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-sriov-vf-from-str.returns"></a><h4>Returns</h4>
-<p>the virtual function object. </p>
-<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.14</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-get-timestamp-msec"></a><h3>nm_utils_get_timestamp_msec ()</h3>
-<pre class="programlisting"><span class="returnvalue">gint64</span>
-nm_utils_get_timestamp_msec (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Gets current time in milliseconds of CLOCK_BOOTTIME.</p>
-<div class="refsect3">
-<a name="nm-utils-get-timestamp-msec.returns"></a><h4>Returns</h4>
-<p> time in milliseconds</p>
-</div>
-<p class="since">Since: 1.12</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-base64secret-decode"></a><h3>nm_utils_base64secret_decode ()</h3>
-<pre class="programlisting"><span class="returnvalue">gboolean</span>
-nm_utils_base64secret_decode (<em class="parameter"><code>const <span class="type">char</span> *base64_key</code></em>,
-                              <em class="parameter"><code><span class="type">gsize</span> required_key_len</code></em>,
-                              <em class="parameter"><code><span class="type">guint8</span> *out_key</code></em>);</pre>
-<div class="refsect3">
-<a name="nm-utils-base64secret-decode.parameters"></a><h4>Parameters</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="parameters_name">
-<col class="parameters_description">
-<col width="200px" class="parameters_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="parameter_name"><p>base64_key</p></td>
-<td class="parameter_description"><p>the (possibly invalid) base64 encode key.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>required_key_len</p></td>
-<td class="parameter_description"><p>the expected (binary) length of the key after
-decoding. If the length does not match, the validation fails.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_key</p></td>
-<td class="parameter_description"><p>an optional output buffer for the binary
-key. If given, it will be filled with exactly <em class="parameter"><code>required_key_len</code></em>
-bytes. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="nm-utils-base64secret-decode.returns"></a><h4>Returns</h4>
-<p> <code class="literal">TRUE</code> if the input key is a valid base64 encoded key
-with <em class="parameter"><code>required_key_len</code></em>
-bytes.</p>
-</div>
-<p class="since">Since: 1.16</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="nm-utils-ensure-gtypes"></a><h3>nm_utils_ensure_gtypes ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span>
-nm_utils_ensure_gtypes (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>This ensures that all NMSetting GTypes are created. For example,
-after this call, g_type_from_name("NMSettingConnection") will work.</p>
-<p>This cannot fail and does nothing if the type already exists.</p>
-<p class="since">Since: 1.42</p>
-</div>
-</div>
-<div class="refsect1">
-<a name="libnm-nm-utils.other_details"></a><h2>Types and Values</h2>
-<div class="refsect2">
-<a name="NMUtilsSecurityType"></a><h3>enum NMUtilsSecurityType</h3>
-<p>Describes generic security mechanisms that 802.11 access points may offer.
-Used with <a class="link" href="libnm-nm-utils.html#nm-utils-security-valid" title="nm_utils_security_valid ()"><code class="function">nm_utils_security_valid()</code></a> for checking whether a given access
-point is compatible with a network device.</p>
-<div class="refsect3">
-<a name="NMUtilsSecurityType.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-INVALID:CAPS"></a>NMU_SEC_INVALID</p></td>
-<td class="enum_member_description">
-<p>unknown or invalid security, placeholder and not used</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-NONE:CAPS"></a>NMU_SEC_NONE</p></td>
-<td class="enum_member_description">
-<p>unencrypted and open</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-STATIC-WEP:CAPS"></a>NMU_SEC_STATIC_WEP</p></td>
-<td class="enum_member_description">
-<p>static WEP keys are used for encryption</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-LEAP:CAPS"></a>NMU_SEC_LEAP</p></td>
-<td class="enum_member_description">
-<p>Cisco LEAP is used for authentication and for generating the
-dynamic WEP keys automatically</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-DYNAMIC-WEP:CAPS"></a>NMU_SEC_DYNAMIC_WEP</p></td>
-<td class="enum_member_description">
-<p>standard 802.1x is used for authentication and
-generating the dynamic WEP keys automatically</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-WPA-PSK:CAPS"></a>NMU_SEC_WPA_PSK</p></td>
-<td class="enum_member_description">
-<p>WPA1 is used with Pre-Shared Keys (PSK)</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-WPA-ENTERPRISE:CAPS"></a>NMU_SEC_WPA_ENTERPRISE</p></td>
-<td class="enum_member_description">
-<p>WPA1 is used with 802.1x authentication</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-WPA2-PSK:CAPS"></a>NMU_SEC_WPA2_PSK</p></td>
-<td class="enum_member_description">
-<p>WPA2/RSN is used with Pre-Shared Keys (PSK)</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-WPA2-ENTERPRISE:CAPS"></a>NMU_SEC_WPA2_ENTERPRISE</p></td>
-<td class="enum_member_description">
-<p>WPA2 is used with 802.1x authentication</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-SAE:CAPS"></a>NMU_SEC_SAE</p></td>
-<td class="enum_member_description">
-<p>is used with WPA3 Enterprise</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-OWE:CAPS"></a>NMU_SEC_OWE</p></td>
-<td class="enum_member_description">
-<p>is used with Enhanced Open</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="NMU-SEC-WPA3-SUITE-B-192:CAPS"></a>NMU_SEC_WPA3_SUITE_B_192</p></td>
-<td class="enum_member_description">
-<p>is used with WPA3 Enterprise Suite-B 192 bit mode. Since: 1.30.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="NM-UTILS-HWADDR-LEN-MAX:CAPS"></a><h3>NM_UTILS_HWADDR_LEN_MAX</h3>
-<pre class="programlisting">#define NM_UTILS_HWADDR_LEN_MAX 20 /* INFINIBAND_ALEN */
-</pre>
-<p>The maximum length of hardware addresses handled by NetworkManager itself,
-<a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-len" title="nm_utils_hwaddr_len ()"><code class="function">nm_utils_hwaddr_len()</code></a>, and <a class="link" href="libnm-nm-utils.html#nm-utils-hwaddr-aton" title="nm_utils_hwaddr_aton ()"><code class="function">nm_utils_hwaddr_aton()</code></a>.</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="NM-UTILS-INET-ADDRSTRLEN:CAPS"></a><h3>NM_UTILS_INET_ADDRSTRLEN</h3>
-<pre class="programlisting">#define NM_UTILS_INET_ADDRSTRLEN INET6_ADDRSTRLEN
-</pre>
-<p>Defines the minimal length for a char buffer that is suitable as <em class="parameter"><code>dst</code></em>
- argument
-for both <a class="link" href="libnm-nm-utils.html#nm-utils-inet4-ntop" title="nm_utils_inet4_ntop ()"><code class="function">nm_utils_inet4_ntop()</code></a> and <a class="link" href="libnm-nm-utils.html#nm-utils-inet6-ntop" title="nm_utils_inet6_ntop ()"><code class="function">nm_utils_inet6_ntop()</code></a>.</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="NMVariantAttributeSpec"></a><h3>NMVariantAttributeSpec</h3>
-<pre class="programlisting">typedef struct _NMVariantAttributeSpec NMVariantAttributeSpec;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="in6-addr"></a><h3>struct in6_addr</h3>
-<pre class="programlisting">struct in6_addr;</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="stat"></a><h3>struct stat</h3>
-<pre class="programlisting">struct stat;</pre>
-</div>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.34.0</div>
-</body>
-</html>
\ No newline at end of file