guix-env: some update.
[oweals/gnunet.git] / src / testbed / gnunet-service-testbed.h
index 2a410a850db25b317992e01512fbe4a5606814e4..6f797a066b18139944322ca588d595f840493dba 100644 (file)
@@ -1,10 +1,10 @@
 /*
   This file is part of GNUnet.
-  (C) 2008--2013 Christian Grothoff (and other contributing authors)
+  Copyright (C) 2008--2013 GNUnet e.V.
 
   GNUnet is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published
-  by the Free Software Foundation; either version 2, or (at your
+  by the Free Software Foundation; either version 3, or (at your
   option) any later version.
 
   GNUnet is distributed in the hope that it will be useful, but
@@ -14,8 +14,8 @@
 
   You should have received a copy of the GNU General Public License
   along with GNUnet; see the file COPYING.  If not, write to the
-  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-  Boston, MA 02111-1307, USA.
+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -35,6 +35,7 @@
 #include "testbed_api_operations.h"
 #include "testbed_api_hosts.h"
 #include "gnunet_testing_lib.h"
+#include "gnunet-service-testbed_links.h"
 
 
 /**
@@ -95,7 +96,7 @@ struct ForwardedOperationContext
   /**
    * The client to which we have to reply
    */
-  struct GNUNET_SERVER_Client *client;
+  struct GNUNET_SERVICE_Client *client;
 
   /**
    * Closure pointer
@@ -105,7 +106,7 @@ struct ForwardedOperationContext
   /**
    * Task ID for the timeout task
    */
-  GNUNET_SCHEDULER_TaskIdentifier timeout_task;
+  struct GNUNET_SCHEDULER_Task * timeout_task;
 
   /**
    * The id of the operation that has been forwarded
@@ -160,7 +161,7 @@ struct LinkControllersContext
   /**
    * The client which initiated the link controller operation
    */
-  struct GNUNET_SERVER_Client *client;
+  struct GNUNET_SERVICE_Client *client;
 
   /**
    * The ID of the operation
@@ -170,59 +171,9 @@ struct LinkControllersContext
 };
 
 
-/**
- * Structure representing a connected(directly-linked) controller
- */
-struct Slave
-{
-  /**
-   * The controller process handle if we had started the controller
-   */
-  struct GNUNET_TESTBED_ControllerProc *controller_proc;
-
-  /**
-   * The controller handle
-   */
-  struct GNUNET_TESTBED_Controller *controller;
-
-  /**
-   * handle to lcc which is associated with this slave startup. Should be set to
-   * NULL when the slave has successfully started up
-   */
-  struct LinkControllersContext *lcc;
-
-  /**
-   * Head of the host registration DLL
-   */
-  struct HostRegistration *hr_dll_head;
-
-  /**
-   * Tail of the host registration DLL
-   */
-  struct HostRegistration *hr_dll_tail;
-
-  /**
-   * The current host registration handle
-   */
-  struct GNUNET_TESTBED_HostRegistrationHandle *rhandle;
-
-  /**
-   * Hashmap to hold Registered host contexts
-   */
-  struct GNUNET_CONTAINER_MultiHashMap *reghost_map;
-
-  /**
-   * The id of the host this controller is running on
-   */
-  uint32_t host_id;
-
-};
-
-
 /**
  * A peer
  */
-
 struct Peer
 {
 
@@ -303,7 +254,7 @@ struct Context
   /**
    * The client handle associated with this context
    */
-  struct GNUNET_SERVER_Client *client;
+  struct GNUNET_SERVICE_Client *client;
 
   /**
    * The network address of the master controller
@@ -344,6 +295,9 @@ struct SharedService
 };
 
 
+struct RegisteredHostContext;
+
+
 /**
  * Context information to used during operations which forward the overlay
  * connect message
@@ -360,11 +314,21 @@ struct ForwardedOverlayConnectContext
    */
   struct ForwardedOverlayConnectContext *prev;
 
+  /**
+   * Which host does this FOCC belong to?
+   */
+  struct RegisteredHostContext *rhc;
+
   /**
    * A copy of the original overlay connect message
    */
   struct GNUNET_MessageHeader *orig_msg;
 
+  /**
+   * The client handle
+   */
+  struct GNUNET_SERVICE_Client *client;
+
   /**
    * The id of the operation which created this context information
    */
@@ -387,34 +351,12 @@ struct ForwardedOverlayConnectContext
 };
 
 
