gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r26287 - gnunet/src/core


From: gnunet
Subject: [GNUnet-SVN] r26287 - gnunet/src/core
Date: Mon, 4 Mar 2013 06:47:46 +0100

Author: grothoff
Date: 2013-03-04 06:47:46 +0100 (Mon, 04 Mar 2013)
New Revision: 26287

Modified:
   gnunet/src/core/gnunet-service-core_kx.c
Log:
-trying to fix rekeying (#2812)

Modified: gnunet/src/core/gnunet-service-core_kx.c
===================================================================
--- gnunet/src/core/gnunet-service-core_kx.c    2013-03-04 05:30:26 UTC (rev 
26286)
+++ gnunet/src/core/gnunet-service-core_kx.c    2013-03-04 05:47:46 UTC (rev 
26287)
@@ -49,7 +49,7 @@
 /**
  * How often do we rekey?
  */
-#define REKEY_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 
12)
+#define REKEY_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_HOURS, 
1)
 
 /**
  * What time difference do we tolerate?
@@ -854,18 +854,21 @@
   switch (kx->status)
   {
   case KX_STATE_DOWN:
+    GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
     kx->status = KX_STATE_KEY_RECEIVED;
     if (KX_STATE_KEY_SENT == sender_status)
       send_key (kx);
     send_ping (kx);
     break;
   case KX_STATE_KEY_SENT:
+    GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
     kx->status = KX_STATE_KEY_RECEIVED;
     if (KX_STATE_KEY_SENT == sender_status)
       send_key (kx);
     send_ping (kx);
     break;
   case KX_STATE_KEY_RECEIVED:
+    GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == kx->keep_alive_task);
     if (KX_STATE_KEY_SENT == sender_status)
       send_key (kx);
     send_ping (kx);
@@ -1312,10 +1315,18 @@
   }
   if (0 == GNUNET_TIME_absolute_get_remaining 
(kx->foreign_key_expires).rel_value)
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+               _("Session to peer `%s' went down due to key expiration (should 
not happen)\n"),
+               GNUNET_i2s (&kx->peer));
     GNUNET_STATISTICS_update (GSC_stats,
                               gettext_noop ("# sessions terminated by key 
expiration"),
                               1, GNUNET_NO);
     GSC_SESSIONS_end (&kx->peer);
+    if (GNUNET_SCHEDULER_NO_TASK != kx->keep_alive_task)
+    {
+      GNUNET_SCHEDULER_cancel (kx->keep_alive_task);
+      kx->keep_alive_task = GNUNET_SCHEDULER_NO_TASK;
+    }
     kx->status = KX_STATE_KEY_SENT;
     send_key (kx);
     return;




reply via email to

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