/** * Task run during shutdown. * * @param cls unused * @param tc unused */ static void cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct ClientPeerContext *cp; cp = cp_head; while (NULL != cp) { GNUNET_CONTAINER_DLL_remove (cp_head, cp_tail, cp); destroy_clientpeer (cp); cp = cp_head; } if (NULL != cadet) { GNUNET_CADET_disconnect (cadet); cadet = NULL; } if (NULL != peerstore) { GNUNET_PEERSTORE_disconnect (peerstore, GNUNET_YES); peerstore = NULL; } GNUNET_SENSOR_destroy_sensors (sensors); if (NULL != sensor_dir) { GNUNET_free (sensor_dir); sensor_dir = NULL; } GNUNET_SCHEDULER_shutdown (); }
static int watch_cb (void *cls, const struct GNUNET_PEERSTORE_Record *record, const char *emsg) { GNUNET_assert (NULL == emsg); GNUNET_assert (0 == strcmp (val, (char *) record->value)); ok = 0; GNUNET_PEERSTORE_disconnect (h, GNUNET_NO); GNUNET_SCHEDULER_shutdown (); return GNUNET_YES; }
static void test3_cont2 (void *cls, const struct GNUNET_PEERSTORE_Record *record, const char *emsg) { if (NULL != emsg) return; if (NULL != record) { GNUNET_assert ((strlen (val3) + 1) == record->value_size); GNUNET_assert (0 == strcmp ((char *) val3, (char *) record->value)); count++; return; } GNUNET_assert (count == 1); ok = 0; GNUNET_PEERSTORE_disconnect (h, GNUNET_YES); GNUNET_SCHEDULER_shutdown (); }
static void iter3_cb (void *cls, const struct GNUNET_PEERSTORE_Record *record, const char *emsg) { if (NULL != emsg) { GNUNET_PEERSTORE_iterate_cancel (ic); return; } if (NULL != record) { count++; return; } GNUNET_assert (count == 3); ok = 0; GNUNET_PEERSTORE_disconnect (h, GNUNET_NO); GNUNET_SCHEDULER_shutdown (); }
/** * Stop the sensor monitoring module */ void SENSOR_monitoring_stop () { if (NULL != statistics) { GNUNET_STATISTICS_destroy (statistics, GNUNET_YES); statistics = NULL; } if (NULL != peerstore) { GNUNET_PEERSTORE_disconnect (peerstore, GNUNET_YES); peerstore = NULL; } if (NULL != sensor_dir) { GNUNET_free (sensor_dir); sensor_dir = NULL; } }