diff --git a/src/ping.c b/src/ping.c
index eb35360b5464b9f55f378b5bd18b21b840829a12..bdb8de9652b3a1f8551ba5850cb987b029a7f160 100644 (file)
--- a/src/ping.c
+++ b/src/ping.c
* Florian octo Forster <octo at verplant.org>
**/
-#include "ping.h"
+#include "collectd.h"
+#include "common.h"
+#include "plugin.h"
+#include "configfile.h"
-#if COLLECT_PING
#define MODULE_NAME "ping"
-#include "plugin.h"
-#include "common.h"
-
#include <netinet/in.h>
#include "libping/ping.h"
+#define MAX_PINGHOSTS 32
+
extern char *pinghosts[MAX_PINGHOSTS];
extern int num_pinghosts;
static int pingerrors[MAX_PINGHOSTS];
};
static int ds_num = 1;
-extern time_t curtime;
+static char *config_keys[] =
+{
+ "Host",
+ NULL
+};
+static int config_keys_num = 1;
-void ping_init (void)
+static void ping_init (void)
{
int i;
return;
}
-void ping_write (char *host, char *inst, char *val)
+static int ping_config (char *key, char *value)
+{
+ if (strcasecmp (key, "host"))
+ {
+ return (-1);
+ }
+ else if (num_pinghosts >= MAX_PINGHOSTS)
+ {
+ return (1);
+ }
+ else if ((pinghosts[num_pinghosts] = strdup (value)) == NULL)
+ {
+ return (2);
+ }
+ else
+ {
+ pingerrors[num_pinghosts] = 0;
+ num_pinghosts++;
+ return (0);
+ }
+}
+
+static void ping_write (char *host, char *inst, char *val)
{
char file[512];
int status;
}
#define BUFSIZE 256
-void ping_submit (int ping_time, char *host)
+static void ping_submit (int ping_time, char *host)
{
char buf[BUFSIZE];
}
#undef BUFSIZE
-void ping_read (void)
+static void ping_read (void)
{
int ping;
int i;
void module_register (void)
{
plugin_register (MODULE_NAME, ping_init, ping_read, ping_write);
+ cf_register (MODULE_NAME, ping_config, config_keys, config_keys_num);
}
#undef MODULE_NAME
-#endif /* COLLECT_PING */