gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r29006 - gnunet/src/mesh
Date: Thu, 5 Sep 2013 06:28:44 +0200

Author: bartpolot
Date: 2013-09-05 06:28:44 +0200 (Thu, 05 Sep 2013)
New Revision: 29006

Modified:
   gnunet/src/mesh/gnunet-service-mesh-enc.c
Log:
- fix ack'ing
- resend TUNNEL_DESTROY
- explicitly log about faulty routes instead of letting core_api complain


Modified: gnunet/src/mesh/gnunet-service-mesh-enc.c
===================================================================
--- gnunet/src/mesh/gnunet-service-mesh-enc.c   2013-09-05 03:50:00 UTC (rev 
29005)
+++ gnunet/src/mesh/gnunet-service-mesh-enc.c   2013-09-05 04:28:44 UTC (rev 
29006)
@@ -3856,35 +3856,35 @@
               fwd ? "FWD" : "BCK", c, ch);
   if (NULL == c || connection_is_terminal (c, fwd))
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  getting from Channel\n");
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  getting from all connections\n");
     buffer = tunnel_get_buffer (NULL == c ? ch->t : c->t, fwd);
   }
   else
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  getting from Connection\n");
-    GNUNET_assert (NULL != c);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  getting from one connection\n");
     buffer = connection_get_buffer (c, fwd);
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  buffer available: %u\n", buffer);
 
-  if (NULL == c)
+  if ( (NULL != ch && channel_is_terminal (ch, !fwd)) ||
+       (NULL != c && connection_is_origin (c, fwd)) )
   {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  sending on all connections\n");
-    GNUNET_assert (NULL != ch);
-    channel_send_connections_ack (ch, buffer, fwd);
-  }
-  else if (connection_is_origin (c, fwd))
-  {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  sending on channel...\n");
     if (0 < buffer)
     {
+      GNUNET_assert (NULL != ch);
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  really sending!\n");
-      GNUNET_assert (NULL != ch);
       send_local_ack (ch, fwd);
     }
   }
-  else
+  else if (NULL == c)
   {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  sending on all connections\n");
+    GNUNET_assert (NULL != ch);
+    channel_send_connections_ack (ch, buffer, fwd);
+  }
+  else 
+  {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "  sending on connection\n");
     connection_send_ack (c, buffer, fwd);
   }
@@ -3922,8 +3922,7 @@
       /* TODO return? */
     }
   }
-  if (GNUNET_NO == rel->client_ready)
-    send_local_ack (ch, fwd);
+  send_ack (NULL, ch, fwd);
 }
 
 
@@ -4853,6 +4852,7 @@
   /* Fill buf */
   switch (queue->type)
   {
+    case GNUNET_MESSAGE_TYPE_MESH_TUNNEL_DESTROY:
     case GNUNET_MESSAGE_TYPE_MESH_CONNECTION_DESTROY:
     case GNUNET_MESSAGE_TYPE_MESH_CONNECTION_BROKEN:
     case GNUNET_MESSAGE_TYPE_MESH_FWD:
@@ -5007,6 +5007,13 @@
     GNUNET_break (0);
     return;
   }
+  
+  if (NULL == peer->connections)
+  {
+    /* We are not connected to this peer, ignore request. */
+    GNUNET_break_op (0);
+    return;
+  }
 
   priority = 0;
 




reply via email to

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