* Anthony Gialluca <tonyabg at charter.net>
**/
-/*
- * FIXME: Don't know why but without this here atof() was not returning
- * correct values for me. This is behavior that I don't understand and
- * should be examined in closer detail.
- */
-#include <stdlib.h>
-
#include "collectd.h"
#include "common.h" /* rrd_update_file */
#include "plugin.h" /* plugin_register, plugin_submit */
* Returns -1 on error
* Returns socket file descriptor otherwise
*/
-static int net_open (char *host, char *service, int port)
+static int net_open (char *host, int port)
{
int sd;
int status;
assert ((port > 0x00000000) && (port <= 0x0000FFFF));
/* Convert the port to a string */
- snprintf (port_str, 8, "%i", port);
- port_str[7] = '\0';
+ ssnprintf (port_str, sizeof (port_str), "%i", port);
/* Resolve name */
memset ((void *) &ai_hints, '\0', sizeof (ai_hints));
if (status != 0)
{
char errbuf[1024];
- DEBUG ("getaddrinfo failed: %s",
+ INFO ("getaddrinfo failed: %s",
(status == EAI_SYSTEM)
? sstrerror (errno, errbuf, sizeof (errbuf))
: gai_strerror (status));
if (status != 0) /* `connect(2)' failed */
{
char errbuf[1024];
- DEBUG ("connect failed: %s",
+ INFO ("connect failed: %s",
sstrerror (errno, errbuf, sizeof (errbuf)));
close (sd);
return (-1);
char *key;
double value;
- static complain_t compl;
-
#if APCMAIN
# define PRINT_VALUE(name, val) printf(" Found property: name = %s; value = %f;\n", name, val)
#else
if (global_sockfd < 0)
{
- if ((global_sockfd = net_open (host, NULL, port)) < 0)
+ global_sockfd = net_open (host, port);
+ if (global_sockfd < 0)
{
- plugin_complain (LOG_ERR, &compl, "apcups plugin: "
- "Connecting to the apcupsd failed.");
+ ERROR ("apcups plugin: Connecting to the "
+ "apcupsd failed.");
return (-1);
}
- else
- {
- plugin_relief (LOG_NOTICE, &compl, "apcups plugin: "
- "Connection re-established to the apcupsd.");
- }
}
if (net_send (&global_sockfd, "status", 6) < 0)
while ((n = net_recv (&global_sockfd, recvline, sizeof (recvline) - 1)) > 0)
{
- assert (n < sizeof (recvline));
+ assert ((unsigned int)n < sizeof (recvline));
recvline[n] = '\0';
#if APCMAIN
printf ("net_recv = `%s';\n", recvline);
vl.values = values;
vl.values_len = 1;
vl.time = time (NULL);
- strcpy (vl.host, hostname_g);
- strcpy (vl.plugin, "apcups");
- strcpy (vl.plugin_instance, "");
- strncpy (vl.type_instance, type_inst, sizeof (vl.type_instance));
+ sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+ sstrncpy (vl.plugin, "apcups", sizeof (vl.plugin));
+ sstrncpy (vl.plugin_instance, "", sizeof (vl.plugin_instance));
+ sstrncpy (vl.type, type, sizeof (vl.type));
+ sstrncpy (vl.type_instance, type_inst, sizeof (vl.type_instance));
- plugin_dispatch_values (type, &vl);
+ plugin_dispatch_values (&vl);
}
static void apc_submit (struct apc_detail_s *apcups_detail)
{
- apc_submit_generic ("apcups_voltage", "input", apcups_detail->linev);
- apc_submit_generic ("apcups_voltage", "output", apcups_detail->outputv);
- apc_submit_generic ("apcups_voltage", "battery", apcups_detail->battv);
- apc_submit_generic ("apcups_charge", "", apcups_detail->bcharge);
- apc_submit_generic ("apcups_charge_pct", "", apcups_detail->loadpct);
- apc_submit_generic ("apcups_timeleft", "", apcups_detail->timeleft);
- apc_submit_generic ("apcups_temp", "", apcups_detail->itemp);
- apc_submit_generic ("apcups_frequency", "input", apcups_detail->linefreq);
+ apc_submit_generic ("voltage", "input", apcups_detail->linev);
+ apc_submit_generic ("voltage", "output", apcups_detail->outputv);
+ apc_submit_generic ("voltage", "battery", apcups_detail->battv);
+ apc_submit_generic ("charge", "", apcups_detail->bcharge);
+ apc_submit_generic ("percent", "load", apcups_detail->loadpct);
+ apc_submit_generic ("timeleft", "", apcups_detail->timeleft);
+ apc_submit_generic ("temperature", "", apcups_detail->itemp);
+ apc_submit_generic ("frequency", "input", apcups_detail->linefreq);
}
static int apcups_read (void)