[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r23914 - gnunet/src/mesh,
gnunet <=