tolerate additional IPv4 address now available for gnunet.org
[oweals/gnunet.git] / src / testing / testing.c
index a43bed31f908b9c3f90797ba4c828d9d232da35f..7dbd97294c5d05e8c2a58a153359c8aceb85ae8a 100644 (file)
@@ -1,21 +1,21 @@
 /*
       This file is part of GNUnet
-      Copyright (C) 2008, 2009, 2012 Christian Grothoff (and other contributing authors)
+      Copyright (C) 2008, 2009, 2012 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 3, or (at your
-      option) any later version.
+      GNUnet is free software: you can redistribute it and/or modify it
+      under the terms of the GNU Affero General Public License as published
+      by the Free Software Foundation, either version 3 of the License,
+      or (at your option) any later version.
 
       GNUnet is distributed in the hope that it will be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-      General Public License for more details.
+      Affero General Public License for more details.
 
-      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., 51 Franklin Street, Fifth Floor,
-      Boston, MA 02110-1301, USA.
+      You should have received a copy of the GNU Affero General Public License
+      along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
  */
 
 /**
@@ -204,11 +204,6 @@ struct GNUNET_TESTING_Peer
    */
   struct GNUNET_ARM_Handle *ah;
 
-  /**
-   * Handle to ARM monitoring
-   */
-  struct GNUNET_ARM_MonitorHandle *mh;
-
   /**
    * The config of the peer
    */
@@ -722,7 +717,7 @@ GNUNET_TESTING_hostkey_get (const struct GNUNET_TESTING_System *system,
     return NULL;
   }
   private_key = GNUNET_new (struct GNUNET_CRYPTO_EddsaPrivateKey);
