static void *phone_rdc_cls;
-static struct GNUNET_SCHEDULER_Task * phone_task;
+static struct GNUNET_SCHEDULER_Task *phone_task;
+
+static struct GNUNET_SCHEDULER_Task *timeout_task;
/**
* Variable for recognizing caller1
phone_i++;
else
{
- LOG_DEBUG ("Received unexpected data %.*s\n",
+ LOG_DEBUG ("Received %u bytes of unexpected data `%.*s'\n",
+ (unsigned int) data_size,
(int) data_size,
(const char *) data);
}
/**
- * Signature of the main function of a task.
+ * Function run on timeout.
*
* @param cls closure
*/
static void
end_test (void *cls)
{
+ timeout_task = NULL;
+ fprintf (stderr,
+ "Timeout!\n");
GNUNET_SCHEDULER_shutdown ();
+}
+
+
+/**
+ * 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);
break;
case GNUNET_CONVERSATION_EC_CALL_ERROR:
GNUNET_break (0);
+ if (0 == strcmp (cid, "call1"))
+ call1 = NULL;
+ else
+ call2 = NULL;
+ GNUNET_SCHEDULER_shutdown ();
break;
}
}
struct GNUNET_TESTING_Peer *peer)
{
cfg = c;
- GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_test,
- NULL);
+ timeout_task = GNUNET_SCHEDULER_add_delayed (TIMEOUT,
+ &end_test,
+ NULL);
+ GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
+ NULL);
id = GNUNET_IDENTITY_connect (cfg,
&identity_cb,
NULL);