utils_vl_lookup: Fixed a race when creating user objects.
[collectd.git] / src / mbmon.c
index 7694abc..90226bb 100644 (file)
@@ -1,6 +1,7 @@
 /**
  * collectd - src/mbmon.c
- * Copyright (C) 2006 Flavio Stanchina
+ * Copyright (C) 2006       Flavio Stanchina
+ * Copyright (C) 2006-2007  Florian octo Forster
  * Based on the hddtemp plugin.
  *
  * This program is free software; you can redistribute it and/or modify it
@@ -19,6 +20,7 @@
  *
  * Authors:
  *   Flavio Stanchina <flavio at stanchina.net>
+ *   Florian Forster <octo at verplant.org>
  **/
 
 #include "collectd.h"
 #include "plugin.h"
 #include "configfile.h"
 
-#if HAVE_NETDB_H && HAVE_SYS_SOCKET_H && HAVE_NETINET_IN_H && HAVE_NETINET_TCP_H
-# include <netdb.h>
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <netinet/tcp.h>
-# define MBMON_HAVE_READ 1
-#else
-# define MBMON_HAVE_READ 0
-#endif
+#include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
 
 #define MBMON_DEF_HOST "127.0.0.1"
 #define MBMON_DEF_PORT "411" /* the default for Debian */
@@ -47,7 +44,6 @@ static const char *config_keys[] =
 };
 static int config_keys_num = 2;
 
-#if MBMON_HAVE_READ
 static char *mbmon_host = NULL;
 static char *mbmon_port = NULL;
 
@@ -138,7 +134,7 @@ static int mbmon_query_daemon (char *buffer, int buffer_size)
                if (connect (fd, (struct sockaddr *) ai_ptr->ai_addr, ai_ptr->ai_addrlen))
                {
                        char errbuf[1024];
-                       DEBUG ("mbmon: connect (%s, %s): %s", host, port,
+                       INFO ("mbmon: connect (%s, %s): %s", host, port,
                                        sstrerror (errno, errbuf,
                                                sizeof (errbuf)));
                        close (fd);
@@ -233,12 +229,12 @@ static void mbmon_submit (const char *type, const char *type_instance,
 
        vl.values = values;
        vl.values_len = 1;
-       vl.time = time (NULL);
-       strcpy (vl.host, hostname_g);
-       strcpy (vl.plugin, "mbmon");
-       strncpy (vl.type_instance, type_instance, sizeof (vl.type_instance));
+       sstrncpy (vl.host, hostname_g, sizeof (vl.host));
+       sstrncpy (vl.plugin, "mbmon", sizeof (vl.plugin));
+       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 mbmon_submit */
 
 /* Trim trailing whitespace from a string. */
@@ -246,7 +242,7 @@ static void trim_spaces (char *s)
 {
        size_t l;
 
-       for (l = strlen (s) - 1; (l > 0) && isspace (s[l]); l--)
+       for (l = strlen (s) - 1; (l > 0) && isspace ((int) s[l]); l--)
                s[l] = '\0';
 }
 
@@ -308,14 +304,11 @@ static int mbmon_read (void)
 
        return (0);
 } /* void mbmon_read */
-#endif /* MBMON_HAVE_READ */
 
 /* module_register
    Register collectd plugin. */
 void module_register (void)
 {
-#if MBMON_HAVE_READ
        plugin_register_config ("mbmon", mbmon_config, config_keys, config_keys_num);
        plugin_register_read ("mbmon", mbmon_read);
-#endif /* MBMON_HAVE_READ */
 } /* void module_register */