- fixes, debug
[oweals/gnunet.git] / src / mesh / mesh.h
index 27f2238bf8239b18523546b1ab0773340e59703a..a5a817c4866626f30edac97d04e5a20bbeb50e00 100644 (file)
 
 #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
@@ -176,6 +185,32 @@ struct GNUNET_MESH_TunnelNotification
   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
@@ -278,6 +313,40 @@ struct GNUNET_MESH_LocalAck
 };
 
 
+/**
+ * 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
 
 /******************************************************************************/
@@ -375,4 +444,11 @@ GMC_min_pid (uint32_t a, uint32_t b);
 const char *
 GNUNET_MESH_DEBUG_M2S (uint16_t m);
 
+#if 0                           /* keep Emacsens' auto-indent happy */
+{
+#endif
+#ifdef __cplusplus
+}
+#endif
+
 #endif