/**
 * 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 ();
}
Beispiel #2
0
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;
  }
}