stuff
[oweals/gnunet.git] / src / transport / gnunet-service-transport_clients.h
index aa696b1abfbdf19dc66e8ee02d587257151e7381..a8ae14a53adec40066eaa191e4d75ca6bb275a80 100644 (file)
@@ -46,13 +46,123 @@ void
 GST_clients_stop (void);
 
 
+/**
+ * Initialize a normal client.  We got a start message from this
+ * client, add him to the list of clients for broadcasting of inbound
+ * messages.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the start message that was sent
+ */
+void
+GST_clients_handle_start (void *cls,
+                         struct GNUNET_SERVER_Client *client,
+                         const struct GNUNET_MessageHeader *message);
+
+
+/**
+ * Client sent us a HELLO.  Process the request.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the HELLO message
+ */
+void
+GST_clients_handle_hello (void *cls,
+                         struct GNUNET_SERVER_Client *client,
+                         const struct GNUNET_MessageHeader *message);
+
+
+/**
+ * Client asked for transmission to a peer.  Process the request.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the send message that was sent
+ */
+void
+GST_clients_handle_send (void *cls,
+                        struct GNUNET_SERVER_Client *client,
+                        const struct GNUNET_MessageHeader *message);
+
+
+/**
+ * Client asked for a quota change for a particular peer.  Process the request.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the quota changing message
+ */
+void
+GST_clients_handle_set_quota (void *cls,
+                             struct GNUNET_SERVER_Client *client,
+                             const struct GNUNET_MessageHeader *message);
+
+
+/**
+ * Client asked to resolve an address.  Process the request.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the resolution request
+ */
+void
+GST_clients_handle_address_lookup (void *cls,
+                                  struct GNUNET_SERVER_Client *client,
+                                  const struct GNUNET_MessageHeader *message);
+
+
+/**
+ * Client asked to obtain information about a peer's addresses.
+ * Process the request.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the peer address information request
+ */
+void
+GST_clients_handle_peer_address_lookup (void *cls,
+                                       struct GNUNET_SERVER_Client *client,
+                                       const struct GNUNET_MessageHeader *message);
+
+
+/**
+ * Client asked to obtain information about all addresses.
+ * Process the request.
+ *
+ * @param cls unused
+ * @param client the client
+ * @param message the peer address information request
+ */
+void
+GST_clients_handle_address_iterate (void *cls,
+                                   struct GNUNET_SERVER_Client *client,
+                                   const struct GNUNET_MessageHeader *message);
+
+
 /**
  * Broadcast the given message to all of our clients.
  *
  * @param msg message to broadcast
+ * @param may_drop GNUNET_YES if the message can be dropped
+ */
+void
+GST_clients_broadcast (const struct GNUNET_MessageHeader *msg,
+                      int may_drop);
+
+
+/**
+ * Send the given message to a particular client
+ *
+ * @param client target of the message
+ * @param msg message to transmit
+ * @param may_drop GNUNET_YES if the message can be dropped
  */
 void
-GST_clients_broadcast (const struct GNUNET_MessageHeader *msg);
+GST_clients_unicast (struct GNUNET_SERVER_Client *client,
+                    const struct GNUNET_MessageHeader *msg,
+                    int may_drop);