X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fmbmon.c;h=384ecb5e6a5cda48d376ebea8b5aad3882a1143b;hb=03b13552b2e9b4b19d3120d8dbb2ff8fc4ecf481;hp=241d7d042b57e8a88f165cb643c0f731c598c3af;hpb=838af4cdc6c8674ed3e14a95fea172118c707a85;p=collectd.git diff --git a/src/mbmon.c b/src/mbmon.c index 241d7d04..384ecb5e 100644 --- a/src/mbmon.c +++ b/src/mbmon.c @@ -26,49 +26,14 @@ #include "plugin.h" #include "configfile.h" -#if HAVE_NETDB_H && HAVE_SYS_SOCKET_H && HAVE_NETINET_IN_H && HAVE_NETINET_TCP_H -# include -# include -# include -# include -# define MBMON_HAVE_READ 1 -#else -# define MBMON_HAVE_READ 0 -#endif +#include +#include +#include +#include #define MBMON_DEF_HOST "127.0.0.1" #define MBMON_DEF_PORT "411" /* the default for Debian */ -static data_source_t data_source_fanspeed[1] = -{ - {"value", DS_TYPE_GAUGE, 0, NAN} -}; - -static data_set_t fanspeed_ds = -{ - "fanspeed", 1, data_source_fanspeed -}; - -static data_source_t data_source_temperature[1] = -{ - {"value", DS_TYPE_GAUGE, -273.15, NAN} -}; - -static data_set_t temperature_ds = -{ - "temperature", 1, data_source_temperature -}; - -static data_source_t data_source_voltage[1] = -{ - {"voltage", DS_TYPE_GAUGE, NAN, NAN} -}; - -static data_set_t voltage_ds = -{ - "voltage", 1, data_source_voltage -}; - static const char *config_keys[] = { "Host", @@ -77,7 +42,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; @@ -124,7 +88,10 @@ static int mbmon_query_daemon (char *buffer, int buffer_size) int ai_return; memset (&ai_hints, '\0', sizeof (ai_hints)); - ai_hints.ai_flags = AI_ADDRCONFIG; + ai_hints.ai_flags = 0; +#ifdef AI_ADDRCONFIG + ai_hints.ai_flags |= AI_ADDRCONFIG; +#endif ai_hints.ai_family = PF_UNSPEC; ai_hints.ai_socktype = SOCK_STREAM; ai_hints.ai_protocol = IPPROTO_TCP; @@ -139,9 +106,12 @@ static int mbmon_query_daemon (char *buffer, int buffer_size) if ((ai_return = getaddrinfo (host, port, &ai_hints, &ai_list)) != 0) { + char errbuf[1024]; ERROR ("mbmon: getaddrinfo (%s, %s): %s", host, port, - ai_return == EAI_SYSTEM ? strerror (errno) : gai_strerror (ai_return)); + (ai_return == EAI_SYSTEM) + ? sstrerror (errno, errbuf, sizeof (errbuf)) + : gai_strerror (ai_return)); return (-1); } @@ -151,16 +121,20 @@ static int mbmon_query_daemon (char *buffer, int buffer_size) /* create our socket descriptor */ if ((fd = socket (ai_ptr->ai_family, ai_ptr->ai_socktype, ai_ptr->ai_protocol)) < 0) { + char errbuf[1024]; ERROR ("mbmon: socket: %s", - strerror (errno)); + sstrerror (errno, errbuf, + sizeof (errbuf))); continue; } /* connect to the mbmon daemon */ if (connect (fd, (struct sockaddr *) ai_ptr->ai_addr, ai_ptr->ai_addrlen)) { + char errbuf[1024]; DEBUG ("mbmon: connect (%s, %s): %s", host, port, - strerror (errno)); + sstrerror (errno, errbuf, + sizeof (errbuf))); close (fd); fd = -1; continue; @@ -187,11 +161,14 @@ static int mbmon_query_daemon (char *buffer, int buffer_size) { if (status == -1) { + char errbuf[1024]; + if ((errno == EAGAIN) || (errno == EINTR)) continue; ERROR ("mbmon: Error reading from socket: %s", - strerror (errno)); + sstrerror (errno, errbuf, + sizeof (errbuf))); close (fd); return (-1); } @@ -325,18 +302,11 @@ static int mbmon_read (void) return (0); } /* void mbmon_read */ -#endif /* MBMON_HAVE_READ */ /* module_register Register collectd plugin. */ void module_register (void) { - plugin_register_data_set (&fanspeed_ds); - plugin_register_data_set (&temperature_ds); - plugin_register_data_set (&voltage_ds); - -#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 */