/*
This file is part of GNUnet.
- Copyright (C) 2012 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2012 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
else
{
/* Not an error, can happen with CONNECTION_BROKEN messages. */
- return "";
+ return "\???";
}
}
GC_h2hc (const struct GNUNET_CADET_Hash *id)
{
static struct GNUNET_HashCode hc;
- memcpy (&hc, id, sizeof (*id));
+ GNUNET_memcpy (&hc, id, sizeof (*id));
return &hc;
}
{
static char s[53];
- memcpy (s, GNUNET_h2s_full (GC_h2hc (id)), 52);
+ GNUNET_memcpy (s, GNUNET_h2s_full (GC_h2hc (id)), 52);
s[52] = '\0';
return s;
}
+/**
+ * Allocate a string with a hexdump of any binary data.
+ *
+ * @param bin Arbitrary binary data.
+ * @param len Length of @a bin in bytes.
+ * @param output Where to write the output (if *output be NULL it's allocated).
+ *
+ * @return The size of the output.
+ */
+size_t
+GC_bin2s (void *bin, unsigned int len, char **output)
+{
+ char *data = bin;
+ char *buf;
+ unsigned int s_len;
+ unsigned int i;
+
+ s_len = 2 * len + 1;
+ if (NULL == *output)
+ *output = GNUNET_malloc (s_len);
+ buf = *output;
+
+ for (i = 0; i < len; i++)
+ {
+ SPRINTF (&buf[2 * i], "%2X", data[i]);
+ }
+ buf[s_len - 1] = '\0';
+
+ return s_len;
+}
+
+
#if !defined(GNUNET_CULL_LOGGING)
const char *
GC_m2s (uint16_t m)
* Used to mark the "payload" of a non-payload message.
*/
case 0:
- return "";
+ s = "retransmit";
+ break;
/**
* Request the creation of a path
s = "AX_KX";
break;
- /**
- * New ephemeral key.
- */
- case GNUNET_MESSAGE_TYPE_CADET_KX_EPHEMERAL:
- s = "KX_EPHM";
- break;
-
- /**
- * Answer to session key challenge.
- */
- case GNUNET_MESSAGE_TYPE_CADET_KX_PONG:
- s = "KX_PONG";
- break;
-
/**
* Request the destuction of a path
*/
s = "KEEPALIVE";
break;
- /**
- * Connect to the cadet service, specifying subscriptions
+ /**
+ * Open port
+ */
+ case GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_OPEN:
+ s = "OPEN_PORT";
+ break;
+
+ /**
+ * Close port
*/
- case GNUNET_MESSAGE_TYPE_CADET_LOCAL_CONNECT:
- s = "LOC_CONNCT";
+ case GNUNET_MESSAGE_TYPE_CADET_LOCAL_PORT_CLOSE:
+ s = "CLOSE_PORT";
break;
/**
s = "CHAN_NACK";
break;
- /**
- * OTR encrypted payload.
- */
- case GNUNET_MESSAGE_TYPE_CADET_ENCRYPTED:
- s = "OTR";
- break;
-
/**
* Axolotl encrypted payload.
*/
s = "INFO_DUMP";
break;
+ /**
+ * Used to mark the "payload" of a non-payload message.
+ */
+ case UINT16_MAX:
+ s = " N/A";
+ break;
+
+
default:
- SPRINTF (buf[idx], "%u (UNKNOWN)", m);
+ SPRINTF (buf[idx], "{UNK: %5u}", m);
return buf[idx];
}
SPRINTF (buf[idx], "{%10s}", s);