summary refs log tree commit diff
path: root/src/libnm-base/nm-base.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2023-02-23 17:11:22 +0100
committerMichael Biebl <biebl@debian.org>2023-02-23 17:11:22 +0100
commitb22a7b55d0bc5a7999dccaeacdde745f5ace9d66 (patch)
tree597d2716cfa4b904c98717b874371e0e7b5e0c71 /src/libnm-base/nm-base.c
parent1372848511cb896b80b51ed1a3e9606bd9816631 (diff)
New upstream version 1.42.2 upstream/1.42.2
Diffstat (limited to 'src/libnm-base/nm-base.c')
-rw-r--r--src/libnm-base/nm-base.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/libnm-base/nm-base.c b/src/libnm-base/nm-base.c
index f81b285c..fa64372f 100644
--- a/src/libnm-base/nm-base.c
+++ b/src/libnm-base/nm-base.c
@@ -9,3 +9,33 @@
 NM_CACHED_QUARK_FCN("nm-crypto-error-quark", _nm_crypto_error_quark);
 
 /*****************************************************************************/
+
+char *
+nm_dhcp_iaid_to_hexstr(guint32 iaid, char buf[static NM_DHCP_IAID_TO_HEXSTR_BUF_LEN])
+{
+    iaid = htobe32(iaid);
+    return nm_utils_bin2hexstr_full(&iaid, sizeof(iaid), ':', FALSE, buf);
+}
+
+gboolean
+nm_dhcp_iaid_from_hexstr(const char *str, guint32 *out_value)
+{
+    union {
+        guint32 num;
+        guint8  bin[sizeof(guint32)];
+    } iaid;
+
+    if (!nm_utils_hexstr2bin_full(str,
+                                  TRUE,
+                                  FALSE,
+                                  FALSE,
+                                  ":",
+                                  sizeof(iaid),
+                                  iaid.bin,
+                                  sizeof(iaid),
+                                  NULL))
+        return FALSE;
+
+    NM_SET_OUT(out_value, be32toh(iaid.num));
+    return TRUE;
+}