[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r31056 - gnunet/src/mesh
From: |
gnunet |
Subject: |
[GNUnet-SVN] r31056 - gnunet/src/mesh |
Date: |
Thu, 5 Dec 2013 03:46:57 +0100 |
Author: bartpolot
Date: 2013-12-05 03:46:57 +0100 (Thu, 05 Dec 2013)
New Revision: 31056
Modified:
gnunet/src/mesh/gnunet-service-mesh_channel.c
Log:
- treat data as ACK on the destination end of a channel
Modified: gnunet/src/mesh/gnunet-service-mesh_channel.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh_channel.c 2013-12-05 02:13:36 UTC
(rev 31055)
+++ gnunet/src/mesh/gnunet-service-mesh_channel.c 2013-12-05 02:46:57 UTC
(rev 31056)
@@ -1827,6 +1827,23 @@
return;
}
+ if (MESH_CHANNEL_READY != ch->state)
+ {
+ if (GNUNET_NO == fwd)
+ {
+ /* If we are the root, this means the other peer has sent traffic before
+ * receiving our ACK. Even if the SYNACK goes missing, no traffic should
+ * be sent before the ACK.
+ */
+ GNUNET_break_op (0);
+ return;
+ }
+ /* If we are the dest, this means that the SYNACK got to the root but
+ * the ACK went missing. Treat this as an ACK.
+ */
+ channel_confirm (ch, GNUNET_NO);
+ }
+
GNUNET_STATISTICS_update (stats, "# data received", 1, GNUNET_NO);
mid = ntohl (msg->mid);
@@ -2034,6 +2051,7 @@
LOG (GNUNET_ERROR_TYPE_DEBUG, "!!! Not Reliable\n");
send_client_create (ch);
+ ch->state = MESH_CHANNEL_SENT;
}
send_ack (ch, GNUNET_YES);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r31056 - gnunet/src/mesh,
gnunet <=