Many build fixes that turned up with GCC 4.6.
[collectd.git] / src / nut.c
index bde5d82..edc48c6 100644 (file)
--- a/src/nut.c
+++ b/src/nut.c
 #include "common.h"
 #include "plugin.h"
 
-#if HAVE_PTHREAD_H
-# include <pthread.h>
-#endif
-
-#if HAVE_UPSCLIENT_H
-# include <upsclient.h>
+#include <pthread.h>
+#include <upsclient.h>
+
+#if HAVE_UPSCONN_T
+typedef UPSCONN_t collectd_upsconn_t;
+#elif HAVE_UPSCONN
+typedef UPSCONN collectd_upsconn_t;
+#else
+# error "Unable to determine the UPS connection type."
 #endif
 
 struct nut_ups_s;
 typedef struct nut_ups_s nut_ups_t;
 struct nut_ups_s
 {
-  UPSCONN   *conn;
+  collectd_upsconn_t *conn;
   char      *upsname;
   char      *hostname;
   int        port;
@@ -120,21 +123,17 @@ static void nut_submit (nut_ups_t *ups, const char *type,
 
   vl.values = values;
   vl.values_len = STATIC_ARRAY_SIZE (values);
-  vl.time = time (NULL);
-  strncpy (vl.host,
+  sstrncpy (vl.host,
       (strcasecmp (ups->hostname, "localhost") == 0)
       ? hostname_g
       : ups->hostname,
       sizeof (vl.host));
-  strcpy (vl.plugin, "nut");
-  strncpy (vl.plugin_instance, ups->upsname, sizeof (vl.plugin_instance));
-  strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
-
-  vl.host[sizeof (vl.host) - 1] = '\0';
-  vl.plugin_instance[sizeof (vl.plugin_instance) - 1] = '\0';
-  vl.type_instance[sizeof (vl.type_instance) - 1] = '\0';
+  sstrncpy (vl.plugin, "nut", sizeof (vl.plugin));
+  sstrncpy (vl.plugin_instance, ups->upsname, sizeof (vl.plugin_instance));
+  sstrncpy (vl.type, type, sizeof (vl.type));
+  sstrncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
 
-  plugin_dispatch_values (type, &vl);
+  plugin_dispatch_values (&vl);
 } /* void nut_submit */
 
 static int nut_read_one (nut_ups_t *ups)
@@ -148,7 +147,7 @@ static int nut_read_one (nut_ups_t *ups)
   /* (Re-)Connect if we have no connection */
   if (ups->conn == NULL)
   {
-    ups->conn = (UPSCONN *) malloc (sizeof (UPSCONN));
+    ups->conn = (collectd_upsconn_t *) malloc (sizeof (collectd_upsconn_t));
     if (ups->conn == NULL)
     {
       ERROR ("nut plugin: malloc failed.");