}
if (0 == cstate->msg_off)
{
- // FIXME: tell MQ that cancel is no longer possible!
+ GNUNET_MQ_impl_send_in_flight (cstate->mq);
}
cstate->msg_off += pos;
if (cstate->msg_off < len)
return;
}
}
+ if (0 == client->msg_pos)
+ {
+ GNUNET_MQ_impl_send_in_flight (client->mq);
+ }
client->msg_pos += ret;
if (left > ret)
{
{
struct GNUNET_SERVICE_Client *client = impl_state;
- GNUNET_assert (0); // not implemented
- // FIXME: stop transmission! (must be possible, otherwise
- // we must have told MQ that the message was sent!)
+ GNUNET_assert (0 == client->msg_pos);
+ client->msg = NULL;
+ GNUNET_SCHEDULER_cancel (client->send_task);
+ client->send_task = NULL;
}