gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r33083 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r33083 - gnunet/src/ats
Date: Tue, 15 Apr 2014 17:31:15 +0200

Author: wachs
Date: 2014-04-15 17:31:15 +0200 (Tue, 15 Apr 2014)
New Revision: 33083

Modified:
   gnunet/src/ats/gnunet-ats-solver-eval.c
Log:
stop pg generation on address deletion


Modified: gnunet/src/ats/gnunet-ats-solver-eval.c
===================================================================
--- gnunet/src/ats/gnunet-ats-solver-eval.c     2014-04-15 15:18:57 UTC (rev 
33082)
+++ gnunet/src/ats/gnunet-ats-solver-eval.c     2014-04-15 15:31:15 UTC (rev 
33083)
@@ -721,13 +721,15 @@
 }
 
 static struct PreferenceGenerator *
-find_pref_gen (unsigned int peer, unsigned int address,
-    enum GNUNET_ATS_PreferenceKind kind)
+find_pref_gen (unsigned int peer, enum GNUNET_ATS_PreferenceKind kind)
 {
   struct PreferenceGenerator *cur;
   for (cur = pref_gen_head; NULL != cur; cur = cur->next)
-    if ((cur->peer == peer) && (cur->kind == kind))
-      return cur;
+    if (cur->peer == peer)
+    {
+      if ((cur->kind == kind) || (GNUNET_ATS_PREFERENCE_END == kind))
+        return cur;
+    }
   return NULL;
 }
 
@@ -1844,6 +1846,7 @@
   struct TestPeer *p;
   struct TestAddress *a;
   struct AddressLookupCtx ctx;
+  struct PropertyGenerator *pg;
 
   if (NULL == (p = find_peer_by_id (op->peer_id)))
   {
@@ -1874,6 +1877,11 @@
     return;
   }
 
+  while (NULL != (pg = find_prop_gen (p->id, a->aid, 0)))
+  {
+    GNUNET_ATS_solver_generate_property_stop (pg);
+  }
+
   GNUNET_CONTAINER_DLL_remove(p->addr_head, p->addr_tail, a);
   GNUNET_free (a);
 
@@ -1940,7 +1948,7 @@
 enforce_start_preference (struct GNUNET_ATS_TEST_Operation *op)
 {
   struct PreferenceGenerator *pg;
-  if (NULL != (pg = find_pref_gen (op->peer_id, op->address_id, 
op->pref_type)))
+  if (NULL != (pg = find_pref_gen (op->peer_id, op->pref_type)))
   {
     GNUNET_ATS_solver_generate_preferences_stop (pg);
     GNUNET_free (pg);
@@ -1968,7 +1976,7 @@
 static void
 enforce_stop_preference (struct GNUNET_ATS_TEST_Operation *op)
 {
-  struct PreferenceGenerator *pg = find_pref_gen(op->peer_id, op->address_id,
+  struct PreferenceGenerator *pg = find_pref_gen(op->peer_id,
       op->pref_type);
   if (NULL != pg)
       GNUNET_ATS_solver_generate_preferences_stop (pg);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]