- fix for 601 assertion
authorMatthias Wachs <wachs@net.in.tum.de>
Tue, 8 May 2012 09:45:08 +0000 (09:45 +0000)
committerMatthias Wachs <wachs@net.in.tum.de>
Tue, 8 May 2012 09:45:08 +0000 (09:45 +0000)
src/ats/gnunet-service-ats_addresses.c
src/ats/gnunet-service-ats_addresses.h
src/ats/gnunet-service-ats_scheduling.c

index ca7251fecc483e96fe34f1a2fa4d61cada22181a..aff7cede1056f855aa4dea075632a03b1ae8d7cb 100644 (file)
@@ -576,7 +576,7 @@ find_address_it (void *cls, const GNUNET_HashCode * key, void *value)
 }
 
 
-void
+int
 GAS_addresses_in_use (const struct GNUNET_PeerIdentity *peer,
                       const char *plugin_name, const void *plugin_addr,
                       size_t plugin_addr_len, uint32_t session_id, int in_use)
@@ -591,7 +591,7 @@ GAS_addresses_in_use (const struct GNUNET_PeerIdentity *peer,
   struct ATS_Address *old;
 
   if (GNUNET_NO == running)
-    return;
+    return GNUNET_SYSERR;
 
   aa = create_address (peer, plugin_name, plugin_addr, plugin_addr_len, session_id);
   old = find_exact_address (peer, aa);
@@ -599,26 +599,25 @@ GAS_addresses_in_use (const struct GNUNET_PeerIdentity *peer,
 
   if (NULL == old)
   {
-    GNUNET_break_op (0);
-    return;
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
   }
   if (old->used == in_use)
   {
-    GNUNET_break_op (0);
+    GNUNET_break (0);
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "Address in use called multiple times for peer `%s': %s -> %s \n",
                 GNUNET_i2s (peer),
                 (GNUNET_NO == old->used) ? "NO" : "YES",
                 (GNUNET_NO == in_use) ? "NO" : "YES");
-    return;
+    return GNUNET_SYSERR;
   }
-
   old->used = in_use;
-
 #if HAVE_LIBGLPK
   if (ats_mode == MLP)
      GAS_mlp_address_update (mlp, addresses, old);
 #endif
+  return GNUNET_OK;
 }
 
 
index 33ff5869dc18dcbfe88e4562afa3398408c6cbe0..0ef977b5d285bdeec563e1f4297c39f0d63041a6 100644 (file)
@@ -105,7 +105,7 @@ GAS_addresses_done (void);
 /**
  * This address is now used or not used anymore
  */
-void
+int
 GAS_addresses_in_use (const struct GNUNET_PeerIdentity *peer,
                       const char *plugin_name, const void *plugin_addr,
                       size_t plugin_addr_len, uint32_t session_id, int in_use);
index ba14637b0d38e077bdb564ffca2d169ebd79389c..d8ab0c927190e8169cb255f942f48daf04482e45 100644 (file)
@@ -274,6 +274,7 @@ GAS_handle_address_in_use (void *cls, struct GNUNET_SERVER_Client *client,
   const struct AddressUseMessage *m;
   const char *address;
   const char *plugin_name;
+  int res;
   uint16_t address_length;
   uint16_t plugin_name_length;
 
@@ -309,10 +310,14 @@ GAS_handle_address_in_use (void *cls, struct GNUNET_SERVER_Client *client,
   }
 
   in_use = ntohs (m->in_use);
-  GAS_addresses_in_use (&m->peer, plugin_name, address, address_length,
-                        ntohl (m->session_id), in_use);
-
-  GNUNET_SERVER_receive_done (client, GNUNET_OK);
+  res = GAS_addresses_in_use (&m->peer,
+                             plugin_name,
+                             address,
+                             address_length,
+                             ntohl (m->session_id),
+                             in_use);
+
+  GNUNET_SERVER_receive_done (client, res);
 }
 
 /**