- change
authorMatthias Wachs <wachs@net.in.tum.de>
Tue, 11 Dec 2012 14:11:32 +0000 (14:11 +0000)
committerMatthias Wachs <wachs@net.in.tum.de>
Tue, 11 Dec 2012 14:11:32 +0000 (14:11 +0000)
src/ats/gnunet-service-ats_addresses_simplistic.c

index cd35008abe273089623abafb026c4498480092ee..21450780d129a152e49634ae7f63089e1bc89eed 100644 (file)
@@ -366,11 +366,14 @@ GAS_simplistic_address_delete (void *solver, struct GNUNET_CONTAINER_MultiHashMa
       address->active = GNUNET_NO;
       if (net->active_addresses < 1)
         GNUNET_break (0);
-      net->active_addresses --;
+      else
+        net->active_addresses --;
+      if (s->active_addresses < 1)
+        GNUNET_break (0);
+      else
+        s->active_addresses --;
       update_quota_per_network (s, net, NULL);
   }
-
-
 }
 
 
@@ -540,11 +543,19 @@ GAS_simplistic_get_preferred_address (void *solver,
       prev->assigned_bw_in = GNUNET_BANDWIDTH_value_init (0); /* no bw assigned */
       prev->assigned_bw_out = GNUNET_BANDWIDTH_value_init (0); /* no bw assigned */
       s->bw_changed (prev); /* notify about bw change, REQUIERED? */
-      net_cur->active_addresses --;
+      if (net_prev->active_addresses < 1)
+        GNUNET_break (0);
+      else
+        net_prev->active_addresses --;
+      if (s->active_addresses < 1)
+        GNUNET_break (0);
+      else
+        s->active_addresses --;
       update_quota_per_network (s, net_prev, NULL);
   }
 
   cur->active = GNUNET_YES;
+  s->active_addresses ++;
   net_cur->active_addresses ++;
   update_quota_per_network (s, net_cur, cur);