/** * Function run on shutdown. * * @param cls closure */ static void do_shutdown (void *cls) { if (NULL != timeout_task) { GNUNET_SCHEDULER_cancel (timeout_task); timeout_task = NULL; } if (NULL != op) { GNUNET_IDENTITY_cancel (op); op = NULL; } if (NULL != call1) { GNUNET_CONVERSATION_call_stop (call1); call1 = NULL; } if (NULL != call2) { GNUNET_CONVERSATION_call_stop (call2); call2 = NULL; } if (NULL != phone) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnecting from PHONE service.\n"); GNUNET_CONVERSATION_phone_destroy (phone); phone = NULL; } if (NULL != id) { GNUNET_IDENTITY_disconnect (id); id = NULL; } if (NULL != qe) { GNUNET_NAMESTORE_cancel (qe); qe = NULL; } if (NULL != ns) { GNUNET_NAMESTORE_disconnect (ns); ns = NULL; } }
static void play (void *cls, size_t data_size, const void *data) { static unsigned int phone_i; static unsigned int call_i; if (0 == strncmp ("call", data, data_size)) call_i++; else if (0 == strncmp ("phone", data, data_size)) phone_i++; else { LOG_DEBUG ("Received unexpected data %.*s\n", (int) data_size, (const char *) data); } if ( (20 < call_i) && (20 < phone_i) && (CALLER2 == cls) ) { /* time to hang up ... */ GNUNET_CONVERSATION_call_stop (call2); call2 = NULL; /* reset counters */ call_i = 0; phone_i = 0; call2_finished = GNUNET_YES; } if ( (20 < call_i) && (20 < phone_i) && (CALLER1 == cls) ) { /* time to hang up ... */ GNUNET_CONVERSATION_call_stop (call1); call1 = NULL; call_i = 0; phone_i = 0; call1_finished = GNUNET_YES; } }
/** * Signature of the main function of a task. * * @param cls closure * @param tc context information (why was this task triggered now) */ static void end_test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { GNUNET_SCHEDULER_shutdown (); if (NULL != op) { GNUNET_IDENTITY_cancel (op); op = NULL; } if (NULL != call) { GNUNET_CONVERSATION_call_stop (call); call = NULL; } if (NULL != phone) { GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Disconnecting from PHONE service.\n"); GNUNET_CONVERSATION_phone_destroy (phone); phone = NULL; } if (NULL != id) { GNUNET_IDENTITY_disconnect (id); id = NULL; } if (NULL != qe) { GNUNET_NAMESTORE_cancel (qe); qe = NULL; } if (NULL != ns) { GNUNET_NAMESTORE_disconnect (ns); ns = NULL; } }