struct PeerRecord *pr;
GNUNET_assert (h->reconnect_task == GNUNET_SCHEDULER_NO_TASK);
+ while (NULL != (cm = h->control_pending_head))
+ {
+ GNUNET_CONTAINER_DLL_remove (h->control_pending_head,
+ h->control_pending_tail,
+ cm);
+ if (cm->th != NULL)
+ cm->th->cm = NULL;
+ if (cm->cont != NULL)
+ cm->cont (cm->cont_cls, GNUNET_NO);
+ GNUNET_free (cm);
+ }
if (h->client != NULL)
{
GNUNET_CLIENT_disconnect (h->client, GNUNET_NO);
h->reconnect_task = GNUNET_SCHEDULER_add_delayed (h->retry_backoff,
&reconnect_task,
h);
- while (NULL != (cm = h->control_pending_head))
- {
- GNUNET_CONTAINER_DLL_remove (h->control_pending_head,
- h->control_pending_tail,
- cm);
- if (cm->th != NULL)
- cm->th->cm = NULL;
- if (cm->cont != NULL)
- cm->cont (cm->cont_cls, GNUNET_NO);
- GNUNET_free (cm);
- }
GNUNET_assert (h->control_pending_head == NULL);
h->retry_backoff = GNUNET_TIME_relative_min (GNUNET_TIME_UNIT_SECONDS,
h->retry_backoff);
GNUNET_CLIENT_notify_transmit_ready_cancel (handle->cth);
handle->cth = NULL;
}
- if (handle->client != NULL)
- {
- GNUNET_CLIENT_disconnect (handle->client, GNUNET_NO);
- handle->client = NULL;
- }
while (NULL != (cm = handle->control_pending_head))
{
GNUNET_CONTAINER_DLL_remove (handle->control_pending_head,
cm->cont (cm->cont_cls, GNUNET_SYSERR);
GNUNET_free (cm);
}
+ if (handle->client != NULL)
+ {
+ GNUNET_CLIENT_disconnect (handle->client, GNUNET_NO);
+ handle->client = NULL;
+ }
if (handle->reconnect_task != GNUNET_SCHEDULER_NO_TASK)
{
GNUNET_SCHEDULER_cancel (handle->reconnect_task);