gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r30631 - gnunet/src/mesh
Date: Fri, 8 Nov 2013 15:51:05 +0100

Author: bartpolot
Date: 2013-11-08 15:51:05 +0100 (Fri, 08 Nov 2013)
New Revision: 30631

Modified:
   gnunet/src/mesh/gnunet-service-mesh_channel.c
Log:
- don't allow stalled reliable channels


Modified: gnunet/src/mesh/gnunet-service-mesh_channel.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_channel.c       2013-11-08 14:50:46 UTC 
(rev 30630)
+++ gnunet/src/mesh/gnunet-service-mesh_channel.c       2013-11-08 14:51:05 UTC 
(rev 30631)
@@ -1255,9 +1255,32 @@
 void
 GMCH_allow_client (struct MeshChannel *ch, int fwd)
 {
+  struct MeshChannelReliability *rel;
+
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "GMCH allow\n");
+
   if (MESH_CHANNEL_READY != ch->state)
+  {
+    LOG (GNUNET_ERROR_TYPE_DEBUG, " not ready yet!\n");
     return;
+  }
 
+  if (GNUNET_YES == ch->reliable)
+  {
+    rel = fwd ? ch->root_rel : ch->dest_rel;
+    if (NULL == rel)
+    {
+      GNUNET_break (0);
+      return;
+    }
+    if (64 <= rel->n_sent)
+    {
+      LOG (GNUNET_ERROR_TYPE_DEBUG,
+           " too many pending messages! Wait for ACK.\n");
+      return;
+    }
+  }
+
   send_client_ack (ch, fwd);
 }
 




reply via email to

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