(no commit message)
[oweals/gnunet.git] / src / include / gnunet_testing_lib.h
index 42ee990c9be44d80be29c7524a0968a6f44a4753..e3e10ce45fd8b1474707f395b1b8328a8610a99d 100644 (file)
@@ -318,6 +318,11 @@ struct GNUNET_TESTING_Daemon
    */
   struct GNUNET_TRANSPORT_Handle *th;
 
+  /**
+   * Handle for getting HELLOs from transport
+   */
+  struct GNUNET_TRANSPORT_GetHelloHandle *ghh;
+
   /**
    * HELLO message for this peer
    */
@@ -427,6 +432,7 @@ typedef void (*GNUNET_TESTING_NotifyConnection) (void *cls,
                                                  second_daemon,
                                                  const char *emsg);
 
+
 /**
  * Prototype of a callback function indicating that two peers
  * are currently connected.
@@ -443,6 +449,7 @@ typedef void (*GNUNET_TESTING_NotifyTopology) (void *cls,
                                                const struct GNUNET_PeerIdentity
                                                * second, const char *emsg);
 
+
 /**
  * Starts a GNUnet daemon.  GNUnet must be installed on the target
  * system and available in the PATH.  The machine must furthermore be
@@ -486,16 +493,17 @@ GNUNET_TESTING_daemon_start (const struct GNUNET_CONFIGURATION_Handle *cfg,
 void
 GNUNET_TESTING_daemon_continue_startup (struct GNUNET_TESTING_Daemon *daemon);
 
+
 /**
  * Check whether the given daemon is running.
  *
  * @param daemon the daemon to check
- *
  * @return GNUNET_YES if the daemon is up, GNUNET_NO if the
  *         daemon is down, GNUNET_SYSERR on error.
  */
 int
-GNUNET_TESTING_daemon_running (struct GNUNET_TESTING_Daemon *daemon);
+GNUNET_TESTING_test_daemon_running (struct GNUNET_TESTING_Daemon *daemon);
+
 
 /**
  * Restart (stop and start) a GNUnet daemon.
@@ -509,6 +517,7 @@ GNUNET_TESTING_daemon_restart (struct GNUNET_TESTING_Daemon *d,
                                GNUNET_TESTING_NotifyDaemonRunning cb,
                                void *cb_cls);
 
+
 /**
  * Start a peer that has previously been stopped using the daemon_stop
  * call (and files weren't deleted and the allow restart flag)
@@ -524,6 +533,7 @@ GNUNET_TESTING_daemon_start_stopped (struct GNUNET_TESTING_Daemon *daemon,
                                      GNUNET_TESTING_NotifyDaemonRunning cb,
                                      void *cb_cls);
 
+
 /**
  * Starts a GNUnet daemon's service.
  *
@@ -535,11 +545,12 @@ GNUNET_TESTING_daemon_start_stopped (struct GNUNET_TESTING_Daemon *daemon,
  */
 void
 GNUNET_TESTING_daemon_start_service (struct GNUNET_TESTING_Daemon *d,
-                                     char *service,
+                                     const char *service,
                                      struct GNUNET_TIME_Relative timeout,
                                      GNUNET_TESTING_NotifyDaemonRunning cb,
                                      void *cb_cls);
 
+
 /**
  * Starts a GNUnet daemon's service which has been previously turned off.
  *
@@ -557,6 +568,7 @@ GNUNET_TESTING_daemon_start_stopped_service (struct GNUNET_TESTING_Daemon *d,
                                              GNUNET_TESTING_NotifyDaemonRunning
                                              cb, void *cb_cls);
 
+
 /**
  * Get a certain testing daemon handle.
  *
@@ -579,7 +591,7 @@ GNUNET_TESTING_daemon_get (struct GNUNET_TESTING_PeerGroup *pg,
  */
 struct GNUNET_TESTING_Daemon *
 GNUNET_TESTING_daemon_get_by_id (struct GNUNET_TESTING_PeerGroup *pg,
-                                 struct GNUNET_PeerIdentity *peer_id);
+                                 const struct GNUNET_PeerIdentity *peer_id);
 
 
 /**
@@ -631,7 +643,7 @@ GNUNET_TESTING_daemon_reconfigure (struct GNUNET_TESTING_Daemon *d,
  */
 void
 GNUNET_TESTING_daemon_stop_service (struct GNUNET_TESTING_Daemon *d,
-                                    char *service,
+                                    const char *service,
                                     struct GNUNET_TIME_Relative timeout,
                                     GNUNET_TESTING_NotifyCompletion cb,
                                     void *cb_cls);
@@ -703,7 +715,16 @@ GNUNET_TESTING_daemons_continue_startup (struct GNUNET_TESTING_PeerGroup *pg);
 
 
 /**
- * Establish a connection between two GNUnet daemons.
+ * Handle for an active request to connect two peers.
+ */
+struct GNUNET_TESTING_ConnectContext;
+
+
+/**
+ * Establish a connection between two GNUnet daemons.  The daemons
+ * must both be running and not be stopped until either the
+ * 'cb' callback is called OR the connection request has been
+ * explicitly cancelled.
  *
  * @param d1 handle for the first daemon
  * @param d2 handle for the second daemon
@@ -715,6 +736,7 @@ GNUNET_TESTING_daemons_continue_startup (struct GNUNET_TESTING_PeerGroup *pg);
  *                   the HELLO has already been exchanged
  * @param cb function to call at the end
  * @param cb_cls closure for cb
+ * @return handle to cancel the request, NULL on error
  */
 struct GNUNET_TESTING_ConnectContext *
 GNUNET_TESTING_daemons_connect (struct GNUNET_TESTING_Daemon *d1,
@@ -726,13 +748,16 @@ GNUNET_TESTING_daemons_connect (struct GNUNET_TESTING_Daemon *d1,
                                 void *cb_cls);
 
 
+
 /**
  * Cancel an attempt to connect two daemons.
  *
  * @param cc connect context
  */
 void
-GNUNET_TESTING_daemons_connect_cancel (struct GNUNET_TESTING_ConnectContext *cc);
+GNUNET_TESTING_daemons_connect_cancel (struct GNUNET_TESTING_ConnectContext
+                                       *cc);
+
 
 
 /**