Ruben Kerkhof [Tue, 9 Aug 2016 11:57:36 +0000 (13:57 +0200)]
collectdctl.c: fix two compiler warnings
collectdctl.c: In function ‘flush’:
collectdctl.c:315:21: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (int i = 0; i < plugins_num; ++i) {
^
collectdctl.c:323:25: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (int j = 0; j < identifiers_num; ++j) {
^
Ruben Kerkhof [Tue, 9 Aug 2016 11:51:46 +0000 (13:51 +0200)]
gps plugin: fix compiler warning
gps.c:242:12: warning: function declaration isn’t a prototype
[-Wstrict-prototypes]
static int cgps_read ()
^~~~~~~~~
gps.c: In function ‘cgps_read’:
gps.c:242:12: warning: old-style function definition
[-Wold-style-definition]
Ruben Kerkhof [Tue, 9 Aug 2016 11:51:02 +0000 (13:51 +0200)]
utils_db_query.c: fix compiler warning
utils_db_query.c: In function ‘udb_result_submit’:
utils_db_query.c:259:11: warning: declaration of ‘status’ shadows a
previous local [-Wshadow]
int status = strjoin (vl.type_instance, sizeof
(vl.type_instance),
^~~~~~
Marc Fournier [Sat, 13 Feb 2016 10:51:23 +0000 (11:51 +0100)]
daemon/common.[ch]: add set_sock_opts() function
Enables the TCP keepalive mechanism on a given socket.
This would typically be used on sockets opened by write plugins
which submit data to a remote server.
Up to now, collectd fails to notice when a remote server dies without
properly closing the network connection, leading to more and more memory
getting allocated as the values pile up in the write queue.
The keepalive values are proportional to the configured `Interval`. The
first probe is emitted `10 x Interval` seconds after the last TCP packet
was seen, and then once per `Interval` until the threshold defined by
the OS is reached.
Ruben Kerkhof [Mon, 8 Aug 2016 11:12:08 +0000 (13:12 +0200)]
Include collectd.h before testing.h
testing.h includes system headers that set #define _FILE_OFFSET_BITS 32,
if not already defined. We define them in config.h, which is included by collectd.h
Marc Fournier [Mon, 8 Aug 2016 10:27:02 +0000 (12:27 +0200)]
collectd.spec: specify PYTHON_CONFIG on EL5
Since 4ad7200, python-config becomes mandatory. We have to explicitly
specify it's path for EL5 as we're using a non-default python
installation on this distro.
Ruben Kerkhof [Sun, 7 Aug 2016 11:10:14 +0000 (13:10 +0200)]
python: use LIBPYTHON_LIBS too
python-config --ldflags returns -lpython (yeah I know)
autoconf prepends ldflags in its configuration tests
so conftest.c will never look for symbols in -lpython.
python-config --libs also returns -lpython, but this is appended.
Ruben Kerkhof [Sun, 7 Aug 2016 12:13:11 +0000 (14:13 +0200)]
perl plugin: fix build on RHEL5
perl.c: In function 'init_pi':
perl.c:2304: warning: implicit declaration of function
'pthread_mutexattr_settype'
perl.c:2304: error: 'PTHREAD_MUTEX_RECURSIVE' undeclared (first use in
this function)
perl.c:2304: error: (Each undeclared identifier is reported only once
perl.c:2304: error: for each function it appears in.)
make[3]: *** [perl_la-perl.lo] Error 1
Ruben Kerkhof [Sat, 6 Aug 2016 06:31:04 +0000 (08:31 +0200)]
snmp : don't send values for empty type_instance
If you have multiple Instance values that are empty string,
they all end up in the same rrd file, resulting in:
rrdc_update (/collectd/rrd/vc3/snmp/if_errors.rrd, [1352632188:0:0], 1) failed with status -1
Ruben Kerkhof [Sun, 7 Aug 2016 09:59:31 +0000 (11:59 +0200)]
perl plugin: needs _LARGEFILE64_SOURCE
libperl compiled with LARGE_FILES support defines its own Off_t
as off64_t, even if off_t is 64-bit wide on 64bit platforms.
off64_t is only exposed in the libc headers if _LARGEFILE64_SOURCE
is defined.
In file included from perl.c:47:0:
/usr/lib/x86_64-linux-gnu/perl/5.20/CORE/perl.h:2398:22: error: unknown
type name 'off64_t'
# define Off_t off64_t
^
/usr/lib/x86_64-linux-gnu/perl/5.20/CORE/perlio.h:277:15: note: in
expansion of macro 'Off_t'
PERL_EXPORT_C Off_t PerlIO_tell(PerlIO *);
Florian Forster [Sat, 6 Aug 2016 16:22:56 +0000 (18:22 +0200)]
ping plugin: Let start_thread() return gracefully when thread is already running.
Signaling an error caused the init function to signal an error, causing
the read callback to be unregistered on systems where init is called
more than once.
Ruben Kerkhof [Sat, 6 Aug 2016 11:09:15 +0000 (13:09 +0200)]
perl : fix build without compiler optimization
CC perl_la-perl.lo
In file included from /usr/include/stdio.h:27:0,
from ./daemon/collectd.h:34,
from perl.c:36:
/usr/include/features.h:331:4: error: #warning _FORTIFY_SOURCE requires
compiling with optimization (-O) [-Werror=cpp]
# warning _FORTIFY_SOURCE requires compiling with optimization (-O)
^~~~~~~
cc1: all warnings being treated as errors
Makefile:4439: recipe for target 'perl_la-perl.lo' failed
make[3]: *** [perl_la-perl.lo] Error 1
ccflags contains the flags used to compile libperl itself, not the ones
needed for compiling code that uses it. Switch to perl_inc which just
returns the neccesary include flags
Ruben Kerkhof [Fri, 5 Aug 2016 17:46:08 +0000 (19:46 +0200)]
python plugin: fix building with python 3
Python 3 doesn't have PyUnicode_SetDefaultEncoding()
CC python_la-python.lo
python.c: In function 'cpy_config':
python.c:1138:4: error: implicit declaration of function 'PyUnicode_SetDefaultEncoding' [-Werror=implicit-function-declaration]
if (PyUnicode_SetDefaultEncoding(encoding)) {
^
cc1: all warnings being treated as errors
*** Error code 1
Sebastian Harl [Thu, 4 Aug 2016 20:15:34 +0000 (22:15 +0200)]
python plugin: Fix conversion of value-lists from Python to C.
This affects data-sets with more than one data-source of different types.
Previously, the type of the first data-source would have been used to convert
all values.