/*
This file is part of GNUnet
- Copyright (C) 2008--2014 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2008--2014, 2016 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
/**
* @file nse/gnunet-nse.c
* @brief Program to display network size estimates from the NSE service
- * @author Sree Harsha Totakura <sreeharsha@totakura.in>
+ * @author Sree Harsha Totakura <sreeharsha@totakura.in>
*/
#include "platform.h"
#include "gnunet_nse_service.h"
-/**
- * Handle to our configuration
- */
-static struct GNUNET_CONFIGURATION_Handle *cfg;
-
/**
* The handle to the NSE service
*/
static struct GNUNET_NSE_Handle *nse;
-/**
- * The handle to test if NSE service is running or not
- */
-static struct GNUNET_CLIENT_TestHandle *test;
-
-/**
- * Shutdown task
- */
-static struct GNUNET_SCHEDULER_Task * shutdown_task;
-
/**
* The program status; 0 for success.
*/
* Task to shutdown and clean up all state
*
* @param cls NULL
- * @param tc the scheduler task context
*/
static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
{
- shutdown_task = NULL;
- if (NULL != test)
- GNUNET_CLIENT_service_test_cancel (test);
if (NULL != nse)
+ {
GNUNET_NSE_disconnect (nse);
- if (NULL != cfg)
- GNUNET_CONFIGURATION_destroy (cfg);
+ nse = NULL;
+ }
}
static void
handle_estimate (void *cls,
struct GNUNET_TIME_Absolute timestamp,
- double estimate, double std_dev)
+ double estimate,
+ double std_dev)
{
+ status = 0;
FPRINTF (stdout, "%llu %f %f %f\n",
(unsigned long long) timestamp.abs_value_us,
GNUNET_NSE_log_estimate_to_n (estimate),
}
-/**
- * Function called with the result on the service test for the NSE service
- *
- * @param cls NULL
- * @param result #GNUNET_YES if the service is running,
- * #GNUNET_NO if the service is not running
- * #GNUNET_SYSERR if the configuration is invalid
- */
-static void
-nse_test_result (void *cls, int result)
-{
- test = NULL;
- switch (result)
- {
- case GNUNET_YES:
- nse = GNUNET_NSE_connect (cfg, &handle_estimate, NULL);
- status = 0;
- break;
- case GNUNET_NO:
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("NSE service is not running\n"));
- GNUNET_SCHEDULER_shutdown ();
- return;
- default:
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- _("Error while checking if NSE service is running or not\n"));
- GNUNET_SCHEDULER_shutdown ();
- return;
- }
-}
-
-
/**
* Actual main function that runs the emulation.
*
* @param cfg configuration handle
*/
static void
-run (void *cls, char *const *args, const char *cfgfile,
- const struct GNUNET_CONFIGURATION_Handle *_cfg)
+run (void *cls,
+ char *const *args,
+ const char *cfgfile,
+ const struct GNUNET_CONFIGURATION_Handle *cfg)
{
- cfg = GNUNET_CONFIGURATION_dup (_cfg);
- test = GNUNET_CLIENT_service_test ("nse",
- cfg,
- GNUNET_TIME_UNIT_SECONDS,
- nse_test_result,
- NULL);
- shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
- &do_shutdown, NULL);
+ nse = GNUNET_NSE_connect (cfg,
+ &handle_estimate,
+ NULL);
+ GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
+ NULL);
}
* @return 0 on success
*/
int
-main (int argc, char *const *argv)
+main (int argc,
+ char *const *argv)
{
static struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
-
+
status = 1;
if (GNUNET_OK !=
- GNUNET_PROGRAM_run (argc, argv, "gnunet-nse",
+ GNUNET_PROGRAM_run (argc,
+ argv,
+ "gnunet-nse",
gettext_noop
("Show network size estimates from NSE service."),
- options, &run, NULL))
+ options,
+ &run, NULL))
return 2;
return status;
}