/*
This file is part of GNUnet
- Copyright (C) 2008--2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2008--2013 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
static void
-do_abort (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_abort (void *cls)
{
LOG (GNUNET_ERROR_TYPE_WARNING, "Aborting\n");
abort_task = NULL;
* Function called to iterate over a directory.
*
* @param cls closure
- * @param di argument to pass to "GNUNET_DISK_directory_iterator_next" to
- * get called on the next entry (or finish cleanly);
- * NULL on error (will be the last call in that case)
* @param filename complete filename (absolute path)
- * @param dirname directory name (absolute path)
+ * @return #GNUNET_OK to continue to iterate,
+ * #GNUNET_NO to stop iteration with no error,
+ * #GNUNET_SYSERR to abort iteration with error!
*/
-static void
-iterator_cb (void *cls, struct GNUNET_DISK_DirectoryIterator *di,
- const char *filename, const char *dirname)
+static int
+iterator_cb (void *cls,
+ const char *filename)
{
const char *fn;
size_t len;
uint64_t fs;
- int cancel;
- cancel = GNUNET_NO;
- if (NULL == filename)
- goto iteration_cont;
len = strlen (filename);
if (len < 5) /* log file: `pid'.dat */
- goto iteration_cont;
+ return GNUNET_OK;
+
fn = filename + len;
if (0 != strcasecmp (".dat", fn - 4))
- goto iteration_cont;
- if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fs,
- GNUNET_NO, GNUNET_YES))
- goto iteration_cont;
+ return GNUNET_OK;
+ if (GNUNET_OK !=
+ GNUNET_DISK_file_size (filename, &fs,
+ GNUNET_NO, GNUNET_YES))
+ return GNUNET_SYSERR;
if ((BSIZE * 2) != fs) /* The file size should be equal to what we
have written */
- goto iteration_cont;
-
- cancel = GNUNET_YES;
- result = GNUNET_OK;
-
- iteration_cont:
- if ( (NULL != di) &&
- (GNUNET_YES == GNUNET_DISK_directory_iterator_next (di, cancel)) )
- return;
- shutdown_now ();
+ return GNUNET_SYSERR;
+ return GNUNET_OK;
}
+
/**
- * Functions of this type are called to notify a successful transmission of the
- * message to the logger service
+ * Functions of this type are called to notify a successful
+ * transmission of the message to the logger service
*
* @param cls the closure given to GNUNET_TESTBED_LOGGER_send()
* @param size the amount of data sent
FAIL_TEST (&write_task == cls, return);
FAIL_TEST ((BSIZE * 2) == size, return);
FAIL_TEST (GNUNET_OK == GNUNET_TESTING_peer_stop (peer), return);
- FAIL_TEST (GNUNET_YES == GNUNET_DISK_directory_iterator_start
- (GNUNET_SCHEDULER_PRIORITY_DEFAULT, search_dir,
- &iterator_cb, NULL), return);
+ FAIL_TEST (GNUNET_SYSERR !=
+ GNUNET_DISK_directory_scan (search_dir,
+ &iterator_cb,
+ NULL),
+ return);
+ shutdown_now ();
}
static void
-do_write (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_write (void *cls)
{
static int i;
char buf[BSIZE];
write_task = NULL;
if (0 == i)
- write_task = GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS(1), &do_write, NULL);
+ write_task = GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS(1),
+ &do_write,
+ NULL);
(void) memset (buf, i, BSIZE);
GNUNET_TESTBED_LOGGER_write (h, buf, BSIZE);
if (0 == i++)
return;
- GNUNET_TESTBED_LOGGER_flush (h, GNUNET_TIME_UNIT_FOREVER_REL,
+ GNUNET_TESTBED_LOGGER_flush (h,
+ GNUNET_TIME_UNIT_FOREVER_REL,
&flush_comp, &write_task);
}
/**
* Signature of the 'main' function for a (single-peer) testcase that
- * is run using 'GNUNET_TESTING_peer_run'.
+ * is run using #GNUNET_TESTING_peer_run().
*
* @param cls closure
* @param cfg configuration of the peer that was started
* @param peer identity of the peer that was created
*/
static void
-test_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
+test_main (void *cls,
+ const struct GNUNET_CONFIGURATION_Handle *cfg,
struct GNUNET_TESTING_Peer *p)
{
FAIL_TEST (NULL != (h = GNUNET_TESTBED_LOGGER_connect (cfg)), return);