helper exception callback lesser parameters
[oweals/gnunet.git] / src / include / gnunet_mesh_service.h
index 7c2437ecd99a0495008175ab1773d6651ff4d40c..11bf246b4296e7f2c12adbcea6dd19c1245ce92d 100644 (file)
@@ -223,6 +223,17 @@ typedef void (*GNUNET_MESH_PeerConnectHandler) (void *cls,
                                                 GNUNET_ATS_Information * atsi);
 
 
+/**
+ * Announce to ther peer the availability of services described by the regex,
+ * in order to be reachable to other peers via connect_by_string.
+ *
+ * @param h handle to mesh.
+ * @param regex string with the regular expression describing local services.
+ */
+void
+GNUNET_MESH_announce_regex (struct GNUNET_MESH_Handle *h,
+                            const char *regex);
+
 
 /**
  * Create a new tunnel (we're initiator and will be allowed to add/remove peers
@@ -287,6 +298,45 @@ GNUNET_MESH_peer_request_connect_by_type (struct GNUNET_MESH_Tunnel *tunnel,
                                           GNUNET_MESH_ApplicationType app_type);
 
 
+/**
+ * Request that the mesh should try to connect to a peer matching the
+ * description given in the service string.
+ *
+ * @param tunnel handle to existing tunnel
+ * @param description string describing the destination node requirements
+ */
+void
+GNUNET_MESH_peer_request_connect_by_string (struct GNUNET_MESH_Tunnel *tunnel,
+                                            const char *description);
+
+
+/**
+ * Request that the given peer isn't added to this tunnel in calls to
+ * connect_by_* calls, (due to misbehaviour, bad performance, ...).
+ *
+ * @param tunnel handle to existing tunnel.
+ * @param peer peer identity of the peer which should be blacklisted
+ *                  for the tunnel.
+ */
+void
+GNUNET_MESH_peer_blacklist (struct GNUNET_MESH_Tunnel *tunnel,
+                            const struct GNUNET_PeerIdentity *peer);
+
+
+/**
+ * Request that the given peer isn't blacklisted anymore from this tunnel,
+ * and therefore can be added in future calls to connect_by_*.
+ * The peer must have been previously blacklisted for this tunnel.
+ *
+ * @param tunnel handle to existing tunnel.
+ * @param peer peer identity of the peer which shouldn't be blacklisted
+ *                  for the tunnel anymore.
+ */
+void
+GNUNET_MESH_peer_unblacklist (struct GNUNET_MESH_Tunnel *tunnel,
+                              const struct GNUNET_PeerIdentity *peer);
+
+
 /**
  * Handle for a transmission request.
  */
@@ -335,12 +385,16 @@ GNUNET_MESH_notify_transmit_ready_cancel (struct GNUNET_MESH_TransmitHandle
 
 /**
  * Transition API for tunnel ctx management
+ * 
+ * FIXME deprecated
  */
 void
 GNUNET_MESH_tunnel_set_data (struct GNUNET_MESH_Tunnel *tunnel, void *data);
 
 /**
  * Transition API for tunnel ctx management
+ * 
+ * FIXME deprecated
  */
 void *
 GNUNET_MESH_tunnel_get_data (struct GNUNET_MESH_Tunnel *tunnel);