}
+/**
+ * Convert a hash to a string (for printing debug messages).
+ * This is one of the very few calls in the entire API that is
+ * NOT reentrant!
+ *
+ * @param pid the peer identity
+ * @return string form; will be overwritten by next call to GNUNET_h2s.
+ */
+const char *
+GNUNET_h2s (const GNUNET_HashCode *pid)
+{
+ static struct GNUNET_CRYPTO_HashAsciiEncoded ret;
+ GNUNET_CRYPTO_hash_to_enc (pid, &ret);
+ ret.encoding[8] = '\0';
+ return (const char *) ret.encoding;
+}
+
+
/**
* Convert a peer identity to a string (for printing debug messages).
* This is one of the very few calls in the entire API that is
static char b2[6];
const struct sockaddr_in * v4;
const struct sockaddr_in6 *v6;
+
+ if (addr == NULL)
+ return _("unknown address");
switch (addr->sa_family)
{
case AF_INET: