/**
* collectd - src/apache.c
- * Copyright (C) 2006,2007 Florian octo Forster
+ * Copyright (C) 2006-2008 Florian octo Forster
* Copyright (C) 2007 Florent EppO Monbillard
*
* This program is free software; you can redistribute it and/or modify it
"URL",
"User",
"Password",
- "CACert",
- NULL
+ "CACert"
};
-static int config_keys_num = 4;
+static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
static size_t apache_curl_callback (void *buf, size_t size, size_t nmemb, void *stream)
{
static char credentials[1024];
if (url == NULL)
- return (0);
+ {
+ WARNING ("apache plugin: init: No URL configured, returning "
+ "an error.");
+ return (-1);
+ }
if (curl != NULL)
{
if ((curl = curl_easy_init ()) == NULL)
{
- ERROR ("apache: `curl_easy_init' failed.");
+ ERROR ("apache plugin: init: `curl_easy_init' failed.");
return (-1);
}
if (user != NULL)
{
- if (snprintf (credentials, 1024, "%s:%s", user, pass == NULL ? "" : pass) >= 1024)
+ int status;
+
+ status = snprintf (credentials, sizeof (credentials), "%s:%s",
+ user, (pass == NULL) ? "" : pass);
+ if (status >= sizeof (credentials))
{
- ERROR ("apache: Credentials would have been truncated.");
+ ERROR ("apache plugin: init: Returning an error "
+ "because the credentials have been "
+ "truncated.");
return (-1);
}
+ credentials[sizeof (credentials) - 1] = '\0';
curl_easy_setopt (curl, CURLOPT_USERPWD, credentials);
}
} /* int init */
static void submit_counter (const char *type, const char *type_instance,
- unsigned long long value)
+ counter_t value)
{
value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
- DEBUG ("type = %s; type_instance = %s; value = %llu;",
- type, type_instance, value);
-
values[0].counter = value;
vl.values = values;
strcpy (vl.host, hostname_g);
strcpy (vl.plugin, "apache");
strcpy (vl.plugin_instance, "");
- strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
+
+ if (type_instance != NULL)
+ {
+ strncpy (vl.type_instance, type_instance,
+ sizeof (vl.type_instance));
+ vl.type_instance[sizeof (vl.type_instance) - 1] = '\0';
+ }
plugin_dispatch_values (type, &vl);
} /* void submit_counter */
static void submit_gauge (const char *type, const char *type_instance,
- double value)
+ gauge_t value)
{
value_t values[1];
value_list_t vl = VALUE_LIST_INIT;
- DEBUG ("type = %s; type_instance = %s; value = %lf;",
- type, type_instance, value);
-
values[0].gauge = value;
vl.values = values;
strcpy (vl.plugin_instance, "");
if (type_instance != NULL)
+ {
strncpy (vl.type_instance, type_instance,
sizeof (vl.type_instance));
+ vl.type_instance[sizeof (vl.type_instance) - 1] = '\0';
+ }
plugin_dispatch_values (type, &vl);
} /* void submit_counter */