gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r16263 - gnunet/src/nse
Date: Fri, 29 Jul 2011 11:21:22 +0200

Author: grothoff
Date: 2011-07-29 11:21:22 +0200 (Fri, 29 Jul 2011)
New Revision: 16263

Modified:
   gnunet/src/nse/gnunet-service-nse.c
Log:
fix

Modified: gnunet/src/nse/gnunet-service-nse.c
===================================================================
--- gnunet/src/nse/gnunet-service-nse.c 2011-07-29 08:26:57 UTC (rev 16262)
+++ gnunet/src/nse/gnunet-service-nse.c 2011-07-29 09:21:22 UTC (rev 16263)
@@ -573,6 +573,7 @@
   struct NSEPeerEntry *peer_entry = cls;
  
   peer_entry->transmit_task = GNUNET_SCHEDULER_NO_TASK;
+  GNUNET_assert (NULL == peer_entry->th);
   peer_entry->th
     = GNUNET_CORE_notify_transmit_ready (coreAPI,
                                         GNUNET_NO,
@@ -1078,10 +1079,13 @@
           (peer_entry->previous_round == GNUNET_YES) )
        peer_entry->previous_round = GNUNET_NO;
       /* push back our result now, that peer is spreading bad information... */
-      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);        
  
+      if (NULL == peer_entry->th)
+       {
+         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);    
  
+       }
       /* Not closer than our most recent message, no need to do work here */
       GNUNET_STATISTICS_update (stats,
                                 "# flood messages ignored (had closer 
already)",
@@ -1172,7 +1176,10 @@
   if (pos->transmit_task != GNUNET_SCHEDULER_NO_TASK)
     GNUNET_SCHEDULER_cancel (pos->transmit_task);
   if (pos->th != NULL)
-    GNUNET_CORE_notify_transmit_ready_cancel (pos->th);
+    {
+      GNUNET_CORE_notify_transmit_ready_cancel (pos->th);
+      pos->th = NULL;
+    }
   GNUNET_free(pos);
 }
 




reply via email to

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