X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fmultimeter.c;h=9c9c2c152093760db11fd2560d2f17e3c538806d;hb=254ce1279f90858ab3d90b885defb95af3d6d7c1;hp=8cb18c81227ae84e714f2f5a37eff8533250966b;hpb=d561a8387f633491bdcd7fe6964f0b63ae694af5;p=collectd.git diff --git a/src/multimeter.c b/src/multimeter.c index 8cb18c81..9c9c2c15 100644 --- a/src/multimeter.c +++ b/src/multimeter.c @@ -30,23 +30,10 @@ # include # include # include -# define MULTIMETER_HAVE_READ 1 #else -# define MULTIMETER_HAVE_READ 0 -# error "multimeter cannot read!" +# error "No applicable input method." #endif -static data_source_t data_source[1] = -{ - {"value", DS_TYPE_GAUGE, NAN, NAN} -}; - -static data_set_t data_set = -{ - "multimeter", 1, data_source -}; - -#if MULTIMETER_HAVE_READ static int fd = -1; static int multimeter_timeval_sub (struct timeval *tv1, struct timeval *tv2, @@ -68,6 +55,7 @@ static int multimeter_timeval_sub (struct timeval *tv1, struct timeval *tv2, } return (0); } + #define LINE_LENGTH 14 static int multimeter_read_value(double *value) { @@ -81,8 +69,10 @@ static int multimeter_read_value(double *value) if (gettimeofday (&time_end, NULL) < 0) { - syslog (LOG_ERR, "multimeter plugin: gettimeofday failed: %s", - strerror (errno)); + char errbuf[1024]; + ERROR ("multimeter plugin: gettimeofday failed: %s", + sstrerror (errno, errbuf, + sizeof (errbuf))); return (-1); } time_end.tv_sec++; @@ -96,16 +86,23 @@ static int multimeter_read_value(double *value) struct timeval timeout; struct timeval time_now; - write(fd, "D", 1); + status = swrite (fd, "D", 1); + if (status < 0) + { + ERROR ("multimeter plugin: swrite failed."); + return (-1); + } FD_ZERO(&rfds); FD_SET(fd, &rfds); if (gettimeofday (&time_now, NULL) < 0) { - syslog (LOG_ERR, "multimeter plugin: " + char errbuf[1024]; + ERROR ("multimeter plugin: " "gettimeofday failed: %s", - strerror (errno)); + sstrerror (errno, errbuf, + sizeof (errbuf))); return (-1); } if (multimeter_timeval_sub (&time_end, &time_now, &timeout) == -1) @@ -157,9 +154,10 @@ static int multimeter_read_value(double *value) } else /* status == -1 */ { - syslog (LOG_ERR, "multimeter plugin: " + char errbuf[1024]; + ERROR ("multimeter plugin: " "select failed: %s", - strerror (errno)); + sstrerror (errno, errbuf, sizeof (errbuf))); break; } } @@ -201,14 +199,14 @@ static int multimeter_init (void) } else { - syslog (LOG_INFO, "multimeter plugin: Device " + INFO ("multimeter plugin: Device " "found at %s", device); return (0); } } } - syslog (LOG_ERR, "multimeter plugin: No device found"); + ERROR ("multimeter plugin: No device found"); return (-1); } #undef LINE_LENGTH @@ -223,10 +221,11 @@ static void multimeter_submit (double value) vl.values = values; vl.values_len = 1; vl.time = time (NULL); - strcpy (vl.host, hostname_g); - strcpy (vl.plugin, "multimeter"); + sstrncpy (vl.host, hostname_g, sizeof (vl.host)); + sstrncpy (vl.plugin, "multimeter", sizeof (vl.plugin)); + sstrncpy (vl.type, "multimeter", sizeof (vl.type)); - plugin_dispatch_values ("multimeter", &vl); + plugin_dispatch_values (&vl); } static int multimeter_read (void) @@ -253,15 +252,10 @@ static int multimeter_shutdown (void) return (0); } -#endif /* MULTIMETER_HAVE_READ */ void module_register (void) { - plugin_register_data_set (&data_set); - -#if MULTIMETER_HAVE_READ plugin_register_init ("multimeter", multimeter_init); plugin_register_read ("multimeter", multimeter_read); plugin_register_shutdown ("multimeter", multimeter_shutdown); -#endif /* MULTIMETER_HAVE_READ */ -} +} /* void module_register */