-  memcpy (private_key,
+  GNUNET_memcpy (private_key,
          system->hostkeys_data +
          (key_number * GNUNET_TESTING_HOSTKEYFILESIZE),
          GNUNET_TESTING_HOSTKEYFILESIZE);
@@ -791,7 +786,7 @@ update_config (void *cls,
   struct UpdateContext *uc = cls;
   unsigned int ival;
   char cval[12];
-  char uval[128];
+  char uval[PATH_MAX];
   char *single_variable;
   char *per_host_variable;
   unsigned long long num_per_host;
@@ -844,7 +839,9 @@ update_config (void *cls,
         GNUNET_CONFIGURATION_get_value_yesno (uc->cfg, "testing",
                                               single_variable))
     {
-      GNUNET_snprintf (uval, sizeof (uval), "%s/%s.sock",
+      GNUNET_snprintf (uval,
+                       sizeof (uval),
+                       "%s/%s.sock",
                        uc->gnunet_home, section);
       value = uval;
     }
@@ -912,6 +909,7 @@ update_config_sections (void *cls,
       {
         ikeys[key] = ptr;
         ptr = strstr (ptr, ";");
+        GNUNET_assert (NULL != ptr); /* worked just before... */
         *ptr = '\0';
         ptr++;
       }
@@ -1296,14 +1294,14 @@ GNUNET_TESTING_peer_get_identity (struct GNUNET_TESTING_Peer *peer,
 {
   if (NULL != peer->id)
   {
-    memcpy (id, peer->id, sizeof (struct GNUNET_PeerIdentity));
+    GNUNET_memcpy (id, peer->id, sizeof (struct GNUNET_PeerIdentity));
     return;
   }
   peer->id = GNUNET_new (struct GNUNET_PeerIdentity);
   GNUNET_free (GNUNET_TESTING_hostkey_get (peer->system,
                                                          peer->key_number,
                                                          peer->id));
-  memcpy (id, peer->id, sizeof (struct GNUNET_PeerIdentity));
+  GNUNET_memcpy (id, peer->id, sizeof (struct GNUNET_PeerIdentity));
 }
 
 
@@ -1354,65 +1352,6 @@ GNUNET_TESTING_peer_start (struct GNUNET_TESTING_Peer *peer)
 }
 
 
-/**
- * Start a service at a peer using its ARM service
- *
- * @param peer the peer whose service has to be started
- * @param service_name name of the service to start
- * @param timeout how long should the ARM API try to send the request to start
- *          the service
- * @param cont the callback to call with result and status from ARM API
- * @param cont_cls the closure for the above callback
- * @return #GNUNET_OK upon successfully queuing the service start request;
- *           #GNUNET_SYSERR upon error
- */
-int
-GNUNET_TESTING_peer_service_start (struct GNUNET_TESTING_Peer *peer,
-                                   const char *service_name,
-                                   struct GNUNET_TIME_Relative timeout,
-                                   GNUNET_ARM_ResultCallback cont,
-                                   void *cont_cls)
-{
-  if (NULL == peer->ah)
-    return GNUNET_SYSERR;
-  GNUNET_ARM_request_service_start (peer->ah,
-                                    service_name,
-                                    GNUNET_OS_INHERIT_STD_ALL,
-                                    timeout,
-                                    cont, cont_cls);
-  return GNUNET_OK;
-}
-
-
-/**
- * Stop a service at a peer using its ARM service
- *
- * @param peer the peer whose service has to be stopped
- * @param service_name name of the service to stop
- * @param timeout how long should the ARM API try to send the request to stop
- *          the service
- * @param cont the callback to call with result and status from ARM API
- * @param cont_cls the closure for the above callback
- * @return #GNUNET_OK upon successfully queuing the service stop request;
- *           #GNUNET_SYSERR upon error
- */
-int
-GNUNET_TESTING_peer_service_stop (struct GNUNET_TESTING_Peer *peer,
-                                  const char *service_name,
-                                  struct GNUNET_TIME_Relative timeout,
-                                  GNUNET_ARM_ResultCallback cont,
-                                  void *cont_cls)
-{
-  if (NULL == peer->ah)
-    return GNUNET_SYSERR;
-  GNUNET_ARM_request_service_stop (peer->ah,
-                                   service_name,
-                                   timeout,
-                                   cont, cont_cls);
-  return GNUNET_OK;
-}
-
-
 /**
  * Sends SIGTERM to the peer's main process
  *
@@ -1510,7 +1449,7 @@ disconn_status (void *cls,
     return;
   }
   GNUNET_break (GNUNET_OK == GNUNET_TESTING_peer_wait (peer));
-  GNUNET_ARM_disconnect_and_free (peer->ah);
+  GNUNET_ARM_disconnect (peer->ah);
   peer->ah = NULL;
   peer->cb (peer->cb_cls, peer, GNUNET_YES);
 }
@@ -1556,7 +1495,7 @@ void
 GNUNET_TESTING_peer_stop_async_cancel (struct GNUNET_TESTING_Peer *peer)
 {
   GNUNET_assert (NULL != peer->ah);
-  GNUNET_ARM_disconnect_and_free (peer->ah);
+  GNUNET_ARM_disconnect (peer->ah);
   peer->ah = NULL;
 }
 
@@ -1576,9 +1515,7 @@ GNUNET_TESTING_peer_destroy (struct GNUNET_TESTING_Peer *peer)
   if (NULL != peer->main_process)
     GNUNET_TESTING_peer_stop (peer);
   if (NULL != peer->ah)
-    GNUNET_ARM_disconnect_and_free (peer->ah);
-  if (NULL != peer->mh)
-    GNUNET_ARM_monitor_disconnect_and_free (peer->mh);
+    GNUNET_ARM_disconnect (peer->ah);
   GNUNET_free (peer->cfgfile);
   if (NULL != peer->cfg)
     GNUNET_CONFIGURATION_destroy (peer->cfg);
@@ -1654,11 +1591,9 @@ struct ServiceContext
  * Callback to be called when SCHEDULER has been started
  *
  * @param cls the ServiceContext
- * @param tc the TaskContext
  */
 static void
-service_run_main (void *cls,
-                 const struct GNUNET_SCHEDULER_TaskContext *tc)
+service_run_main (void *cls)
 {
   struct ServiceContext *sc = cls;
 
@@ -1701,7 +1636,9 @@ GNUNET_TESTING_service_run (const char *testdir,
   char *binary;
   char *libexec_binary;
 
-  GNUNET_log_setup (testdir, "WARNING", NULL);
+  GNUNET_log_setup (testdir,
+                    "WARNING",
+                    NULL);
   system = GNUNET_TESTING_system_create (testdir, "127.0.0.1", NULL, NULL);
   if (NULL == system)
     return 1;
@@ -1785,7 +1722,7 @@ GNUNET_TESTING_get_testname_from_underscore (const char *argv0)
   char *ret;
   char *dot;
 
-  memcpy (sbuf, argv0, slen);
+  GNUNET_memcpy (sbuf, argv0, slen);
   ret = strrchr (sbuf, '_');
   if (NULL == ret)
     return NULL;