#ifndef MESH_H_
#define MESH_H_
+
+#ifdef __cplusplus
+extern "C"
+{
+#if 0 /* keep Emacsens' auto-indent happy */
+}
+#endif
+#endif
+
#include <stdint.h>
#define MESH_DEBUG GNUNET_YES
* Peer at the other end, if any
*/
struct GNUNET_PeerIdentity peer;
+
+ /**
+ * Tunnel options (speed, buffering)
+ */
+ uint32_t opt;
+};
+
+/**
+ * Message for announce of regular expressions.
+ */
+struct GNUNET_MESH_RegexAnnounce
+{
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_ANNOUNCE_REGEX
+ *
+ * Size: sizeof(struct GNUNET_MESH_RegexAnnounce) + strlen (regex)
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * How many characters do we want to put in an edge label.
+ */
+ uint16_t compression_characters;
+
+ /**
+ * Is this the last message for this regex? (for regex > 65k)
+ */
+ int16_t last;
+
+ /* regex payload */
};
+
/**
* Message for:
* - request adding and deleting peers from a tunnel
};
+/**
+ * Message to inform the client about tunnels in the service.
+ */
+struct GNUNET_MESH_LocalMonitor
+{
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_MONITOR[_TUNNEL]
+ */
+ struct GNUNET_MessageHeader header;
+
+ /**
+ * ID of the tunnel allowed to send more data.
+ */
+ MESH_TunnelNumber tunnel_id GNUNET_PACKED;
+
+ /**
+ * Number of peers in the tunnel.
+ */
+ uint32_t npeers GNUNET_PACKED;
+
+ /**
+ * Alignment.
+ */
+ uint32_t reserved GNUNET_PACKED;
+
+ /**
+ * ID of the owner of the tunnel (can be local peer).
+ */
+ struct GNUNET_PeerIdentity owner;
+
+ /* struct GNUNET_PeerIdentity peers[npeers] */
+};
+
+
GNUNET_NETWORK_STRUCT_END
/******************************************************************************/
const char *
GNUNET_MESH_DEBUG_M2S (uint16_t m);
+#if 0 /* keep Emacsens' auto-indent happy */
+{
+#endif
+#ifdef __cplusplus
+}
+#endif
+
#endif