gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r24727 - gnunet/src/mesh
Date: Mon, 5 Nov 2012 14:05:47 +0100

Author: bartpolot
Date: 2012-11-05 14:05:47 +0100 (Mon, 05 Nov 2012)
New Revision: 24727

Modified:
   gnunet/src/mesh/gnunet-service-mesh.c
Log:
- simplify bck, avoid sending duplicate acks

Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c       2012-11-05 13:00:41 UTC (rev 
24726)
+++ gnunet/src/mesh/gnunet-service-mesh.c       2012-11-05 13:05:47 UTC (rev 
24727)
@@ -4018,23 +4018,25 @@
   struct MeshTunnel *t = cls;
   struct MeshTunnelChildInfo *cinfo;
   struct GNUNET_PeerIdentity peer;
+  uint32_t ack;
 
   GNUNET_PEER_resolve (id, &peer);
   cinfo = tunnel_get_neighbor_fc (t, &peer);
+  ack = cinfo->bck_pid + t->bck_queue_max - t->bck_queue_n;
 
-  if (cinfo->bck_ack != cinfo->bck_pid &&
-      GNUNET_NO == GMC_is_pid_bigger (cinfo->bck_ack, cinfo->bck_pid))
+  if (cinfo->bck_ack == ack)
   {
+    // FIXME fc allow force on poll
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "    Not sending ACK, not needed\n");
     return;
   }
+  cinfo->bck_ack = ack;
 
-  cinfo->bck_ack = t->bck_queue_max - t->bck_queue_n + cinfo->bck_pid;
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "    Sending BCK ACK %u\n",
-              cinfo->bck_ack);
-  send_ack (t, &peer, cinfo->bck_ack);
+              "    Sending BCK ACK %u (last sent: %u)\n",
+              ack, cinfo->bck_ack);
+  send_ack (t, &peer, ack);
 }
 
 




reply via email to

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