gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r27907 - gnunet/src/mesh
Date: Thu, 11 Jul 2013 13:39:18 +0200

Author: bartpolot
Date: 2013-07-11 13:39:18 +0200 (Thu, 11 Jul 2013)
New Revision: 27907

Modified:
   gnunet/src/mesh/gnunet-service-mesh.c
Log:
- avoid POLL messing with reliability counter

Modified: gnunet/src/mesh/gnunet-service-mesh.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh.c       2013-07-11 11:35:57 UTC (rev 
27906)
+++ gnunet/src/mesh/gnunet-service-mesh.c       2013-07-11 11:39:18 UTC (rev 
27907)
@@ -4013,8 +4013,10 @@
 {
   struct GNUNET_MESH_Poll *msg;
   struct MeshTunnel *t;
+  struct MeshFlowControl *fc;
   GNUNET_PEER_Id id;
   uint32_t pid;
+  uint32_t old;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got an POLL packet from %s!\n",
               GNUNET_i2s (peer));
@@ -4039,18 +4041,25 @@
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  from FWD\n");
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  was %u\n", 
t->next_fc.last_pid_recv);
-    t->next_fc.last_pid_recv = pid;
+    fc = &t->next_fc;
+    old = fc->last_pid_recv;
+    fc->last_pid_recv = pid;
     tunnel_send_bck_ack (t, GNUNET_MESSAGE_TYPE_MESH_POLL);
   }
   else if (t->prev_hop == id)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  from BCK\n");
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  was %u\n", 
t->prev_fc.last_pid_recv);
-    t->prev_fc.last_pid_recv = pid;
+    fc = &t->prev_fc;
+    old = fc->last_pid_recv;
+    fc->last_pid_recv = pid;
     tunnel_send_fwd_ack (t, GNUNET_MESSAGE_TYPE_MESH_POLL);
   }
   else
     GNUNET_break (0);
+  
+  if (GNUNET_YES == t->reliable)
+    fc->last_pid_recv = old;
 
   return GNUNET_OK;
 }




reply via email to

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