gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r10874 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r10874 - gnunet/src/transport
Date: Mon, 12 Apr 2010 13:20:04 +0200

Author: grothoff
Date: 2010-04-12 13:20:04 +0200 (Mon, 12 Apr 2010)
New Revision: 10874

Modified:
   gnunet/src/transport/gnunet-service-transport.c
Log:
fix refresh

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2010-04-12 10:07:22 UTC 
(rev 10873)
+++ gnunet/src/transport/gnunet-service-transport.c     2010-04-12 11:20:04 UTC 
(rev 10874)
@@ -92,11 +92,6 @@
 #define HELLO_VERIFICATION_TIMEOUT GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 30)
 
 /**
- * How long will we allow sending of a ping to be delayed?
- */
-#define TRANSPORT_DEFAULT_TIMEOUT GNUNET_TIME_relative_multiply 
(GNUNET_TIME_UNIT_SECONDS, 15)
-
-/**
  * Priority to use for PONG messages.
  */
 #define TRANSPORT_PONG_PRIORITY 4
@@ -1548,6 +1543,7 @@
 static void
 update_addresses (struct TransportPlugin *plugin, int fresh)
 {
+  static struct GNUNET_TIME_Absolute last_update;
   struct GNUNET_TIME_Relative min_remaining;
   struct GNUNET_TIME_Relative remaining;
   struct GNUNET_TIME_Absolute now;
@@ -1561,7 +1557,7 @@
   plugin->address_update_task = GNUNET_SCHEDULER_NO_TASK;
   now = GNUNET_TIME_absolute_get ();
   min_remaining = GNUNET_TIME_UNIT_FOREVER_REL;
-  expired = GNUNET_NO;
+  expired = (GNUNET_TIME_absolute_get_duration (last_update).value > 
(HELLO_ADDRESS_EXPIRATION.value / 4));
   prev = NULL;
   pos = plugin->addresses;
   while (pos != NULL)
@@ -1573,9 +1569,7 @@
           if (prev == NULL)
             plugin->addresses = pos->next;
           else
-            prev->next = pos->next;
-
-         
+            prev->next = pos->next;  
           GNUNET_free (pos);
         }
       else
@@ -1589,13 +1583,17 @@
     }
 
   if (expired || fresh)
-    refresh_hello ();
-  if (min_remaining.value < GNUNET_TIME_UNIT_FOREVER_REL.value)
-    plugin->address_update_task
-      = GNUNET_SCHEDULER_add_delayed (plugin->env.sched,
-                                      min_remaining,
-                                      &expire_address_task, plugin);
-
+    {
+      last_update = now;
+      refresh_hello ();
+    }
+  min_remaining = GNUNET_TIME_relative_min (min_remaining,
+                                           GNUNET_TIME_relative_divide 
(HELLO_ADDRESS_EXPIRATION,
+                                                                        2));
+  plugin->address_update_task
+    = GNUNET_SCHEDULER_add_delayed (plugin->env.sched,
+                                   min_remaining,
+                                   &expire_address_task, plugin);
 }
 
 





reply via email to

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