fixes for mantis #1988
[oweals/gnunet.git] / src / ats / ats_api_scheduling.c
index 8ee3fcee37bdb49da4621fd4718ef09cea2395ce..239aa39f159c96a8c3128c5fcfa5e4fb8fafa0b4 100644 (file)
@@ -29,6 +29,8 @@
 
 #define DEBUG_ATS GNUNET_EXTRA_LOGGING
 
+#define INTERFACE_PROCESSING_INTERVALL GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
+
 /**
  * Message in linked list we should send to the ATS service.  The
  * actual binary message follows this struct.
@@ -743,8 +745,9 @@ get_addresses (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   sh->interface_task = GNUNET_SCHEDULER_NO_TASK;
   delete_networks (sh);
   GNUNET_OS_network_interfaces_list(interface_proc, sh);
-
-  sh->interface_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES, get_addresses, sh);
+  sh->interface_task = GNUNET_SCHEDULER_add_delayed (INTERFACE_PROCESSING_INTERVALL,
+                                                     get_addresses,
+                                                     sh);
 }
 
 /**
@@ -757,6 +760,7 @@ get_addresses (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 struct GNUNET_ATS_Information
 GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle * sh, const struct sockaddr * addr, socklen_t addrlen)
 {
+  GNUNET_assert (sh != NULL);
   struct GNUNET_ATS_Information ats;
   struct ATS_Network * cur = sh->net_head;
   int type = GNUNET_ATS_NET_UNSPECIFIED;
@@ -840,7 +844,7 @@ GNUNET_ATS_address_get_type (struct GNUNET_ATS_SchedulingHandle * sh, const stru
     type = GNUNET_ATS_NET_WAN;
 
 #if VERBOSE
-  char * range;
+  const char * range;
   switch (type) {
     case GNUNET_ATS_NET_WAN:
         range = "WAN";
@@ -886,7 +890,9 @@ GNUNET_ATS_scheduling_init (const struct GNUNET_CONFIGURATION_Handle *cfg,
   sh->suggest_cb_cls = suggest_cb_cls;
   GNUNET_array_grow (sh->session_array, sh->session_array_size, 4);
   GNUNET_OS_network_interfaces_list(interface_proc, sh);
-  sh->interface_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_MINUTES, get_addresses, sh);
+  sh->interface_task = GNUNET_SCHEDULER_add_delayed (INTERFACE_PROCESSING_INTERVALL,
+      get_addresses,
+      sh);
   reconnect (sh);
   return sh;
 }
@@ -924,9 +930,9 @@ GNUNET_ATS_scheduling_done (struct GNUNET_ATS_SchedulingHandle *sh)
     GNUNET_SCHEDULER_cancel(sh->interface_task);
     sh->interface_task = GNUNET_SCHEDULER_NO_TASK;
   }
-
   GNUNET_array_grow (sh->session_array, sh->session_array_size, 0);
   GNUNET_free (sh);
+  sh = NULL;
 }
 
 
@@ -1012,6 +1018,11 @@ GNUNET_ATS_address_update (struct GNUNET_ATS_SchedulingHandle *sh,
   size_t namelen;
   size_t msize;
 
+  if ((address == NULL) && (session == NULL))
+  {
+    GNUNET_break (0);
+  }
+
   namelen =
       (address->transport_name ==
        NULL) ? 0 : strlen (address->transport_name) + 1;