aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2015-08-14 22:05:34 +0200
committerChristian Grothoff <christian@grothoff.org>2015-08-14 22:05:34 +0200
commit3d1627daa7b62a30b8bb2d201829b1a6034e85be (patch)
tree0869314f7ccf1cd696a035ed1a6432a034d4379e /src
parent8a4043248893a7c7cb3b896a0ed24d7611796c98 (diff)
helper function for debugging
Diffstat (limited to 'src')
-rw-r--r--src/include/taler_util.h24
-rw-r--r--src/util/util.c32
2 files changed, 56 insertions, 0 deletions
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
@@ -74,6 +74,30 @@ 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
@@ -28,6 +28,38 @@
/**
+ * 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.
*
* @param cfg configuration to use