* Peer connected and ready to accept data.
*/
MESH_TUNNEL3_READY,
+
+ /**
+ * Tunnel being shut down, don't try to keep it alive.
+ */
+ MESH_TUNNEL3_SHUTDOWN
};
*
* @param message Message to send. Function modifies it.
* @param t Tunnel on which this message is transmitted.
+ * @param c Connection to use (autoselect if NULL).
* @param force Force the tunnel to take the message (buffer overfill).
* @param cont Continuation to call once message is really sent.
* @param cont_cls Closure for @c cont.
*/
struct MeshTunnel3Queue *
GMT_send_prebuilt_message (const struct GNUNET_MessageHeader *message,
- struct MeshTunnel3 *t, int force,
- GMT_sent cont, void *cont_cls);
+ struct MeshTunnel3 *t, struct MeshConnection *c,
+ int force, GMT_sent cont, void *cont_cls);
/**
* Is the tunnel directed towards the local peer?
void
GMT_debug (const struct MeshTunnel3 *t);
+/**
+ * Iterate all tunnels.
+ *
+ * @param iter Iterator.
+ * @param cls Closure for @c iter.
+ */
void
-GMT_iterate_all (void *cls, GNUNET_CONTAINER_PeerMapIterator iter);
+GMT_iterate_all (GNUNET_CONTAINER_PeerMapIterator iter, void *cls);
+/**
+ * Count all tunnels.
+ *
+ * @return Number of tunnels to remote peers kept by this peer.
+ */
unsigned int
GMT_count_all (void);
+/**
+ * Iterate all connections of a tunnel.
+ *
+ * @param t Tunnel whose connections to iterate.
+ * @param iter Iterator.
+ * @param cls Closure for @c iter.
+ */
void
GMT_iterate_connections (struct MeshTunnel3 *t, GMT_conn_iter iter, void *cls);
+/**
+ * Iterate all channels of a tunnel.
+ *
+ * @param t Tunnel whose channels to iterate.
+ * @param iter Iterator.
+ * @param cls Closure for @c iter.
+ */
void
GMT_iterate_channels (struct MeshTunnel3 *t, GMT_chan_iter iter, void *cls);