]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: Introduce virStringFormatHex
authorPraveen K Paladugu <praveenkpaladugu@gmail.com>
Tue, 11 Feb 2025 19:18:19 +0000 (13:18 -0600)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 10 Mar 2025 13:39:59 +0000 (14:39 +0100)
virStringFormatHex converts an input byte array into hex string and
returns it.

Signed-off-by: Praveen K Paladugu <praveenkpaladugu@gmail.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/libvirt_private.syms
src/util/virstring.c
src/util/virstring.h

index d9e60c946df0d77844bb1dfdd289dc2a2d3de74b..e63939e2b571741f8b6ae254693e5e4457f30835 100644 (file)
@@ -3464,6 +3464,7 @@ virSkipToDigit;
 virStrcpy;
 virStringBufferIsPrintable;
 virStringFilterChars;
+virStringFormatHex;
 virStringHasCaseSuffix;
 virStringHasChars;
 virStringHasControlChars;
index 15c3f7bdd160eb8fcd02653dd982a4543ec15107..7249ab4e7c5f09dd4ad537ab956cddf12d53e1a6 100644 (file)
@@ -1092,3 +1092,23 @@ virStringListRemoveDuplicates(char ***list)
     g_free(*list);
     *list = g_renew(char *, unique, n + 1);
 }
+
+/**
+ * virStringFormatHex:
+ * @buf: buffer to format
+ * @len: length of the buffer
+ *
+ * Format a byte array into a hexadecimal string and return it. It's caller's
+ * responsibility to free returned string.
+ */
+char *
+virStringFormatHex(const unsigned char *buf, size_t len)
+{
+    char *hex = g_new0(char, len * 2 + 1);
+    size_t i;
+
+    for (i = 0; i < len; i++)
+        g_snprintf(hex + i * 2, 3, "%02x", buf[i]);
+
+    return g_steal_pointer(&hex);
+}
index 31a404e1063409117849feb8dacfd74de7797ca6..3d880faf0cc94f7bb6e0aa01e56a3e79c7c0a545 100644 (file)
@@ -140,3 +140,4 @@ int virStringParseVersion(unsigned long long *version,
                           bool allowMissing);
 
 void virStringListRemoveDuplicates(char ***list);
+char *virStringFormatHex(const unsigned char *buf, size_t len);