X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fmultimeter.c;h=9c9c2c152093760db11fd2560d2f17e3c538806d;hb=d3fc6d0831a63af2e96300f488a9f8f5fc3183fb;hp=04196bbefb3e9d5460aced62e0be2cac47188033;hpb=838af4cdc6c8674ed3e14a95fea172118c707a85;p=collectd.git diff --git a/src/multimeter.c b/src/multimeter.c index 04196bbe..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) { + char errbuf[1024]; ERROR ("multimeter plugin: gettimeofday failed: %s", - strerror (errno)); + 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) { + 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 */ { + char errbuf[1024]; ERROR ("multimeter plugin: " "select failed: %s", - strerror (errno)); + sstrerror (errno, errbuf, sizeof (errbuf))); break; } } @@ -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 */