virStringFormatHex converts an input byte array into hex string and returns it.
Signed-off-by: Praveen K Paladugu <praveenkpalad...@gmail.com> --- src/libvirt_private.syms | 1 + src/util/virstring.c | 19 +++++++++++++++++++ src/util/virstring.h | 1 + 3 files changed, 21 insertions(+) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 6888f6b599..df2f425ef6 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -3460,6 +3460,7 @@ virSkipToDigit; virStrcpy; virStringBufferIsPrintable; virStringFilterChars; +virStringFormatHex; virStringHasCaseSuffix; virStringHasChars; virStringHasControlChars; diff --git a/src/util/virstring.c b/src/util/virstring.c index 15c3f7bdd1..49b52ce018 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -1092,3 +1092,22 @@ 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. + */ +char * +virStringFormatHex(uint8_t *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); +} diff --git a/src/util/virstring.h b/src/util/virstring.h index 31a404e106..f5dfbf5387 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -140,3 +140,4 @@ int virStringParseVersion(unsigned long long *version, bool allowMissing); void virStringListRemoveDuplicates(char ***list); +char *virStringFormatHex(uint8_t *buf, size_t len); -- 2.47.0