gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r10228 - gnunet/src/core
Date: Fri, 5 Feb 2010 16:22:13 +0100

Author: nevans
Date: 2010-02-05 16:22:13 +0100 (Fri, 05 Feb 2010)
New Revision: 10228

Modified:
   gnunet/src/core/gnunet-service-core.c
Log:
changes to continuations required change of state machine maintenance (or so I 
claim)

Modified: gnunet/src/core/gnunet-service-core.c
===================================================================
--- gnunet/src/core/gnunet-service-core.c       2010-02-05 15:21:03 UTC (rev 
10227)
+++ gnunet/src/core/gnunet-service-core.c       2010-02-05 15:22:13 UTC (rev 
10228)
@@ -1508,7 +1508,22 @@
  */
 static void send_key (struct Neighbour *n);
 
+/**
+ * Task that will retry "send_key" if our previous attempt failed
+ * to yield a PONG.
+ */
+static void
+set_key_retry_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  struct Neighbour *n = cls;
 
+  n->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
+  n->set_key_retry_frequency =
+    GNUNET_TIME_relative_multiply (n->set_key_retry_frequency, 2);
+  send_key (n);
+}
+
+
 /**
  * Check if we have plaintext messages for the specified neighbour
  * pending, and if so, consider batching and encrypting them (and
@@ -1545,6 +1560,13 @@
 #endif
       return;
     case PEER_STATE_KEY_SENT:
+      if (n->retry_set_key_task == GNUNET_SCHEDULER_NO_TASK)
+        {
+          n->retry_set_key_task
+                = GNUNET_SCHEDULER_add_delayed (sched,
+                                                n->set_key_retry_frequency,
+                                                &set_key_retry_task, n);
+        }
       GNUNET_assert (n->retry_set_key_task !=
                      GNUNET_SCHEDULER_NO_TASK);
 #if DEBUG_CORE
@@ -1554,6 +1576,13 @@
 #endif
       return;
     case PEER_STATE_KEY_RECEIVED:
+      if (n->retry_set_key_task == GNUNET_SCHEDULER_NO_TASK)
+        {
+          n->retry_set_key_task
+                = GNUNET_SCHEDULER_add_delayed (sched,
+                                                n->set_key_retry_frequency,
+                                                &set_key_retry_task, n);
+        }
       GNUNET_assert (n->retry_set_key_task !=
                      GNUNET_SCHEDULER_NO_TASK);
 #if DEBUG_CORE
@@ -1918,22 +1947,6 @@
 
 
 /**
- * Task that will retry "send_key" if our previous attempt failed
- * to yield a PONG.
- */
-static void
-set_key_retry_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
-  struct Neighbour *n = cls;
-
-  n->retry_set_key_task = GNUNET_SCHEDULER_NO_TASK;
-  n->set_key_retry_frequency =
-    GNUNET_TIME_relative_multiply (n->set_key_retry_frequency, 2);
-  send_key (n);
-}
-
-
-/**
  * PEERINFO is giving us a HELLO for a peer.  Add the public key to
  * the neighbour's struct and retry send_key.  Or, if we did not get a
  * HELLO, just do nothing.
@@ -1962,9 +1975,9 @@
         send_key (n);
       else
         n->retry_set_key_task
-                = GNUNET_SCHEDULER_add_delayed (sched,
-                                                n->set_key_retry_frequency,
-                                                &set_key_retry_task, n);
+          = GNUNET_SCHEDULER_add_delayed (sched,
+                                          n->set_key_retry_frequency,
+                                          &set_key_retry_task, n);
       return;
     }
 





reply via email to

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