-/**
- * The type for data structures which commonly arrive at the slave_event_callback
- */
-enum ClosureType
-{
-  /**
-   * Type for RegisteredHostContext closures
-   */
-  CLOSURE_TYPE_RHC = 1,
-
-  /**
-   * Type for LinkControllersForwardingContext closures
-   */
-  CLOSURE_TYPE_LCF
-};
-
-
 /**
  * This context information will be created for each host that is registered at
  * slave controllers during overlay connects.
  */
 struct RegisteredHostContext
 {
-  /**
-   * The type of this data structure. Set this to CLOSURE_TYPE_RHC
-   */
-  enum ClosureType type;
-
   /**
    * The host which is being registered
    */
@@ -425,26 +367,6 @@ struct RegisteredHostContext
    */
   struct GNUNET_TESTBED_Host *host;
 
-  /**
-   * The gateway to which this operation is forwarded to
-   */
-  struct Slave *gateway;
-
-  /**
-   * The gateway through which peer2's controller can be reached
-   */
-  struct Slave *gateway2;
-
-  /**
-   * Handle for sub-operations
-   */
-  struct GNUNET_TESTBED_Operation *sub_op;
-
-  /**
-   * The client which initiated the link controller operation
-   */
-  struct GNUNET_SERVER_Client *client;
-
   /**
    * Head of the ForwardedOverlayConnectContext DLL
    */
@@ -466,147 +388,23 @@ struct RegisteredHostContext
      */
     RHC_INIT = 0,
 
-    /**
-     * State where we attempt to get peer2's controller configuration
-     */
-    RHC_GET_CFG,
-
-    /**
-     * State where we attempt to link the controller of peer 1 to the controller
-     * of peer2
-     */
-    RHC_LINK,
-
     /**
      * State where we attempt to do the overlay connection again
      */
-    RHC_OL_CONNECT
+    RHC_DONE
   } state;
 
 };
 
 
 /**
- * States of LCFContext
- */
-enum LCFContextState
-{
-  /**
-   * The Context has been initialized; Nothing has been done on it
-   */
-  INIT,
-
-  /**
-   * Delegated host has been registered at the forwarding controller
-   */
-  DELEGATED_HOST_REGISTERED,
-
-  /**
-   * The slave host has been registred at the forwarding controller
-   */
-  SLAVE_HOST_REGISTERED,
-
-  /**
-   * The context has been finished (may have error)
-   */
-  FINISHED
-};
-
-
-/**
- * Link controllers request forwarding context
- */
-struct LCFContext
-{
-  /**
-   * The type of this data structure. Set this to CLOSURE_TYPE_LCF
-   */
-  enum ClosureType type;
-  
-  /**
-   * The gateway which will pass the link message to delegated host
-   */
-  struct Slave *gateway;
-
-  /**
-   * The client which has asked to perform this operation
-   */
-  struct GNUNET_SERVER_Client *client;
-
-  /**
-   * Handle for operations which are forwarded while linking controllers
-   */
-  struct GNUNET_TESTBED_Operation *op;
-
-  /**
-   * The configuration which has to be either used as a template while starting
-   * the delegated controller or for connecting to the delegated controller
-   */
-  struct GNUNET_CONFIGURATION_Handle *cfg;
-
-  /**
-   * The timeout task
-   */
-  GNUNET_SCHEDULER_TaskIdentifier timeout_task;
-
-  /**
-   * The id of the operation which created this context
-   */
-  uint64_t operation_id;
-  
-  /**
-   * should the slave controller start the delegated controller?
-   */
-  int is_subordinate;
-
-  /**
-   * The state of this context
-   */
-  enum LCFContextState state;
-
-  /**
-   * The delegated host
-   */
-  uint32_t delegated_host_id;
-
-  /**
-   * The slave host
-   */
-  uint32_t slave_host_id;
-
-};
-
-
-/**
- * Structure of a queue entry in LCFContext request queue
- */
-struct LCFContextQueue
-{
-  /**
-   * The LCFContext
-   */
-  struct LCFContext *lcf;
-
-  /**
-   * Head prt for DLL
-   */
-  struct LCFContextQueue *next;
-
-  /**
-   * Tail ptr for DLL
-   */
-  struct LCFContextQueue *prev;
-};
-
-
-/**
- * Context data for GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS handler
+ * Context data for #GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS handler
  */
 struct HandlerContext_ShutdownPeers
 {
   /**
    * The number of slave we expect to hear from since we forwarded the
-   * GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS message to them
+   * #GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS message to them
    */
   unsigned int nslaves;
 
@@ -621,7 +419,7 @@ struct HandlerContext_ShutdownPeers
 /**
  * Our configuration
  */
-struct GNUNET_CONFIGURATION_Handle *our_config;
+extern struct GNUNET_CONFIGURATION_Handle *GST_config;
 
 /**
  * The master context; generated with the first INIT message
@@ -648,11 +446,6 @@ extern struct Peer **GST_peer_list;
  */
 extern struct GNUNET_TESTBED_Host **GST_host_list;
 
-/**
- * A list of directly linked neighbours
- */
-extern struct Slave **GST_slave_list;
-
 /**
  * Operation queue for open file descriptors
  */
@@ -669,20 +462,32 @@ const extern struct GNUNET_TIME_Relative GST_timeout;
 extern unsigned int GST_peer_list_size;
 
 /**
- * The size of the host list
+ * The current number of peers running locally under this controller
  */
-extern unsigned int GST_host_list_size;
+extern unsigned int GST_num_local_peers;
 
 /**
- * The size of directly linked neighbours list
+ * The size of the host list
  */
-extern unsigned int GST_slave_list_size;
+extern unsigned int GST_host_list_size;
 
 /**
  * The directory where to store load statistics data
  */
 extern char *GST_stats_dir;
 
+/**
+ * Condition to check if host id is valid
+ */
+#define VALID_HOST_ID(id) \
+  ( ((id) < GST_host_list_size) && (NULL != GST_host_list[id]) )
+
+/**
+ * Condition to check if peer id is valid
+ */
+#define VALID_PEER_ID(id) \
+  ( ((id) < GST_peer_list_size) && (NULL != GST_peer_list[id]) )
+
 
 /**
  * Similar to GNUNET_array_grow(); however instead of calling GNUNET_array_grow()
@@ -708,17 +513,6 @@ extern char *GST_stats_dir;
   } while (0)
 
 
-/**
- * Queues a message in send queue for sending to the service
- *
- * @param client the client to whom the queued message has to be sent
- * @param msg the message to queue
- */
-void
-GST_queue_message (struct GNUNET_SERVER_Client *client,
-                   struct GNUNET_MessageHeader *msg);
-
-
 /**
  * Function to destroy a peer
  *
@@ -732,7 +526,7 @@ GST_destroy_peer (struct Peer *peer);
  * Stops and destroys all peers
  */
 void
-GST_destroy_peers ();
+GST_destroy_peers (void);
 
 
 /**
@@ -748,27 +542,14 @@ GST_find_dest_route (uint32_t host_id);
 
 
 /**
- * Message handler for GNUNET_MESSAGE_TYPE_TESTBED_LCONTROLLERS message
+ * Handler for #GNUNET_MESSAGE_TYPE_TESTBED_OVERLAY_CONNECT messages
  *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_handle_link_controllers (void *cls, struct GNUNET_SERVER_Client *client,
-                             const struct GNUNET_MessageHeader *message);
-
-
-/**
- * Handler for GNUNET_MESSAGE_TYPE_TESTBED_OLCONNECT messages
- *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
- */
-void
-GST_handle_overlay_connect (void *cls, struct GNUNET_SERVER_Client *client,
-                            const struct GNUNET_MessageHeader *message);
+handle_overlay_connect (void *cls,
+                        const struct GNUNET_TESTBED_OverlayConnectMessage *msg);
 
 
 /**
@@ -804,15 +585,14 @@ GST_forwarded_operation_reply_relay (void *cls,
  * @param tc the task context from scheduler
  */
 void
-GST_forwarded_operation_timeout (void *cls,
-                                 const struct GNUNET_SCHEDULER_TaskContext *tc);
+GST_forwarded_operation_timeout (void *cls);
 
 
 /**
  * Clears the forwarded operations queue
  */
 void
-GST_clear_fopcq ();
+GST_clear_fopcq (void);
 
 
 /**
@@ -823,8 +603,27 @@ GST_clear_fopcq ();
  * @param emsg the error message; can be NULL
  */
 void
-GST_send_operation_fail_msg (struct GNUNET_SERVER_Client *client,
-                             uint64_t operation_id, const char *emsg);
+GST_send_operation_fail_msg (struct GNUNET_SERVICE_Client *client,
+                             uint64_t operation_id,
+                             const char *emsg);
+
+
+/**
+ * Notify OC subsystem that @a client disconnected.
+ *
+ * @param client the client that disconnected
+ */
+void
+GST_notify_client_disconnect_oc (struct GNUNET_SERVICE_Client *client);
+
+
+/**
+ * Notify peers subsystem that @a client disconnected.
+ *
+ * @param client the client that disconnected
+ */
+void
+GST_notify_client_disconnect_peers (struct GNUNET_SERVICE_Client *client);
 
 
 /**
@@ -834,133 +633,180 @@ GST_send_operation_fail_msg (struct GNUNET_SERVER_Client *client,
  * @param operation_id the id of the operation which was successful
  */
 void
-GST_send_operation_success_msg (struct GNUNET_SERVER_Client *client,
+GST_send_operation_success_msg (struct GNUNET_SERVICE_Client *client,
                                 uint64_t operation_id);
 
 
 /**
- * Handler for GNUNET_MESSAGE_TYPE_TESTBED_REQUESTCONNECT messages
+ * Check #GNUNET_MESSAGE_TYPE_TESTBED_REMOTE_OVERLAY_CONNECT messages
  *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
+ * @param cls identification of the client
+ * @param msg the actual message
+ * @return #GNUNET_OK if @a msg is well-formed
+ */
+int
+check_remote_overlay_connect (void *cls,
+                              const struct GNUNET_TESTBED_RemoteOverlayConnectMessage *msg);
+
+
+/**
+ * Handler for #GNUNET_MESSAGE_TYPE_TESTBED_REMOTE_OVERLAY_CONNECT messages
+ *
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_handle_remote_overlay_connect (void *cls,
-                                   struct GNUNET_SERVER_Client *client,
-                                   const struct GNUNET_MessageHeader *message);
+handle_remote_overlay_connect (void *cls,
+                               const struct GNUNET_TESTBED_RemoteOverlayConnectMessage *msg);
+
+
+/**
+ * Check #GNUNET_MESSAGE_TYPE_TESTBED_CREATEPEER messages
+ *
+ * @param cls identification of the client
+ * @param msg the actual message
+ * @return #GNUNET_OK if @a msg is well-formed
+ */
+int
+check_peer_create (void *cls,
+                   const struct GNUNET_TESTBED_PeerCreateMessage *msg);
 
 
 /**
- * Handler for GNUNET_MESSAGE_TYPE_TESTBED_CREATEPEER messages
+ * Handler for #GNUNET_MESSAGE_TYPE_TESTBED_CREATEPEER messages
  *
- * @param cls NULL
- * @param client identification of the client
+ * @param cls identification of the client
  * @param message the actual message
  */
 void
-GST_handle_peer_create (void *cls, struct GNUNET_SERVER_Client *client,
-                        const struct GNUNET_MessageHeader *message);
+handle_peer_create (void *cls,
+                    const struct GNUNET_TESTBED_PeerCreateMessage *msg);
 
 
 /**
- * Message handler for GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages
+ * Message handler for #GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages
  *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_handle_peer_destroy (void *cls, struct GNUNET_SERVER_Client *client,
-                         const struct GNUNET_MessageHeader *message);
+handle_peer_destroy (void *cls,
+                     const struct GNUNET_TESTBED_PeerDestroyMessage *msg);
 
 
 /**
- * Message handler for GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages
+ * Message handler for #GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages
  *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_handle_peer_start (void *cls, struct GNUNET_SERVER_Client *client,
-                       const struct GNUNET_MessageHeader *message);
+handle_peer_start (void *cls,
+                   const struct GNUNET_TESTBED_PeerStartMessage *msg);
 
 
 /**
- * Message handler for GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages
+ * Message handler for #GNUNET_MESSAGE_TYPE_TESTBED_DESTROYPEER messages
  *
- * @param cls NULL
- * @param client identification of the client
+ * @param cls identification of the client
  * @param message the actual message
  */
 void
-GST_handle_peer_stop (void *cls, struct GNUNET_SERVER_Client *client,
-                      const struct GNUNET_MessageHeader *message);
+handle_peer_stop (void *cls,
+                  const struct GNUNET_TESTBED_PeerStopMessage *msg);
 
 
 /**
- * Handler for GNUNET_MESSAGE_TYPE_TESTBED_GETPEERCONFIG messages
+ * Handler for #GNUNET_MESSAGE_TYPE_TESTBED_GETPEERCONFIG messages
  *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_handle_peer_get_config (void *cls, struct GNUNET_SERVER_Client *client,
-                            const struct GNUNET_MessageHeader *message);
+handle_peer_get_config (void *cls,
+                        const struct GNUNET_TESTBED_PeerGetConfigurationMessage *msg);
 
 
 /**
- * Handler for GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS messages
+ * Handler for #GNUNET_MESSAGE_TYPE_TESTBED_SHUTDOWN_PEERS messages
  *
- * @param cls NULL
- * @param client identification of the client
- * @param message the actual message
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_handle_shutdown_peers (void *cls, struct GNUNET_SERVER_Client *client,
-                           const struct GNUNET_MessageHeader *message);
+handle_shutdown_peers (void *cls,
+                       const struct GNUNET_TESTBED_ShutdownPeersMessage *msg);
 
 
 /**
- * Handler for GNUNET_TESTBED_ManagePeerServiceMessage message
+ * Check #GNUNET_MESSAGE_TYPE_TESTBED_MANAGE_PEER_SERVICE message
  *
- * @param cls NULL
- * @param client identification of client
- * @param message the actual message
+ * @param cls identification of client
+ * @param msg the actual message
+ * @return #GNUNET_OK if @a msg is well-formed
+ */
+int
+check_manage_peer_service (void *cls,
+                           const struct GNUNET_TESTBED_ManagePeerServiceMessage *msg);
+
+
+/**
+ * Handler for #GNUNET_MESSAGE_TYPE_TESTBED_MANAGE_PEER_SERVICE message
+ *
+ * @param cls identification of client
+ * @param msg the actual message
  */
 void
-GST_handle_manage_peer_service (void *cls, struct GNUNET_SERVER_Client *client,
-                                const struct GNUNET_MessageHeader *message);
+handle_manage_peer_service (void *cls,
+                            const struct GNUNET_TESTBED_ManagePeerServiceMessage *msg);
+
+
 
 
 /**
- * Frees the ManageServiceContext queue
+ * Check #GNUNET_MESSAGE_TYPDE_TESTBED_RECONFIGURE_PEER type messages.
+ *
+ * @param cls identification of the client
+ * @param msg the actual message
+ * @return #GNUNET_OK if @a msg is well-formed
+ */
+int
+check_peer_reconfigure (void *cls,
+                        const struct GNUNET_TESTBED_PeerReconfigureMessage *msg);
+
+
+/**
+ * Handler for #GNUNET_MESSAGE_TYPDE_TESTBED_RECONFIGURE_PEER type messages.
+ * Should stop the peer asyncronously, destroy it and create it again with the
+ * new configuration.
+ *
+ * @param cls identification of the client
+ * @param msg the actual message
  */
 void
-GST_free_mctxq ();
+handle_peer_reconfigure (void *cls,
+                         const struct GNUNET_TESTBED_PeerReconfigureMessage *msg);
 
 
 /**
- * Cleans up the queue used for forwarding link controllers requests
+ * Frees the ManageServiceContext queue
  */
 void
-GST_free_lcfq ();
+GST_free_mctxq (void);
 
 
 /**
- * Cleans up the route list
+ * Cleans up the queue used for forwarding link controllers requests
  */
 void
-GST_route_list_clear ();
+GST_free_lcf (void);
 
 
 /**
- * Cleans up the slave list
+ * Cleans up the route list
  */
 void
-GST_slave_list_clear ();
+GST_route_list_clear (void);
 
 
 /**
@@ -985,14 +831,21 @@ GST_cleanup_focc (struct ForwardedOverlayConnectContext *focc);
  * Clears all pending overlay connect contexts in queue
  */
 void
-GST_free_occq ();
+GST_free_occq (void);
 
 
 /**
  * Clears all pending remote overlay connect contexts in queue
  */
 void
-GST_free_roccq ();
+GST_free_roccq (void);
+
+
+/**
+ * Cleans up the Peer reconfigure context list
+ */
+void
+GST_free_prcq (void);
 
 
 /**
@@ -1008,7 +861,7 @@ GST_cache_init (unsigned int size);
  * Clear cache
  */
 void
-GST_cache_clear ();
+GST_cache_clear (void);
 
 
 /**
@@ -1033,113 +886,6 @@ GST_cache_add_hello (const unsigned int peer_id,
                      const struct GNUNET_MessageHeader *hello);
 
 
-/**
- * Functions of this type are called when the needed handle is available for
- * usage. These functions are to be registered with either of the functions
- * GST_cache_get_handle_transport() or GST_cache_get_handle_core(). The
- * corresponding handles will be set and if they are not, then it signals an
- * error while opening the handles.
- *
- * @param cls the closure passed to GST_cache_get_handle_transport() or
- *          GST_cache_get_handle_core()
- * @param ch the handle to CORE. Can be NULL if it is not requested
- * @param th the handle to TRANSPORT. Can be NULL if it is not requested
- * @param peer_id the identity of the peer. Will be NULL if ch is NULL. In other
- *          cases, its value being NULL means that CORE connection has failed.
- */
-typedef void (*GST_cache_handle_ready_cb) (void *cls,
-                                           struct GNUNET_CORE_Handle * ch,
-                                           struct GNUNET_TRANSPORT_Handle * th,
-                                           const struct GNUNET_PeerIdentity *
-                                           peer_id);
-
-
-/**
- * Callback to notify when the target peer given to
- * GST_cache_get_handle_transport() is connected. Note that this callback may
- * not be called if the target peer is already connected. Use
- * GNUNET_TRANSPORT_check_neighbour_connected() to check if the target peer is
- * already connected or not. This callback will be called only once or never (in
- * case the target cannot be connected).
- *
- * @param cls the closure given to GST_cache_get_handle_done() for this callback
- * @param target the peer identity of the target peer. The pointer should be
- *          valid until GST_cache_get_handle_done() is called.
- */
-typedef void (*GST_cache_peer_connect_notify) (void *cls,
-                                               const struct GNUNET_PeerIdentity
-                                               * target);
-
-
-/**
- * Get a transport handle with the given configuration. If the handle is already
- * cached before, it will be retured in the given callback; the peer_id is used to lookup in the
- * cache. If not a new operation is started to open the transport handle and
- * will be given in the callback when it is available.
- *
- * @param peer_id the index of the peer
- * @param cfg the configuration with which the transport handle has to be
- *          created if it was not present in the cache
- * @param cb the callback to notify when the transport handle is available
- * @param cb_cls the closure for the above callback
- * @param target the peer identify of the peer whose connection to our TRANSPORT
- *          subsystem will be notified through the connect_notify_cb. Can be NULL
- * @param connect_notify_cb the callback to call when the given target peer is
- *          connected. This callback will only be called once or never again (in
- *          case the target peer cannot be connected). Can be NULL
- * @param connect_notify_cb_cls the closure for the above callback
- * @return the handle which can be used cancel or mark that the handle is no
- *           longer being used
- */
-struct GSTCacheGetHandle *
-GST_cache_get_handle_transport (unsigned int peer_id,
-                                const struct GNUNET_CONFIGURATION_Handle *cfg,
-                                GST_cache_handle_ready_cb cb, void *cb_cls,
-                                const struct GNUNET_PeerIdentity *target,
-                                GST_cache_peer_connect_notify connect_notify_cb,
-                                void *connect_notify_cb_cls);
-
-
-/**
- * Get a CORE handle with the given configuration. If the handle is already
- * cached before, it will be retured in the given callback; the peer_id is used
- * to lookup in the cache. If the handle is not cached before, a new operation
- * is started to open the CORE handle and will be given in the callback when it
- * is available along with the peer identity
- *
- * @param peer_id the index of the peer
- * @param cfg the configuration with which the transport handle has to be
- *          created if it was not present in the cache
- * @param cb the callback to notify when the transport handle is available
- * @param cb_cls the closure for the above callback
- * @param target the peer identify of the peer whose connection to our CORE
- *          subsystem will be notified through the connect_notify_cb. Can be NULL
- * @param connect_notify_cb the callback to call when the given target peer is
- *          connected. This callback will only be called once or never again (in
- *          case the target peer cannot be connected). Can be NULL
- * @param connect_notify_cb_cls the closure for the above callback
- * @return the handle which can be used cancel or mark that the handle is no
- *           longer being used
- */
-struct GSTCacheGetHandle *
-GST_cache_get_handle_core (unsigned int peer_id,
-                           const struct GNUNET_CONFIGURATION_Handle *cfg,
-                           GST_cache_handle_ready_cb cb, void *cb_cls,
-                           const struct GNUNET_PeerIdentity *target,
-                           GST_cache_peer_connect_notify connect_notify_cb,
-                           void *connect_notify_cb_cls);
-
-
-/**
- * Mark the GetCacheHandle as being done if a handle has been provided already
- * or as being cancelled if the callback for the handle hasn't been called.
- *
- * @param cgh the CacheGetHandle handle
- */
-void
-GST_cache_get_handle_done (struct GSTCacheGetHandle *cgh);
-
-
 /**
  * Initialize logging CPU and IO statisticfs.  Checks the configuration for
  * "STATS_DIR" and logs to a file in that directory.  The file is name is
@@ -1153,6 +899,6 @@ GST_stats_init (const struct GNUNET_CONFIGURATION_Handle *cfg);
  * Shutdown the status calls module.
  */
 void
-GST_stats_destroy ();
+GST_stats_destroy (void);
 
 /* End of gnunet-service-testbed.h */