gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r15423 - gnunet/src/transport
Date: Sun, 5 Jun 2011 14:31:10 +0200

Author: grothoff
Date: 2011-06-05 14:31:10 +0200 (Sun, 05 Jun 2011)
New Revision: 15423

Modified:
   gnunet/src/transport/transport_api_new.c
Log:
fix

Modified: gnunet/src/transport/transport_api_new.c
===================================================================
--- gnunet/src/transport/transport_api_new.c    2011-06-05 12:04:01 UTC (rev 
15422)
+++ gnunet/src/transport/transport_api_new.c    2011-06-05 12:31:10 UTC (rev 
15423)
@@ -625,6 +625,7 @@
   struct GNUNET_TRANSPORT_TransmitHandle *th;
   struct Neighbour *n;
   char *cbuf;
+  struct GNUNET_TIME_Relative delay;
   struct OutboundMessage obm;
   size_t ret;
   size_t nret;
@@ -676,7 +677,15 @@
        }
       th = n->th;
       if (th->notify_size + sizeof (struct OutboundMessage) > size)
-       break; /* does not fit */
+       {
+         delay = GNUNET_BANDWIDTH_tracker_get_delay (&n->out_tracker, size);
+         if (delay.rel_value > GNUNET_TIME_absolute_get_remaining 
(n->th->timeout).rel_value)
+           delay.rel_value = 0; /* notify immediately (with failure) */
+         n->hn = GNUNET_CONTAINER_heap_insert (h->ready_heap,
+                                               n, 
+                                               delay.rel_value);
+         break; /* does not fit */
+       }
       n->th = NULL;
       n->is_ready = GNUNET_NO;
       GNUNET_assert (size >= sizeof (struct OutboundMessage));




reply via email to

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