/** * 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 != oh1) { GNUNET_SET_operation_cancel (oh1); oh1 = NULL; } if (NULL != oh2) { GNUNET_SET_operation_cancel (oh2); oh2 = NULL; } if (NULL != set1) { GNUNET_SET_destroy (set1); set1 = NULL; } if (NULL != set2) { GNUNET_SET_destroy (set2); set2 = NULL; } if (NULL != listen_handle) { GNUNET_SET_listen_cancel (listen_handle); listen_handle = NULL; } }
static void listen_cb (void *cls, const struct GNUNET_PeerIdentity *other_peer, const struct GNUNET_MessageHeader *context_msg, struct GNUNET_SET_Request *request) { struct GNUNET_SET_OperationHandle *oh; GNUNET_assert (NULL != context_msg); GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_TEST); GNUNET_SET_listen_cancel (listen_handle); oh = GNUNET_SET_accept (request, GNUNET_SET_RESULT_FULL, &result_cb_set2, NULL); GNUNET_SET_commit (oh, set2); }
static void listen_cb (void *cls, const struct GNUNET_PeerIdentity *other_peer, const struct GNUNET_MessageHeader *context_msg, struct GNUNET_SET_Request *request) { GNUNET_assert (NULL != context_msg); GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "listen cb called\n"); GNUNET_SET_listen_cancel (listen_handle); listen_handle = NULL; oh2 = GNUNET_SET_accept (request, GNUNET_SET_RESULT_SYMMETRIC, &result_cb_set2, NULL); GNUNET_SET_commit (oh2, set2); }