- remove adjust
[oweals/gnunet.git] / src / experimentation / gnunet-daemon-experimentation_experiments.c
index b4db5188b12ffcf2657dc93fbd90ff2e8998abaf..471a7bfdc01e2962b24c8272b6246b22bae7fc80 100644 (file)
@@ -54,14 +54,14 @@ experiment_verify (struct Issuer *i, struct Experiment *e)
 {
   GNUNET_assert (NULL != i);
   GNUNET_assert (NULL != e);
-  
+
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
              "Verification: to be implemented\n");
   return GNUNET_OK;
 }
 
 
-static int 
+static int
 free_experiment (void *cls,
                 const struct GNUNET_HashCode * key,
                 void *value)
@@ -84,15 +84,15 @@ free_experiment (void *cls,
  * @param value the issuer element to free
  * @return GNUNET_OK to continue
  */
-static int 
+static int
 free_issuer (void *cls,
             const struct GNUNET_HashCode * key,
             void *value)
 {
   struct Issuer *i = value;
 
-  GNUNET_break (0 == GNUNET_CONTAINER_multihashmap_remove (valid_issuers, 
-                                                          key, 
+  GNUNET_break (0 == GNUNET_CONTAINER_multihashmap_remove (valid_issuers,
+                                                          key,
                                                           i));
   GNUNET_free (i);
   return GNUNET_OK;
@@ -105,11 +105,11 @@ free_issuer (void *cls,
  * @return #GNUNET_YES or #GNUNET_NO
  */
 int
-GED_experiments_issuer_accepted (const struct GNUNET_CRYPTO_EccPublicSignKey *issuer_id)
+GED_experiments_issuer_accepted (const struct GNUNET_CRYPTO_EddsaPublicKey *issuer_id)
 {
   struct GNUNET_HashCode hash;
 
-  GNUNET_CRYPTO_hash (issuer_id, sizeof (struct GNUNET_CRYPTO_EccPublicSignKey), &hash);
+  GNUNET_CRYPTO_hash (issuer_id, sizeof (struct GNUNET_CRYPTO_EddsaPublicKey), &hash);
   if (GNUNET_CONTAINER_multihashmap_contains (valid_issuers, &hash))
     return GNUNET_YES;
   return GNUNET_NO;
@@ -121,14 +121,14 @@ GED_experiments_issuer_accepted (const struct GNUNET_CRYPTO_EccPublicSignKey *is
  * experiment map.
  */
 static void
-get_experiment_key (const struct GNUNET_CRYPTO_EccPublicSignKey *issuer,
+get_experiment_key (const struct GNUNET_CRYPTO_EddsaPublicKey *issuer,
                    const char *name,
                    const struct GNUNET_TIME_Absolute version,
                    struct GNUNET_HashCode *key)
 {
   GNUNET_assert (GNUNET_YES ==
                 GNUNET_CRYPTO_kdf (key, sizeof (struct GNUNET_HashCode),
-                                   issuer, sizeof (struct GNUNET_CRYPTO_EccPublicSignKey),
+                                   issuer, sizeof (struct GNUNET_CRYPTO_EddsaPublicKey),
                                    name, strlen (name),
                                    &version, sizeof (version),
                                    NULL, 0));
@@ -144,13 +144,13 @@ get_experiment_key (const struct GNUNET_CRYPTO_EccPublicSignKey *issuer,
  * @return the experiment or NULL if not found
  */
 struct Experiment *
-GED_experiments_find (const struct GNUNET_CRYPTO_EccPublicSignKey *issuer,
+GED_experiments_find (const struct GNUNET_CRYPTO_EddsaPublicKey *issuer,
                      const char *name,
                      const struct GNUNET_TIME_Absolute version)
 {
   struct GNUNET_HashCode hc;
-  
-  get_experiment_key (issuer, 
+
+  get_experiment_key (issuer,
                      name,
                      version,
                      &hc);
@@ -165,7 +165,7 @@ struct GetCtx
 
   GNUNET_EXPERIMENTATION_experiments_get_cb get_cb;
 
-  struct GNUNET_CRYPTO_EccPublicSignKey *issuer;
+  struct GNUNET_CRYPTO_EddsaPublicKey *issuer;
 };
 
 
@@ -179,15 +179,15 @@ get_it (void *cls,
 
   if (0 == memcmp (&e->issuer,
                   get_ctx->issuer,
-                  sizeof (struct GNUNET_CRYPTO_EccPublicSignKey)))
-    get_ctx->get_cb (get_ctx->n, e);  
+                  sizeof (struct GNUNET_CRYPTO_EddsaPublicKey)))
+    get_ctx->get_cb (get_ctx->n, e);
   return GNUNET_OK;
 }
 
 
 void
 GED_experiments_get (struct Node *n,
-                    struct GNUNET_CRYPTO_EccPublicSignKey *issuer,
+                    struct GNUNET_CRYPTO_EddsaPublicKey *issuer,
                     GNUNET_EXPERIMENTATION_experiments_get_cb get_cb)
 {
   struct GetCtx get_ctx;
@@ -210,7 +210,7 @@ GED_experiments_get (struct Node *n,
 int
 GNUNET_EXPERIMENTATION_experiments_add (struct Issuer *i,
                                        const char *name,
-                                       const struct GNUNET_CRYPTO_EccPublicSignKey *issuer_id,
+                                       const struct GNUNET_CRYPTO_EddsaPublicKey *issuer_id,
                                        struct GNUNET_TIME_Absolute version,
                                        char *description,
                                        uint32_t required_capabilities,
@@ -222,7 +222,7 @@ GNUNET_EXPERIMENTATION_experiments_add (struct Issuer *i,
   struct Experiment *e;
   struct GNUNET_HashCode hc;
 
-  e = GNUNET_new (struct Experiment);  
+  e = GNUNET_new (struct Experiment);
   e->name = GNUNET_strdup (name);
   e->issuer = *issuer_id;
   e->version = version;
@@ -233,20 +233,20 @@ GNUNET_EXPERIMENTATION_experiments_add (struct Issuer *i,
   e->frequency = frequency;
   e->duration = duration;
   e->stop = stop;
-  
+
   /* verify experiment */
   if (GNUNET_SYSERR == experiment_verify (i, e))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               _("Experiment `%s': Experiment signature is invalid\n"), 
+               _("Experiment `%s': Experiment signature is invalid\n"),
                name);
     GNUNET_free (e);
     GNUNET_free_non_null (e->name);
     GNUNET_free_non_null (e->description);
     return GNUNET_SYSERR;
   }
-  
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO, 
+
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
              _("Adding experiment `%s' running from `%s' to `%s' every %llu sec. for %llu sec. \n"),
              e->name,
              GNUNET_STRINGS_absolute_time_to_string (start),
@@ -259,12 +259,12 @@ GNUNET_EXPERIMENTATION_experiments_add (struct Issuer *i,
                      &hc);
   GNUNET_CONTAINER_multihashmap_put (experiments,
                                     &hc,
-                                    e, 
+                                    e,
                                     GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE);
-  GNUNET_STATISTICS_set (GED_stats, 
-                        "# experiments", 
+  GNUNET_STATISTICS_set (GED_stats,
+                        "# experiments",
                         GNUNET_CONTAINER_multihashmap_size (experiments), GNUNET_NO);
-  
+
   return GNUNET_OK;
 }
 
@@ -284,7 +284,7 @@ exp_file_iterator (void *cls,
   char *val;
   unsigned long long number;
   /* Experiment values */
-  struct GNUNET_CRYPTO_EccPublicSignKey issuer;
+  struct GNUNET_CRYPTO_EddsaPublicKey issuer;
   struct GNUNET_TIME_Absolute version;
   char *description;
   uint32_t required_capabilities;
@@ -293,9 +293,9 @@ exp_file_iterator (void *cls,
   struct GNUNET_TIME_Relative frequency;
   struct GNUNET_TIME_Relative duration;
   struct GNUNET_HashCode phash;
-  
+
   /* Mandatory fields */
-  
+
   /* Issuer */
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_string (exp, name, "ISSUER", &val))
   {
@@ -303,8 +303,8 @@ exp_file_iterator (void *cls,
                _("Experiment `%s': Issuer missing\n"), name);
     return;
   }
-  if (GNUNET_SYSERR == 
-      GNUNET_CRYPTO_ecc_public_sign_key_from_string (val, 
+  if (GNUNET_SYSERR ==
+      GNUNET_CRYPTO_eddsa_public_key_from_string (val,
                                                     strlen (val),
                                                     &issuer))
   {
@@ -322,20 +322,20 @@ exp_file_iterator (void *cls,
     return;
   }
   GNUNET_free (val);
-  
+
   /* Version */
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number (exp, name, "VERSION", &number))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                _("Experiment `%s': Version missing or invalid \n"), name);
     return;
   }
   version.abs_value_us = number; // FIXME: what is this supposed to be? Version != TIME!???
-  
+
   /* Required capabilities */
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number (exp, name, "CAPABILITIES", &number))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                _("Experiment `%s': Required capabilities missing \n"), name);
     return;
   }
@@ -346,23 +346,23 @@ exp_file_iterator (void *cls,
     return;
   }
   required_capabilities = number;
-  
+
   /* Optional fields */
-  
+
   /* Description */
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_string (exp, name, "DESCRIPTION", &description))
     description = NULL;
-  
+
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number (exp, name, "START", (long long unsigned int *) &start.abs_value_us))
     start = GNUNET_TIME_UNIT_ZERO_ABS;
-  
+
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_time (exp, name, "FREQUENCY", &frequency))
     frequency = EXP_DEFAULT_EXP_FREQ;
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_time (exp, name, "DURATION", &duration))
     duration = EXP_DEFAULT_EXP_DUR;
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number (exp, name, "STOP", (long long unsigned int *)&stop.abs_value_us))
     stop = GNUNET_TIME_UNIT_FOREVER_ABS;
-  
+
   GNUNET_EXPERIMENTATION_experiments_add (i, name, &issuer, version,
                                          description, required_capabilities,
                                          start, frequency, duration, stop);
@@ -382,12 +382,12 @@ load_file (const char * file)
 
   if (NULL == exp)
     return;
-  
+
   if (GNUNET_SYSERR == GNUNET_CONFIGURATION_parse (exp, file))
   {
     GNUNET_CONFIGURATION_destroy (exp);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-               _("Failed to parse file `%s'\n"), 
+               _("Failed to parse file `%s'\n"),
                file);
     return;
   }
@@ -406,66 +406,67 @@ GED_experiments_start ()
   char *issuers;
   char *file;
   char *pos;
-  struct GNUNET_CRYPTO_EccPublicSignKey issuer_ID;
+  struct GNUNET_CRYPTO_EddsaPublicKey issuer_ID;
   struct GNUNET_HashCode hash;
-  
+
   /* Load valid issuer */
-  if (GNUNET_SYSERR == 
-      GNUNET_CONFIGURATION_get_value_string (GED_cfg, 
-                                            "EXPERIMENTATION", 
+  if (GNUNET_SYSERR ==
+      GNUNET_CONFIGURATION_get_value_string (GED_cfg,
+                                            "EXPERIMENTATION",
                                             "ISSUERS",
                                             &issuers))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                _("No valid experiment issuers configured! Set value to public keys of issuers! Exiting.\n"));
     GED_experiments_stop ();
     return GNUNET_SYSERR;
   }
-  
+
   valid_issuers = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO);
   for (pos = strtok (issuers, " "); pos != NULL; pos = strtok (NULL, " "))
-  {   
-    if (GNUNET_SYSERR == GNUNET_CRYPTO_ecc_public_sign_key_from_string (pos,
+  {
+    if (GNUNET_SYSERR == GNUNET_CRYPTO_eddsa_public_key_from_string (pos,
                                                                        strlen (pos),
                                                                        &issuer_ID))
     {
-      GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR, 
+      GNUNET_log_config_invalid (GNUNET_ERROR_TYPE_ERROR,
                                 "EXPERIMENTATION",
                                 "ISSUERS",
                                 _("Invalid value for public key\n"));
       GED_experiments_stop ();
+      GNUNET_free (issuers);
       return GNUNET_SYSERR;
     }
     i = GNUNET_new (struct Issuer);
     i->pubkey = issuer_ID;
     GNUNET_CRYPTO_hash( &issuer_ID, sizeof (issuer_ID), &hash);
-    GNUNET_CONTAINER_multihashmap_put (valid_issuers, 
+    GNUNET_CONTAINER_multihashmap_put (valid_issuers,
                                       &hash,
                                       i,
-                                      GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST);   
+                                      GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST);
   }
   GNUNET_free (issuers);
   if (0 == GNUNET_CONTAINER_multihashmap_size (valid_issuers))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                _("No valid experiment issuers configured! Set value to public keys of issuers! Exiting.\n"));
     GED_experiments_stop ();
     return GNUNET_SYSERR;
   }
   GNUNET_STATISTICS_set (GED_stats,
-                        "# issuer", 
-                        GNUNET_CONTAINER_multihashmap_size (valid_issuers), 
+                        "# issuer",
+                        GNUNET_CONTAINER_multihashmap_size (valid_issuers),
                         GNUNET_NO);
-  
+
   experiments = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO);
   /* Load experiments from file */
   if (GNUNET_SYSERR ==
       GNUNET_CONFIGURATION_get_value_string (GED_cfg,
-                                            "EXPERIMENTATION", 
+                                            "EXPERIMENTATION",
                                             "EXPERIMENTS",
                                             &file))
     return GNUNET_OK;
-  
+
   if (GNUNET_YES != GNUNET_DISK_file_test (file))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,