finishing gnunet-nat-server
[oweals/gnunet.git] / src / util / load.c
index 3f03e32e7392719c6c5fe453b567428b1768e058..9bbea6c140401dd0a24411640fdded63a5e1ecd0 100644 (file)
@@ -86,12 +86,18 @@ internal_update (struct GNUNET_LOAD_Value *load)
   struct GNUNET_TIME_Relative delta;
   unsigned int n;
 
-  if (load->autodecline.value == GNUNET_TIME_UNIT_FOREVER_REL.value)
+  if (load->autodecline.rel_value == GNUNET_TIME_UNIT_FOREVER_REL.rel_value)
     return;
   delta = GNUNET_TIME_absolute_get_duration (load->last_update);
-  if (delta.value < load->autodecline.value)
+  if (delta.rel_value < load->autodecline.rel_value)
     return;
-  n = delta.value / load->autodecline.value;
+  if (load->autodecline.rel_value == 0)
+    {
+      load->runavg_delay = 0.0;
+      load->load = 0;
+      return;
+    }
+  n = delta.rel_value / load->autodecline.rel_value;
   if (n > 16)
     {
       load->runavg_delay = 0.0;
@@ -121,8 +127,6 @@ GNUNET_LOAD_value_init (struct GNUNET_TIME_Relative autodecline)
 
   ret = GNUNET_malloc (sizeof (struct GNUNET_LOAD_Value));
   ret->autodecline = autodecline;
-  if (ret->autodecline.value == 0)
-    ret->autodecline.value = 1;
   ret->last_update = GNUNET_TIME_absolute_get ();
   return ret;
 }
@@ -140,8 +144,6 @@ GNUNET_LOAD_value_set_decline (struct GNUNET_LOAD_Value *load,
 {
   internal_update (load);
   load->autodecline = autodecline;  
-  if (load->autodecline.value == 0)
-    load->autodecline.value = 1;
 }