#include "mesh.h"
+/**
+ * @brief Translate a fwd variable into a string representation, for logging.
+ *
+ * @param fwd Is FWD? (#GNUNET_YES or #GNUNET_NO)
+ *
+ * @return String representing FWD or BCK.
+ */
+char *
+GM_f2s (int fwd)
+{
+ if (GNUNET_YES == fwd)
+ {
+ return "FWD";
+ }
+ else if (GNUNET_NO == fwd)
+ {
+ return "BCK";
+ }
+ else
+ {
+ GNUNET_break (0);
+ return "";
+ }
+}
int
-GMC_is_pid_bigger (uint32_t bigger, uint32_t smaller)
+GM_is_pid_bigger (uint32_t bigger, uint32_t smaller)
{
return (GNUNET_YES == PID_OVERFLOW (smaller, bigger) ||
(bigger > smaller && GNUNET_NO == PID_OVERFLOW (bigger, smaller)));
uint32_t
-GMC_max_pid (uint32_t a, uint32_t b)
+GM_max_pid (uint32_t a, uint32_t b)
{
- if (GMC_is_pid_bigger(a, b))
+ if (GM_is_pid_bigger(a, b))
return a;
return b;
}
uint32_t
-GMC_min_pid (uint32_t a, uint32_t b)
+GM_min_pid (uint32_t a, uint32_t b)
{
- if (GMC_is_pid_bigger(a, b))
+ if (GM_is_pid_bigger(a, b))
return b;
return a;
}
+const struct GNUNET_HashCode *
+GM_h2hc (const struct GNUNET_MeshHash *id)
+{
+ static struct GNUNET_HashCode hc;
+ memcpy (&hc, id, sizeof (*id));
+
+ return &hc;
+}
+
+
#if !defined(GNUNET_CULL_LOGGING)
const char *
-GNUNET_MESH_DEBUG_M2S (uint16_t m)
+GM_m2s (uint16_t m)
{
static char buf[32];
+ const char *t;
+
switch (m)
- {
+ {
/**
* Request the creation of a path
*/
- case 256: return "GNUNET_MESSAGE_TYPE_MESH_CONNECTION_CREATE";
+ case GNUNET_MESSAGE_TYPE_MESH_CONNECTION_CREATE:
+ t = "CONNECTION_CREATE";
+ break;
/**
* Request the modification of an existing path
*/
- case 257: return "GNUNET_MESSAGE_TYPE_MESH_CONNECTION_ACK";
+ case GNUNET_MESSAGE_TYPE_MESH_CONNECTION_ACK:
+ t = "CONNECTION_ACK";
+ break;
/**
* Notify that a connection of a path is no longer valid
*/
- case 258: return "GNUNET_MESSAGE_TYPE_MESH_CONNECTION_BROKEN";
+ case GNUNET_MESSAGE_TYPE_MESH_CONNECTION_BROKEN:
+ t = "CONNECTION_BROKEN";
+ break;
/**
* At some point, the route will spontaneously change
*/
- case 259: return "GNUNET_MESSAGE_TYPE_MESH_PATH_CHANGED";
+ case GNUNET_MESSAGE_TYPE_MESH_PATH_CHANGED:
+ t = "PATH_CHANGED";
+ break;
/**
- * Transport data in the mesh (origin->end) unicast
+ * Transport payload data.
*/
- case 260: return "GNUNET_MESSAGE_TYPE_MESH_DATA";
+ case GNUNET_MESSAGE_TYPE_MESH_DATA:
+ t = "DATA";
+ break;
+
+ /**
+ * Confirm receipt of payload data.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_DATA_ACK:
+ t = "DATA_ACK";
+ break;
/**
- * Transport data back in the mesh (end->origin) FIXME
+ * Key exchange encapsulation.
*/
- case 262: return "GNUNET_MESSAGE_TYPE_MESH_TO_ORIGIN";
+ case GNUNET_MESSAGE_TYPE_MESH_KX:
+ t = "KX";
+ break;
/**
- * Send origin an ACK that UNICAST arrived FIXME
+ * New ephemeral key.
*/
- case 263: return "GNUNET_MESSAGE_TYPE_MESH_UNICAST_ACK";
+ case GNUNET_MESSAGE_TYPE_MESH_KX_EPHEMERAL:
+ t = "KX_EPHEMERAL";
+ break;
/**
- * Send origin an ACK that TO_ORIGIN arrived FIXME
+ * Challenge to test peer's session key.
*/
- case 264: return "GNUNET_MESSAGE_TYPE_MESH_TO_ORIG_ACK";
+ case GNUNET_MESSAGE_TYPE_MESH_KX_PING:
+ t = "KX_PING";
+ break;
/**
- * Request the destuction of a path
+ * Answer to session key challenge.
*/
- case 266: return "GNUNET_MESSAGE_TYPE_MESH_CONNECTION_DESTROY";
+ case GNUNET_MESSAGE_TYPE_MESH_KX_PONG:
+ t = "KX_PONG";
+ break;
/**
- * Request the destruction of a whole tunnel
+ * Request the destuction of a path
*/
- case 267: return "GNUNET_MESSAGE_TYPE_MESH_TUNNEL_DESTROY";
+ case GNUNET_MESSAGE_TYPE_MESH_CONNECTION_DESTROY:
+ t = "CONNECTION_DESTROY";
+ break;
/**
* ACK for a data packet.
*/
- case 268: return "GNUNET_MESSAGE_TYPE_MESH_ACK";
+ case GNUNET_MESSAGE_TYPE_MESH_ACK:
+ t = "ACK";
+ break;
/**
* POLL for ACK.
*/
- case 269: return "GNUNET_MESSAGE_TYPE_MESH_POLL";
+ case GNUNET_MESSAGE_TYPE_MESH_POLL:
+ t = "POLL";
+ break;
/**
* Announce origin is still alive.
*/
- case 270: return "GNUNET_MESSAGE_TYPE_MESH_FWD_KEEPALIVE";
-
- /**
- * Announce destination is still alive.
- */
- case 271: return "GNUNET_MESSAGE_TYPE_MESH_BCK_KEEPALIVE";
+ case GNUNET_MESSAGE_TYPE_MESH_KEEPALIVE:
+ t = "KEEPALIVE";
+ break;
/**
* Connect to the mesh service, specifying subscriptions
*/
- case 272: return "GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT";
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_CONNECT:
+ t = "LOCAL_CONNECT";
+ break;
/**
* Ask the mesh service to create a new tunnel
*/
- case 273: return "GNUNET_MESSAGE_TYPE_MESH_CHANNEL_CREATE";
+ case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_CREATE:
+ t = "CHANNEL_CREATE";
+ break;
/**
* Ask the mesh service to destroy a tunnel
*/
- case 274: return "GNUNET_MESSAGE_TYPE_MESH_CHANNEL_DESTROY";
+ case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_DESTROY:
+ t = "CHANNEL_DESTROY";
+ break;
/**
* Confirm the creation of a channel.
*/
- case 275: return "GNUNET_MESSAGE_TYPE_MESH_CHANNEL_ACK";
+ case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_ACK:
+ t = "CHANNEL_ACK";
+ break;
/**
* Confirm the creation of a channel.
*/
- case 276: return "GNUNET_MESSAGE_TYPE_MESH_CHANNEL_NACK";
+ case GNUNET_MESSAGE_TYPE_MESH_CHANNEL_NACK:
+ t = "CHANNEL_NACK";
+ break;
/**
* Encrypted payload.
*/
- case 280: return "GNUNET_MESSAGE_TYPE_MESH_ENCRYPTED";
+ case GNUNET_MESSAGE_TYPE_MESH_ENCRYPTED:
+ t = "ENCRYPTED";
+ break;
/**
* Local payload traffic
*/
- case 285: return "GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA";
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_DATA:
+ t = "LOCAL_DATA";
+ break;
/**
* Local ACK for data.
*/
- case 286: return "GNUNET_MESSAGE_TYPE_MESH_LOCAL_ACK";
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_ACK:
+ t = "LOCAL_ACK";
+ break;
+
+ /**
+ * Local monitoring of channels.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNELS:
+ t = "LOCAL_INFO_CHANNELS";
+ break;
+
+ /**
+ * Local monitoring of a channel.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CHANNEL:
+ t = "LOCAL_INFO_CHANNEL";
+ break;
+
+ /**
+ * Local monitoring of service.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS:
+ t = "LOCAL_INFO_TUNNELS";
+ break;
/**
* Local monitoring of service.
*/
- case 287: return "GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNELS";
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNEL:
+ t = "LOCAL_INFO_TUNNEL";
+ break;
+
+ /**
+ * Local information about all connections of service.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CONNECTIONS:
+ t = "LOCAL_INFO_CONNECTIONS";
+ break;
+
+ /**
+ * Local information of service about a specific connection.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_CONNECTION:
+ t = "LOCAL_INFO_CONNECTION";
+ break;
+
+ /**
+ * Local information about all peers known to the service.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEERS:
+ t = "LOCAL_INFO_PEERS";
+ break;
+
+ /**
+ * Local information of service about a specific peer.
+ */
+ case GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_PEER:
+ t = "LOCAL_INFO_PEER";
+ break;
/**
- * Local monitoring of service of a specific tunnel.
+ * Traffic (net-cat style) used by the Command Line Interface.
*/
- case 288: return "GNUNET_MESSAGE_TYPE_MESH_LOCAL_INFO_TUNNEL";
+ case GNUNET_MESSAGE_TYPE_MESH_CLI:
+ t = "CLI";
+ break;
/**
* 640kb should be enough for everybody
*/
- case 299: return "GNUNET_MESSAGE_TYPE_MESH_RESERVE_END";
- }
- sprintf(buf, "%u (UNKNOWN TYPE)", m);
+ case 299:
+ t = "RESERVE_END";
+ break;
+
+ default:
+ sprintf(buf, "%u (UNKNOWN TYPE)", m);
+ return buf;
+ }
+ sprintf(buf, "{%22s}", t);
return buf;
}
#else
const char *
-GNUNET_MESH_DEBUG_M2S (uint16_t m)
+GM_m2s (uint16_t m)
{
return "";
}