gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r23914 - gnunet/src/mesh


From: gnunet
Subject: [GNUnet-SVN] r23914 - gnunet/src/mesh
Date: Thu, 20 Sep 2012 14:29:11 +0200

Author: bartpolot
Date: 2012-09-20 14:29:11 +0200 (Thu, 20 Sep 2012)
New Revision: 23914

Modified:
   gnunet/src/mesh/gnunet-service-mesh.c
Log:
- log timeout, try to fix ACK for min_speed

Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c       2012-09-20 12:28:22 UTC (rev 
23913)
+++ gnunet/src/mesh/gnunet-service-mesh.c       2012-09-20 12:29:11 UTC (rev 
23914)
@@ -3672,7 +3672,7 @@
 
   count = t->fwd_pid - t->skip;
   buffer_free = t->fwd_queue_max - t->fwd_queue_n;
-  ack = count + buffer_free; // Might overflow 32 bits, it's ok!
+  ack = count;
   child_ack = tunnel_get_children_fwd_ack (t);
   client_ack = tunnel_get_clients_fwd_ack (t);
   if (-1LL == child_ack)
@@ -3683,16 +3683,16 @@
   }
   if (-1LL == client_ack)
   {
-    client_ack = ack;
+    client_ack = ack + buffer_free; // Might overflow 32 bits, it's ok!
   }
   if (GNUNET_YES == t->speed_min)
   {
-    ack = GMC_min_pid ((uint32_t) child_ack, ack);
+    ack = GMC_min_pid ((uint32_t) child_ack, ack) + buffer_free; // Might 
overflow 32 bits, it's ok!;
     ack = GMC_min_pid ((uint32_t) client_ack, ack);
   }
   else
   {
-    ack = GMC_max_pid ((uint32_t) child_ack, ack);
+    ack = GMC_max_pid ((uint32_t) child_ack, ack) + buffer_free; // Might 
overflow 32 bits, it's ok!;
     ack = GMC_max_pid ((uint32_t) client_ack, ack);
   }
   if (GNUNET_YES == t->nobuffer && GMC_is_pid_bigger(ack, t->fwd_pid))
@@ -3818,7 +3818,7 @@
   }
 
   /* Check if we need no retransmit the ACK */
-  if (t->fwd_queue_max > t->fwd_queue_n * 2 &&
+  if (t->fwd_queue_max > t->fwd_queue_n * 4 &&
       GMC_is_pid_bigger(t->last_fwd_ack, t->fwd_pid))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Not sending ACK, buffer free\n");
@@ -4337,7 +4337,12 @@
 tunnel_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct MeshTunnel *t = cls;
+  struct GNUNET_PeerIdentity id;
 
+  GNUNET_PEER_resolve(t->id.oid, &id);
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Tunnel %s [%X] timed out. Destroying.\n",
+              GNUNET_i2s(&id), t->id.tid);
   if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
     return;
   t->timeout_task = GNUNET_SCHEDULER_NO_TASK;




reply via email to

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