-improve UDP logging
[oweals/gnunet.git] / src / ats / perf_ats_solver.c
index e078834712c1f1a679a42bba3c4e4ba190086a37..9f02b5307f33140cbdfa802a8c1134a22fc294cc 100644 (file)
@@ -1,6 +1,6 @@
 /*
  This file is part of GNUnet.
- (C) 2010,2011 Christian Grothoff (and other contributing authors)
Copyright (C) 2010,2011 Christian Grothoff (and other contributing authors)
 
  GNUnet is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published
@@ -415,18 +415,10 @@ bandwidth_changed_cb (void *cls,
 }
 
 
-const double *
+static const double *
 get_preferences_cb (void *cls, const struct GNUNET_PeerIdentity *id)
 {
-  return GAS_normalization_get_preferences_by_peer (NULL, id);
-}
-
-
-const double *
-get_property_cb (void *cls, const struct ATS_Address *address)
-{
-  return GAS_normalization_get_properties (NULL,
-                                          address);
+  return GAS_preference_get_by_peer (NULL, id);
 }
 
 
@@ -874,6 +866,15 @@ evaluate (int iteration)
 }
 
 
+static unsigned int
+get_connectivity_cb (void *cls,
+                     const struct GNUNET_PeerIdentity *peer)
+{
+  return GNUNET_CONTAINER_multipeermap_contains (ph.addresses,
+                                                 peer);
+}
+
+
 /**
  * Evaluate average results for all iterations
  */
@@ -1068,7 +1069,7 @@ do_delete_address (void *cls,
                  GNUNET_CONTAINER_multipeermap_remove (ph.addresses,
                                                        pid,
                                                        cur));
-  ph.sf->s_del (ph.sf->cls, cur, GNUNET_NO);
+  ph.sf->s_del (ph.sf->cls, cur);
   GNUNET_free_non_null (cur->atsi);
   GNUNET_free (cur);
   return GNUNET_OK;
@@ -1188,6 +1189,11 @@ perf_run_iteration (void)
                                                 &do_delete_address,
                                                 NULL);
   }
+  if (GNUNET_NO == ph.bulk_running)
+  {
+    ph.sf->s_bulk_stop (ph.sf->cls);
+    ph.bulk_running = GNUNET_NO;
+  }
 
   GNUNET_log(GNUNET_ERROR_TYPE_INFO,
       "Iteration done\n");
@@ -1235,17 +1241,14 @@ run (void *cls, char * const *args, const char *cfgfile,
 
   if (0 == strcmp(solver, "proportional"))
   {
-    ph.ats_mode = MODE_PROPORTIONAL;
     ph.ats_string = "proportional";
   }
   else if (0 == strcmp(solver, "mlp"))
   {
-    ph.ats_mode = MODE_MLP;
     ph.ats_string = "mlp";
   }
   else if ((0 == strcmp(solver, "ril")))
   {
-    ph.ats_mode = MODE_RIL;
     ph.ats_string = "ril";
   }
   else
@@ -1303,8 +1306,8 @@ run (void *cls, char * const *args, const char *cfgfile,
   ph.addresses = GNUNET_CONTAINER_multipeermap_create (128, GNUNET_NO);
   ph.env.addresses = ph.addresses;
   ph.env.bandwidth_changed_cb = bandwidth_changed_cb;
+  ph.env.get_connectivity = &get_connectivity_cb;
   ph.env.get_preferences = &get_preferences_cb;
-  ph.env.get_property = &get_property_cb;
   ph.env.network_count = GNUNET_ATS_NetworkTypeCount;
   ph.env.info_cb = &solver_info_cb;