Using regex for exit/vpn
[oweals/gnunet.git] / src / include / gnunet_testing_lib.h
index 39bc9d16168c56f32e6bc5f217776deda79df003..b170670d1ffe92a3d8230dd73142c77783759f23 100644 (file)
@@ -304,9 +304,34 @@ struct GNUNET_TESTING_Daemon
   void *update_cb_cls;
 
   /**
-   * PID of the process that we started last.
+   * PID of the process we used to run gnunet-arm or SSH to start the peer.
    */
-  struct GNUNET_OS_Process *proc;
+  struct GNUNET_OS_Process *proc_arm_start;
+
+  /**
+   * PID of the process we used to run gnunet-arm or SSH to stop the peer.
+   */
+  struct GNUNET_OS_Process *proc_arm_stop;
+
+  /**
+   * PID of the process we used to run gnunet-arm or SSH to manage services at the peer.
+   */
+  struct GNUNET_OS_Process *proc_arm_srv_start;
+
+  /**
+   * PID of the process we used to run gnunet-arm or SSH to manage services at the peer.
+   */
+  struct GNUNET_OS_Process *proc_arm_srv_stop;
+
+  /**
+   * PID of the process we used to run copy files
+   */
+  struct GNUNET_OS_Process *proc_arm_copying;
+
+  /**
+   * PID of the process we used to run gnunet-peerinfo.
+   */
+  struct GNUNET_OS_Process *proc_arm_peerinfo;
 
   /**
    * Handle to the server.
@@ -505,6 +530,20 @@ int
 GNUNET_TESTING_test_daemon_running (struct GNUNET_TESTING_Daemon *daemon);
 
 
+/**
+ * Obtain the peer identity of the peer with the given configuration
+ * handle.  This function reads the private key of the peer, obtains
+ * the public key and hashes it.
+ *
+ * @param cfg configuration of the peer
+ * @param pid where to store the peer identity
+ * @return GNUNET_OK on success, GNUNET_SYSERR on failure
+ */
+int
+GNUNET_TESTING_get_peer_identity (const struct GNUNET_CONFIGURATION_Handle *cfg,
+                                 struct GNUNET_PeerIdentity *pid);
+
+
 /**
  * Restart (stop and start) a GNUnet daemon.
  *
@@ -591,7 +630,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);
 
 
 /**
@@ -614,6 +653,29 @@ GNUNET_TESTING_daemon_stop (struct GNUNET_TESTING_Daemon *d,
                             int delete_files, int allow_restart);
 
 
+
+/**
+ * Create a new configuration using the given configuration
+ * as a template; however, each PORT in the existing cfg
+ * must be renumbered by incrementing "*port".  If we run
+ * out of "*port" numbers, return NULL.
+ *
+ * @param cfg template configuration
+ * @param off the current peer offset
+ * @param port port numbers to use, update to reflect
+ *             port numbers that were used
+ * @param upnum number to make unix domain socket names unique
+ * @param hostname hostname of the controlling host, to allow control connections from
+ * @param fdnum number used to offset the unix domain socket for grouped processes
+ *              (such as statistics or peerinfo, which can be shared among others)
+ *
+ * @return new configuration, NULL on error
+ */
+struct GNUNET_CONFIGURATION_Handle *
+GNUNET_TESTING_create_cfg (const struct GNUNET_CONFIGURATION_Handle *cfg, uint32_t off,
+             uint16_t * port, uint32_t * upnum, const char *hostname,
+             uint32_t * fdnum);
+
 /**
  * Changes the configuration of a GNUnet daemon.
  *