gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r18705 - gnunet/src/nse


From: gnunet
Subject: [GNUnet-SVN] r18705 - gnunet/src/nse
Date: Mon, 19 Dec 2011 22:36:02 +0100

Author: grothoff
Date: 2011-12-19 22:36:02 +0100 (Mon, 19 Dec 2011)
New Revision: 18705

Modified:
   gnunet/src/nse/gnunet-service-nse.c
Log:
-hopefully fixing #1997, also renaming function to avoid double-use of 
'transmit_task' identifier; minor clean up of assertion code

Modified: gnunet/src/nse/gnunet-service-nse.c
===================================================================
--- gnunet/src/nse/gnunet-service-nse.c 2011-12-19 21:26:34 UTC (rev 18704)
+++ gnunet/src/nse/gnunet-service-nse.c 2011-12-19 21:36:02 UTC (rev 18705)
@@ -529,7 +529,7 @@
  * @param tc scheduler context
  */
 static void
-transmit_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
+transmit_task_cb (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc);
 
 
 /**
@@ -560,7 +560,7 @@
     idx = (idx + HISTORY_SIZE - 1) % HISTORY_SIZE;
     peer_entry->previous_round = GNUNET_YES;
     peer_entry->transmit_task =
-        GNUNET_SCHEDULER_add_delayed (get_transmit_delay (0), &transmit_task,
+        GNUNET_SCHEDULER_add_delayed (get_transmit_delay (0), 
&transmit_task_cb,
                                       peer_entry);
   }
   if ((ntohl (size_estimate_messages[idx].hop_count) == 0) &&
@@ -605,7 +605,7 @@
  * @param tc scheduler context
  */
 static void
-transmit_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+transmit_task_cb (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct NSEPeerEntry *peer_entry = cls;
 
@@ -701,7 +701,7 @@
   delay =
       get_transmit_delay ((peer_entry->previous_round == GNUNET_NO) ? -1 : 0);
   peer_entry->transmit_task =
-      GNUNET_SCHEDULER_add_delayed (delay, &transmit_task, peer_entry);
+      GNUNET_SCHEDULER_add_delayed (delay, &transmit_task_cb, peer_entry);
   return GNUNET_OK;
 }
 
@@ -942,8 +942,7 @@
   {
     /* still stuck in previous round, no point to update, check that
      * we are active here though... */
-    GNUNET_break ((peer_entry->transmit_task != GNUNET_SCHEDULER_NO_TASK) ||
-                  (peer_entry->th != NULL));
+    GNUNET_break ((peer_entry->transmit_task != GNUNET_SCHEDULER_NO_TASK));
     return GNUNET_OK;
   }
   if (peer_entry->transmit_task != GNUNET_SCHEDULER_NO_TASK)
@@ -953,7 +952,7 @@
   }
   delay = get_transmit_delay (0);
   peer_entry->transmit_task =
-      GNUNET_SCHEDULER_add_delayed (delay, &transmit_task, peer_entry);
+      GNUNET_SCHEDULER_add_delayed (delay, &transmit_task_cb, peer_entry);
   return GNUNET_OK;
 }
 
@@ -1085,6 +1084,10 @@
       peer_entry->previous_round = GNUNET_YES;
       return GNUNET_OK;
     }
+    /* even if we didn't talk to this peer in the previous round, we should
+       no longer send it stale information as it told us about the current
+       round! */
+    peer_entry->previous_round = GNUNET_YES;
     /* got up-to-date information for current round, cancel transmission 
altogether */
     if (GNUNET_SCHEDULER_NO_TASK != peer_entry->transmit_task)
     {
@@ -1108,7 +1111,7 @@
       if (peer_entry->transmit_task != GNUNET_SCHEDULER_NO_TASK)
         GNUNET_SCHEDULER_cancel (peer_entry->transmit_task);
       peer_entry->transmit_task =
-          GNUNET_SCHEDULER_add_now (&transmit_task, peer_entry);
+          GNUNET_SCHEDULER_add_now (&transmit_task_cb, peer_entry);
     }
     /* Not closer than our most recent message, no need to do work here */
     GNUNET_STATISTICS_update (stats,
@@ -1167,7 +1170,7 @@
                                                     peer_entry,
                                                     
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
   peer_entry->transmit_task =
-      GNUNET_SCHEDULER_add_delayed (get_transmit_delay (-1), &transmit_task,
+      GNUNET_SCHEDULER_add_delayed (get_transmit_delay (-1), &transmit_task_cb,
                                     peer_entry);
   GNUNET_STATISTICS_update (stats, "# peers", 1, GNUNET_NO);
 }




reply via email to

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