*/
static GNUNET_TRANSPORT_NotifyDisconnect disconnect_notify_cb;
+/**
+ * counter for connected neighbours
+ */
+static int neighbours_connected;
+
/**
* Lookup a neighbour entry in the neighbours hash map.
*
if (GNUNET_YES == n->is_connected)
{
n->is_connected = GNUNET_NO;
+
+ GNUNET_assert (neighbours_connected > 0);
+ neighbours_connected--;
+
+ GNUNET_STATISTICS_update (GST_stats,
+ gettext_noop
+ ("# peers connected"),
+ -1, GNUNET_NO);
disconnect_notify_cb (callback_cls, &n->id);
}
GNUNET_assert (GNUNET_YES ==
GNUNET_CONTAINER_multihashmap_iterate (neighbours, &disconnect_all_neighbours,
NULL);
GNUNET_CONTAINER_multihashmap_destroy (neighbours);
+ GNUNET_assert (neighbours_connected == 0);
neighbours = NULL;
callback_cls = NULL;
connect_notify_cb = NULL;
ats_count);
if (GNUNET_YES == was_connected)
return;
+
+ neighbours_connected++;
+ GNUNET_STATISTICS_update (GST_stats,
+ gettext_noop
+ ("# peers connected"),
+ 1, GNUNET_NO);
connect_notify_cb (callback_cls, target, n->ats, n->ats_count);
}