[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r24566 - gnunet/src/statistics
From: |
gnunet |
Subject: |
[GNUnet-SVN] r24566 - gnunet/src/statistics |
Date: |
Fri, 26 Oct 2012 17:10:32 +0200 |
Author: wachs
Date: 2012-10-26 17:10:32 +0200 (Fri, 26 Oct 2012)
New Revision: 24566
Modified:
gnunet/src/statistics/gnunet-statistics.c
Log:
gnunet-statistics can retrieve stats from remote hosts without config
Modified: gnunet/src/statistics/gnunet-statistics.c
===================================================================
--- gnunet/src/statistics/gnunet-statistics.c 2012-10-26 15:08:22 UTC (rev
24565)
+++ gnunet/src/statistics/gnunet-statistics.c 2012-10-26 15:10:32 UTC (rev
24566)
@@ -63,8 +63,17 @@
*/
static int quiet;
+/**
+ * Remote host
+ */
+static char *remote_host;
/**
+ * Remote host's port
+ */
+static unsigned long long remote_port;
+
+/**
* Callback function to process statistic values.
*
* @param cls closure
@@ -115,9 +124,14 @@
static void
cleanup (void *cls, int success)
{
+
if (success != GNUNET_OK)
{
- FPRINTF (stderr, "%s", _("Failed to obtain statistics.\n"));
+ if (NULL == remote_host)
+ FPRINTF (stderr, "%s", _("Failed to obtain statistics.\n"));
+ else
+ FPRINTF (stderr, _("Failed to obtain statistics from host `%s:%llu'\n"),
+ remote_host, remote_port);
ret = 1;
}
GNUNET_SCHEDULER_shutdown ();
@@ -129,9 +143,9 @@
{
struct GNUNET_STATISTICS_Handle *h = cls;
- GNUNET_STATISTICS_watch_cancel (h, subsystem, name, &printer, h);
if (NULL != h)
{
+ GNUNET_STATISTICS_watch_cancel (h, subsystem, name, &printer, h);
GNUNET_STATISTICS_destroy (h, GNUNET_NO);
h = NULL;
}
@@ -153,6 +167,29 @@
struct GNUNET_STATISTICS_Handle *h;
unsigned long long val;
+ if (NULL != remote_host)
+ {
+ /* connect to a remote host */
+ if (0 == remote_port)
+ {
+ if (GNUNET_SYSERR == GNUNET_CONFIGURATION_get_value_number (cfg,
"statistics", "PORT", &remote_port))
+ {
+ FPRINTF (stderr, _("A port is required to connect to host `%s'\n"),
remote_host);
+ return;
+ }
+ }
+ else if (65535 <= remote_port)
+ {
+ FPRINTF (stderr, _("A port has to be between 1 and 65535 to connect
to host `%s'\n"), remote_host);
+ return;
+ }
+
+ /* Manipulate configuration */
+ GNUNET_CONFIGURATION_set_value_string ((struct
GNUNET_CONFIGURATION_Handle *) cfg, "statistics", "UNIXPATH", "");
+ GNUNET_CONFIGURATION_set_value_string ((struct
GNUNET_CONFIGURATION_Handle *) cfg, "statistics", "HOSTNAME", remote_host);
+ GNUNET_CONFIGURATION_set_value_number ((struct
GNUNET_CONFIGURATION_Handle *) cfg, "statistics", "PORT", remote_port);
+ }
+
if (args[0] != NULL)
{
if ((1 != SSCANF (args[0], "%llu", &val)) || (subsystem == NULL) ||
@@ -174,6 +211,7 @@
return;
}
h = GNUNET_STATISTICS_create ("gnunet-statistics", cfg);
+ GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
h);
if (NULL == h)
{
ret = 1;
@@ -202,7 +240,6 @@
GNUNET_SCHEDULER_add_now (&shutdown_task, h);
return;
}
- GNUNET_SCHEDULER_add_delayed(GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
h);
}
}
@@ -232,9 +269,17 @@
{'w', "watch", NULL,
gettext_noop ("watch value continuously"), 0,
&GNUNET_GETOPT_set_one, &watch},
+ {'r', "remote", NULL,
+ gettext_noop ("connect to remote host"), 1,
+ &GNUNET_GETOPT_set_string, &remote_host},
+ {'o', "port", NULL,
+ gettext_noop ("port for remote host"), 1,
+ &GNUNET_GETOPT_set_uint, &remote_port},
GNUNET_GETOPT_OPTION_END
};
+ remote_port = 0;
+ remote_host = NULL;
if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
return 2;
@@ -243,6 +288,8 @@
gettext_noop
("Print statistics about GNUnet operations."),
options, &run, NULL)) ? ret : 1;
+
+ GNUNET_free_non_null(remote_host);
}
/* end of gnunet-statistics.c */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r24566 - gnunet/src/statistics,
gnunet <=