/**
* collectd - src/battery.c
* Copyright (C) 2006,2007 Florian octo Forster
+ * Copyright (C) 2008 Michał Mirosław
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
*
* Authors:
* Florian octo Forster <octo at verplant.org>
+ * Michał Mirosław <mirq-linux at rere.qmqm.pl>
**/
#include "collectd.h"
#include "common.h"
#include "plugin.h"
+#include "utils_complain.h"
+
#if HAVE_MACH_MACH_TYPES_H
# include <mach/mach_types.h>
#endif
vl.values = values;
vl.values_len = 1;
- vl.time = time (NULL);
sstrncpy (vl.host, hostname_g, sizeof (vl.host));
sstrncpy (vl.plugin, "battery", sizeof (vl.plugin));
sstrncpy (vl.plugin_instance, plugin_instance, sizeof (vl.plugin_instance));
#endif /* HAVE_IOKIT_IOKITLIB_H */
#if KERNEL_LINUX
-static int battery_read_acpi (const char *name)
+static int battery_read_acpi (const char __attribute__((unused)) *dir,
+ const char *name, void __attribute__((unused)) *user_data)
{
double current = INVALID_VALUE;
double voltage = INVALID_VALUE;
/* #endif HAVE_IOKIT_IOKITLIB_H || HAVE_IOKIT_PS_IOPOWERSOURCES_H */
#elif KERNEL_LINUX
+ static c_complain_t acpi_dir_complaint = C_COMPLAIN_INIT_STATIC;
+
FILE *fh;
char buffer[1024];
char filename[256];
battery_submit ("0", "voltage", voltage);
}
- walk_directory (battery_acpi_dir, battery_read_acpi);
+ if (0 == access (battery_acpi_dir, R_OK))
+ walk_directory (battery_acpi_dir, battery_read_acpi,
+ /* user_data = */ NULL,
+ /* include hidden */ 0);
+ else
+ {
+ char errbuf[1024];
+ c_complain_once (LOG_WARNING, &acpi_dir_complaint,
+ "battery plugin: Failed to access `%s': %s",
+ battery_acpi_dir,
+ sstrerror (errno, errbuf, sizeof (errbuf)));
+ }
#endif /* KERNEL_LINUX */