- doc
[oweals/gnunet.git] / src / mesh / gnunet-service-mesh_connection.c
index 15a6164cb8eae557ea269ff750f4f578e28282ca..47f55550322477613f7493fea492499b4b99b254 100644 (file)
@@ -1776,13 +1776,15 @@ GMC_handle_broken (void* cls,
   if (GMC_is_terminal (c, fwd))
   {
     struct GNUNET_MessageHeader *out_msg;
-    struct MeshPeer *peer;
+    struct MeshPeer *neighbor;
+    struct MeshPeer *endpoint;
 
-    peer = get_hop (c, !fwd);
+    neighbor = get_hop (c, !fwd);
+    endpoint = GMP_get_short (c->path->peers[c->path->length - 1]);
     path_invalidate (c->path);
-    GMP_notify_broken_link (c->t, &msg->peer1, &msg->peer2);
+    GMP_notify_broken_link (endpoint, &msg->peer1, &msg->peer2);
     c->state = MESH_CONNECTION_DESTROYED;
-    while (NULL != (out_msg = GMP_connection_pop (peer, c)))
+    while (NULL != (out_msg = GMP_connection_pop (neighbor, c)))
     {
       GNUNET_assert (NULL ==
                      GMT_send_prebuilt_message (out_msg, c->t, NULL, GNUNET_YES,
@@ -2748,12 +2750,16 @@ GMC_is_sendable (struct MeshConnection *c, int fwd)
 {
   struct MeshFlowControl *fc;
 
+  LOG (GNUNET_ERROR_TYPE_DEBUG, " checking sendability of %s traffic on %s\n",
+       GM_f2s (fwd), GMC_2s (c));
   if (NULL == c)
   {
     GNUNET_break (0);
     return GNUNET_YES;
   }
   fc = fwd ? &c->fwd_fc : &c->bck_fc;
+  LOG (GNUNET_ERROR_TYPE_DEBUG, " last ack recv: %u, last pid sent: %u\n",
+       fc->last_ack_recv, fc->last_pid_sent);
   if (GM_is_pid_bigger (fc->last_ack_recv, fc->last_pid_sent))
     return GNUNET_YES;
   return GNUNET_NO;