diff options
Diffstat (limited to 'src/libnm-base/nm-base.c')
-rw-r--r-- | src/libnm-base/nm-base.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/libnm-base/nm-base.c b/src/libnm-base/nm-base.c index f81b285c4e..fa64372fd8 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; +} |