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);