From 3d1627daa7b62a30b8bb2d201829b1a6034e85be Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 14 Aug 2015 22:05:34 +0200 Subject: [PATCH] helper function for debugging --- src/include/taler_util.h | 24 ++++++++++++++++++++++++ src/util/util.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/src/include/taler_util.h b/src/include/taler_util.h index 00397cc88..b6dd9596a 100644 --- a/src/include/taler_util.h +++ b/src/include/taler_util.h @@ -73,6 +73,30 @@ void TALER_gcrypt_init (void); +/** + * Convert a buffer to an 8-character string + * representative of the contents. This is used + * for logging binary data when debugging. + * + * @param buf buffer to log + * @param buf_size number of bytes in @a buf + * @return text representation of buf, valid until next + * call to this function + */ +const char * +TALER_b2s (const void *buf, + size_t buf_size); + +/** + * Convert a fixed-sized object to a string using + * #TALER_b2s(). + * + * @param obj address of object to convert + * @return string representing the binary obj buffer + */ +#define TALER_B2S(obj) TALER_b2s (obj, sizeof (*obj)) + + /** * Round a time value so that it is suitable for transmission * via JSON encodings. diff --git a/src/util/util.c b/src/util/util.c index f45598b0c..08438cfab 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -27,6 +27,38 @@ #include +/** + * Convert a buffer to an 8-character string + * representative of the contents. This is used + * for logging binary data when debugging. + * + * @param buf buffer to log + * @param buf_size number of bytes in @a buf + * @return text representation of buf, valid until next + * call to this function + */ +const char * +TALER_b2s (const void *buf, + size_t buf_size) +{ + static char ret[9]; + struct GNUNET_HashCode hc; + char *tmp; + + GNUNET_CRYPTO_hash (buf, + buf_size, + &hc); + tmp = GNUNET_STRINGS_data_to_string_alloc (&hc, + sizeof (hc)); + memcpy (ret, + tmp, + 8); + GNUNET_free (tmp); + ret[8] = '\0'; + return ret; +} + + /** * Obtain denomination amount from configuration file. *