- doc
[oweals/gnunet.git] / src / mesh / gnunet-service-mesh.c
index 887507cd1b9cd9acd545d606de1b01ace48d70a5..7ebe7d199d188696f36268b002a872fa3a1b1ae1 100644 (file)
@@ -4585,10 +4585,12 @@ queue_destroy (struct MeshPeerQueue *queue, int clear_cls)
     {
       case GNUNET_MESSAGE_TYPE_MESH_TUNNEL_DESTROY:
         GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "   cancelling TUNNEL_DESTROY\n");
+        /* fall through */
       case GNUNET_MESSAGE_TYPE_MESH_UNICAST:
       case GNUNET_MESSAGE_TYPE_MESH_MULTICAST:
       case GNUNET_MESSAGE_TYPE_MESH_TO_ORIGIN:
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "   type payload\n");
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                    "   type prebuilt (payload, tunnel destroy)\n");
         dd = queue->cls;
         data_descriptor_decrement_rc (dd->mesh_data);
         break;
@@ -7774,6 +7776,11 @@ core_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
       queue_destroy(q, GNUNET_YES);
       q = n;
   }
+  if (NULL != pi->core_transmit)
+  {
+    GNUNET_CORE_notify_transmit_ready_cancel(pi->core_transmit);
+    pi->core_transmit = NULL;
+  }
   peer_info_remove_path (pi, pi->id, myid);
   if (myid == pi->id)
   {