Merge branch 'bp/bind'
[collectd.git] / src / multimeter.c
index 21a2144..9c9c2c1 100644 (file)
 # include <termios.h>
 # include <sys/ioctl.h>
 # include <math.h>
-# define MULTIMETER_HAVE_READ 1
 #else
-# define MULTIMETER_HAVE_READ 0
-# error "multimeter cannot read!"
+# error "No applicable input method."
 #endif
 
-#if MULTIMETER_HAVE_READ
 static int fd = -1;
 
 static int multimeter_timeval_sub (struct timeval *tv1, struct timeval *tv2,
@@ -58,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)
 {
@@ -88,7 +86,12 @@ 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);
@@ -218,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)
@@ -248,13 +252,10 @@ static int multimeter_shutdown (void)
 
        return (0);
 }
-#endif /* MULTIMETER_HAVE_READ */
 
 void module_register (void)
 {
-#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 */