libcollectdclient: fix compiler warning on Solaris
CC libcollectdclient_la-client.lo
"client.c", line 1104: argument #4 is incompatible with prototype:
prototype: pointer to function(pointer to const void, pointer to const void) returning int : "/usr/include/iso/stdlib_iso.h", line 134
argument : pointer to void
|c_avl_tree_t *c_avl_create (int (*compare) (const void *, const
void *));
| ^ line 54, utils_avltree.h
| included in line 34, utils_vl_lookup.c
|
| obj->by_type_tree = c_avl_create ((void *) strcmp);
| ^ line 567,
utils_vl_lookup.c
E_ARG_INCOMPATIBLE_WITH_ARG_L, argument #1 is incompatible with
prototype:
prototype: pointer to function(pointer to const void, pointer to
const void) returning int : "src/daemon/utils_avltree.h", line 54
argument : pointer to void
I'll look into writing a generic function to compare avl keys so
we don't need to do all the casting.
Hal needs dbus, but we need pkg-config to tell us that.
Now that pkg-config is not optional anymore, rewrite the
check to always use it. Also add a check for the header.
| ud.free_func = (void *) memcached_free;
| ^ line 559, memcached.c
assignment type mismatch:
pointer to function(pointer to void) returning void "=" pointer to void
Casting a function pointer to a void pointer is undefined behaviour
in C (it is defined in POSIX however)
network plugin: Fix heap overflow in parse_packet().
Emilien Gaspar has identified a heap overflow in parse_packet(), the
function used by the network plugin to parse incoming network packets.
This is a vulnerability in collectd, though the scope is not clear at
this point. At the very least specially crafted network packets can be
used to crash the daemon. We can't rule out a potential remote code
execution though.
CC write_riemann_la-write_riemann.lo
In file included from ./daemon/collectd.h:31:0,
from write_riemann.c:34:
./config.h:1664:0: error: "_FILE_OFFSET_BITS" redefined [-Werror]
#define _FILE_OFFSET_BITS 64
^
In file included from /usr/include/limits.h:17:0,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:168,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/syslimits.h:7,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:34,
from /opt/csw/include/protobuf-c/protobuf-c.h:200,
from /opt/csw/include/riemann/proto/riemann.pb-c.h:7,
from /opt/csw/include/riemann/attribute.h:21,
from /opt/csw/include/riemann/riemann-client.h:23,
from write_riemann.c:31:
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/sys/feature_tests.h:196:0:
note: this is the location of the previous definition
#define _FILE_OFFSET_BITS 32
^
cc1: all warnings being treated as errors
Makefile:4645: recipe for target 'write_riemann_la-write_riemann.lo'
failed
gmake[3]: *** [write_riemann_la-write_riemann.lo] Error 1
gmake[3]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:4879: recipe for target 'all-recursive' failed
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:3209: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:572: recipe for target 'all-recursive' failed
gmake: *** [all-recursive] Error 1
gmake: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166'
/home/dam/mgar/pkg/.buildsys/v2/gar//gar.lib.mk:874: die Regel für Ziel
„build-work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/Makefile“
scheiterte
Scott Talbert [Fri, 15 Jul 2016 14:14:28 +0000 (10:14 -0400)]
smart plugin: add option to store data using serial number
Since a device name (e.g., /dev/sda) can change, allow using the serial number
to store SMART data as this will ensure the data for a given drive is always
kept together.
Scott Talbert [Fri, 15 Jul 2016 13:36:30 +0000 (09:36 -0400)]
smart plugin: add IgnoreSleepMode option to ignore sleeping disks
This option enables the smart plugin to use disks that libatasmart mistakenly
reports as asleep. This happens because libatasmart has not been updated to
incorporate support for newer idle states in the ATA spec.
Mark McKinstry [Wed, 29 Jun 2016 14:54:46 +0000 (10:54 -0400)]
rdkafka is called librdkafka
The [spec file for
librdkafka](https://github.com/edenhill/librdkafka/blob/master/packaging/rpm/librdkafka.spec)
calls its package 'librdkafka-devel', not 'rdkafka-devel'. Searching the
web for 'rdkafka-devel RPM' turns up nothing, all the RPMs are named
'librdkafka-devel'.
Vincent Bernat [Wed, 15 Jun 2016 07:53:07 +0000 (09:53 +0200)]
write_kafka: ensure key is properly hashed to select partition
Otherwise, partition is selected solely on the first letter of the
key. If all your hosts are starting with the same letter, everything
ends up in a single partition.
Sebastian Harl [Sat, 4 Jun 2016 16:51:44 +0000 (18:51 +0200)]
utils_curl_stats: Drop the nonnull attribute from curl_stats_from_config.
It's not overly useful after all but generates false compiler warnings /
errors on Xenial using CLANG, since we also check the parameter in the
function (which is what we want in the end and there's no risk in actually
calling it with a NULL value).
Sebastian Harl [Sat, 18 Apr 2015 17:36:08 +0000 (19:36 +0200)]
Add request specific statistics to all CURL-based plugins.
All metrics supported by curl_easy_getinfo can be retrieved and dispatched for
each request done through CURL. All statistics are optional and disabled by
default.
Ruben Kerkhof [Fri, 10 Jun 2016 10:23:09 +0000 (12:23 +0200)]
configure.ac: remove obsolete macro
We don't need it anymore. See
http://gnu-autoconf.7623.n7.nabble.com/Bug-389558-autoconf-AC-PROG-GCC-TRADITIONAL-throws-error-in-comparision-td1885.html
Ruben Kerkhof [Fri, 10 Jun 2016 08:46:28 +0000 (10:46 +0200)]
chrony plugin: use ANSI function definitions
chrony.c:392:1: warning: function declaration isn’t a prototype
[-Wstrict-prototypes]
chrony_set_timeout()
^
chrony.c: In function ‘chrony_set_timeout’:
chrony.c:392:1: warning: old-style function definition
[-Wold-style-definition]
chrony.c: At top level: