fwd = is_fwd (c, id);
if (GMC_is_terminal (c, fwd))
{
- struct GNUNET_MessageHeader *msg;
- struct MeshPeer *peer;
+ struct GNUNET_MessageHeader *out_msg;
+ 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 (endpoint, &msg->peer1, &msg->peer2);
c->state = MESH_CONNECTION_DESTROYED;
- while (NULL != (msg = GMP_connection_pop (peer, c)))
+ while (NULL != (out_msg = GMP_connection_pop (neighbor, c)))
{
GNUNET_assert (NULL ==
- GMT_send_prebuilt_message (msg, c->t, NULL, GNUNET_YES,
+ GMT_send_prebuilt_message (out_msg, c->t, NULL, GNUNET_YES,
NULL, NULL));
}
{
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;