/**
* collectd - src/entropy.c
- * Copyright (C) 2005,2006 Florian octo Forster
+ * Copyright (C) 2007 Florian octo Forster
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
#include "common.h"
#include "plugin.h"
-#if KERNEL_LINUX
-# define ENTROPY_HAVE_READ 1
-#else
-# define ENTROPY_HAVE_READ 0
+#if !KERNEL_LINUX
+# error "No applicable input method."
#endif
#define ENTROPY_FILE "/proc/sys/kernel/random/entropy_avail"
-static data_source_t dsrc[1] =
-{
- {"entropy", DS_TYPE_GAUGE, 0.0, 4294967295.0}
-};
-
-static data_set_t ds =
-{
- "entropy", 1, dsrc
-};
-
-#if ENTROPY_HAVE_READ
static void entropy_submit (double entropy)
{
value_t values[1];
vl.values = values;
vl.values_len = 1;
- vl.time = time (NULL);
- strcpy (vl.host, hostname);
- strcpy (vl.plugin, "entropy");
- strcpy (vl.plugin_instance, "");
- strcpy (vl.type_instance, "");
+ sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+ sstrncpy (vl.plugin, "entropy", sizeof (vl.plugin));
+ sstrncpy (vl.type, "entropy", sizeof (vl.type));
- plugin_dispatch_values ("entropy", &vl);
+ plugin_dispatch_values (&vl);
}
static int entropy_read (void)
{
-#if KERNEL_LINUX
double entropy;
FILE *fh;
char buffer[64];
if (entropy > 0.0)
entropy_submit (entropy);
-#endif /* KERNEL_LINUX */
return (0);
}
-#endif /* ENTROPY_HAVE_READ */
void module_register (void)
{
- plugin_register_data_set (&ds);
-#if ENTROPY_HAVE_READ
plugin_register_read ("entropy", entropy_read);
-#endif
-}
+} /* void module_register */