rrdtool plugin: fix thread-safety detection
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
HAVE_THREADSAFE_LIBRRD is either defined or not
rrdtool check: stop linking in libm
rrdtool check: no need to save CPPFLAGS
There's no need to save CPPFLAGS when we're just
checking a library.
There's no need to save CPPFLAGS when we're just
checking a library.
rrdtool check: no need to save LDFLAGS
There's no need to save LDFLAGS when we're just
checking a header.
There's no need to save LDFLAGS when we're just
checking a header.
liboconfig: enable dependency tracking
Nowadays there's no reason not too.
Also remove the foreign option, since we set that as default
in configure.ac already.
Nowadays there's no reason not too.
Also remove the foreign option, since we set that as default
in configure.ac already.
sfree: don't check for NULL before calling free
free(NULL) is safe to call
free(NULL) is safe to call
Merge branch 'cppcheck'
bind plugin: space after realloc
amqp: plug leak on realloc failure
realloc: remove unnecessary casts of return value
match_value: condition is always true
[src/match_value.c:338]: (style) Condition 'value_matches==0' is always true
[src/match_value.c:338]: (style) Condition 'value_matches==0' is always true
apache plugin: len is unsigned
[src/apache.c:140]: (style) Checking if unsigned variable 'len' is less than zero.
[src/apache.c:140]: (style) Checking if unsigned variable 'len' is less than zero.
ascent plugin: len is unsigned
[src/ascent.c:157]: (style) Checking if unsigned variable 'len' is less than zero.
[src/ascent.c:157]: (style) Checking if unsigned variable 'len' is less than zero.
battery plugin: remove assignment with no effect
[src/battery.c:361] -> [src/battery.c:372]: (performance) Variable 'capacity_charged' is reassigned a value before the old one has been used.
[src/battery.c:361] -> [src/battery.c:372]: (performance) Variable 'capacity_charged' is reassigned a value before the old one has been used.
bind plugin: len is unsigned
[src/bind.c:280]: (style) Checking if unsigned variable 'len' is less than zero.
[src/bind.c:280]: (style) Checking if unsigned variable 'len' is less than zero.
curl plugin: prev can't be NULL here
[src/curl.c:548] -> [src/curl.c:546]: (warning) Either the condition 'prev!=0' is redundant or there is possible null pointer dereference: prev.
[src/curl.c:548] -> [src/curl.c:546]: (warning) Either the condition 'prev!=0' is redundant or there is possible null pointer dereference: prev.
curl plugin: len is unsigned
[src/curl.c:98]: (style) Checking if unsigned variable 'len' is less than zero.
[src/curl.c:98]: (style) Checking if unsigned variable 'len' is less than zero.
curl_json plugin: len is unsigned
[src/curl_json.c:119]: (style) Checking if unsigned variable 'len' is less than zero.
[src/curl_json.c:119]: (style) Checking if unsigned variable 'len' is less than zero.
curl_xml plugin: remove useless assigment
list has local storage class
[src/curl_xml.c:173]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
list has local storage class
[src/curl_xml.c:173]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
curl_xml plugin: len is unsigned
[src/curl_xml.c:117]: (style) Checking if unsigned variable 'len' is less than zero.
[src/curl_xml.c:117]: (style) Checking if unsigned variable 'len' is less than zero.
collectd.c: dirlen is unsigned
[src/daemon/collectd.c:199]: (style) Checking if unsigned variable 'dirlen' is less than zero.
[src/daemon/collectd.c:199]: (style) Checking if unsigned variable 'dirlen' is less than zero.
common.c: fields_num is unsigned
[src/daemon/common.c:338]: (style) Checking if unsigned variable 'fields_num' is less than zero.
[src/daemon/common.c:338]: (style) Checking if unsigned variable 'fields_num' is less than zero.
common_test.c: sfree always sets ptr to NULL
[src/daemon/common_test.c:93]: (style) Condition 'ptr==0' is always true
[src/daemon/common_test.c:93]: (style) Condition 'ptr==0' is always true
plugin.c: fix potential null pointer dereference
[src/daemon/plugin.c:2095] -> [src/daemon/plugin.c:2091]: (warning) Either the condition 'vl==0' is redundant or there is possible null pointer dereference: vl.
[src/daemon/plugin.c:2095] -> [src/daemon/plugin.c:2091]: (warning) Either the condition 'vl==0' is redundant or there is possible null pointer dereference: vl.
utils_ignorelist.c: remove useless assignment
[src/daemon/utils_ignorelist.c:238]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/daemon/utils_ignorelist.c:238]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
dbi plugin: remove assignment with no effect
[src/dbi.c:513] -> [src/dbi.c:518]: (performance) Variable 'res' is reassigned a value before the old one has been used.
[src/dbi.c:513] -> [src/dbi.c:518]: (performance) Variable 'res' is reassigned a value before the old one has been used.
liboconfig/oconfig.c: remove unneeded assigment
[src/liboconfig/oconfig.c:224]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[src/liboconfig/oconfig.c:224]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
memcachec plugin: prev can't be NULL here
[src/memcachec.c:392] -> [src/memcachec.c:390]: (warning) Either the condition 'prev!=0' is redundant or there is possible null pointer dereference: prev.
[src/memcachec.c:392] -> [src/memcachec.c:390]: (warning) Either the condition 'prev!=0' is redundant or there is possible null pointer dereference: prev.
openvpn plugin: plug leak on realloc failure
[src/openvpn.c:715]: (error) Common realloc mistake: 'vpn_list' nulled but not freed upon failure
[src/openvpn.c:715]: (error) Common realloc mistake: 'vpn_list' nulled but not freed upon failure
openvpn plugin: use sizeof(*pointer) instead of sizeof(type)
openvpn plugin: remove unnecessary cast
memcached plugin: remove assignment with no effect
[src/memcached.c:176] -> [src/memcached.c:180]: (performance) Variable 'fd' is reassigned a value before the old one has been used.
[src/memcached.c:176] -> [src/memcached.c:180]: (performance) Variable 'fd' is reassigned a value before the old one has been used.
network plugin: output_len is unsigned
[src/network.c:937]: (style) Checking if unsigned variable 'output_len' is less than zero.
[src/network.c:937]: (style) Checking if unsigned variable 'output_len' is less than zero.
perl plugin: remove assignments with no effect
[src/perl.c:2079] -> [src/perl.c:2082]: (performance) Variable 't' is reassigned a value before the old one has been used.
[src/perl.c:2079] -> [src/perl.c:2082]: (performance) Variable 't' is reassigned a value before the old one has been used.
processes plugin: check boundary first
[src/processes.c:1042]: (style) Array index 'name_start_pos' is used before limits check.
[src/processes.c:1042]: (style) Array index 'name_start_pos' is used before limits check.
snmp plugin: initialize res sooner
snmp plugin: remove statement with no effect
res has local scope, and we return immediately after.
res has local scope, and we return immediately after.
snmp plugin: res can't be NULL here
[src/snmp.c:1761] -> [src/snmp.c:1777]: (warning) Either the condition 'res!=0' is redundant or there is possible null pointer dereference: res.
[src/snmp.c:1761] -> [src/snmp.c:1777]: (warning) Either the condition 'res!=0' is redundant or there is possible null pointer dereference: res.
threshold.c: remove assignment with no effect.
[src/threshold.c:81] -> [src/threshold.c:87]: (performance) Variable 'th_ptr' is reassigned a value before the old one has been used.
[src/threshold.c:81] -> [src/threshold.c:87]: (performance) Variable 'th_ptr' is reassigned a value before the old one has been used.
utils_db_query.c: plug leak on error
utils_db_query.c: remove unnecessary cast
network plugin: fd_num is unsigned
[src/network.c:2314]: (style) Checking if unsigned variable 'fd_num' is less than zero.
[src/network.c:2314]: (style) Checking if unsigned variable 'fd_num' is less than zero.
nginx plugin: len is unsigned
[src/nginx.c:74]: (style) Checking if unsigned variable 'len' is less than zero.
[src/nginx.c:74]: (style) Checking if unsigned variable 'len' is less than zero.
olsrd plugin: buffer_len is unsigned
[src/olsrd.c:666]: (style) Checking if unsigned variable 'buffer_len' is less than zero.
[src/olsrd.c:666]: (style) Checking if unsigned variable 'buffer_len' is less than zero.
processes plugin: ps->num_lwp is unsigned long
[src/processes.c:1095]: (style) Checking if unsigned variable 'num_lwp' is less than zero.
[src/processes.c:1095]: (style) Checking if unsigned variable 'num_lwp' is less than zero.
processes plugin: len is unsigned
[src/processes.c:1219]: (style) Checking if unsigned variable 'len' is less than zero.
[src/processes.c:1219]: (style) Checking if unsigned variable 'len' is less than zero.
utils_db_query.c: r->instances_num is unsigned
[src/utils_db_query.c:237]: (style) Checking if unsigned variable 'instances_num' is less than zero.
[src/utils_db_query.c:237]: (style) Checking if unsigned variable 'instances_num' is less than zero.
utils_format_json.c: offset is unsigned
[src/utils_format_json.c:300]: (style) Checking if unsigned variable 'offset' is less than zero.
[src/utils_format_json.c:300]: (style) Checking if unsigned variable 'offset' is less than zero.
rrdcreate.c: ds_num is unsigned
[src/utils_rrdcreate.c:358]: (style) Checking if unsigned variable 'ds_num' is less than zero.
[src/utils_rrdcreate.c:358]: (style) Checking if unsigned variable 'ds_num' is less than zero.
write_graphite: send_buf_fill is unsigned
[src/write_graphite.c:183]: (style) Checking if unsigned variable 'send_buf_fill' is less than zero.
[src/write_graphite.c:183]: (style) Checking if unsigned variable 'send_buf_fill' is less than zero.
write_http plugin: send_buffer_fill is unsigned
write_tsdb plugin: send_buf_fill can't be < 0
[src/write_tsdb.c:145]: (style) Checking if unsigned variable 'send_buf_fill' is less than zero.
[src/write_tsdb.c:145]: (style) Checking if unsigned variable 'send_buf_fill' is less than zero.
zone plugin: plug leak on error
[src/zone.c:124]: (error) Memory leak: ret
[src/zone.c:124]: (error) Memory leak: ret
zookeeper plugin: remove useless initialization
[src/zookeeper.c:162] -> [src/zookeeper.c:166]: (performance) Variable 'sk' is reassigned a value before the old one has been used.
[src/zookeeper.c:162] -> [src/zookeeper.c:166]: (performance) Variable 'sk' is reassigned a value before the old one has been used.
daemon/common.c: remove unused function
Found with cppcheck
Found with cppcheck
Merge remote-tracking branch 'origin/pr/1239'
Merge pull request #1608 from rpv-tomsk/plugin-xencpu-public
xencpu plugin: RFC release
xencpu plugin: RFC release
xencpu plugin: Plugin to collect CPU load under Xen
Fixed remarks of code review:
* Removed static pointer initialization
* Tabs replaced by spaces
* Added check for xenctrl.h
* Changed order of libraries check, added argument quotes
* Added plugin documentation
Fixed remarks of code review:
* Removed static pointer initialization
* Tabs replaced by spaces
* Added check for xenctrl.h
* Changed order of libraries check, added argument quotes
* Added plugin documentation
configure.ac: fix typo
RPM specfile: temporarily disable building write_riemann
cf. #986
cf. #986
write_kafka: botch previous commit, spotted by @ciomaire
Merge pull request #1672 from collectd/feature/recent-rdkafka
write_kafka: do not call depreciated functions unless necessary
write_kafka: do not call depreciated functions unless necessary
write_kafka: do not call depreciated functions unless necessary
Merge pull request #986 from algernon/f/riemann/rcc
write_riemann: TLS support via riemann-c-client
write_riemann: TLS support via riemann-c-client
Merge branch 'master' into f/riemann/rcc
plugin.c: fix indentation of comment
virt plugin: compare pointer to NULL, not 0
Found with coccinelle
Found with coccinelle
turbostat plugin: reset the right variable
tail_csv plugin: set pointer to NULL not 0
Found with coccinelle
Found with coccinelle
collectctl: compare pointer with NULL not 0
Found with coccinelle
Found with coccinelle
pyvalues.c: remove unneccesary semicolon
Found with Coccinelle
Found with Coccinelle
configure.ac: indent plugin list
configure.ac: keep plugin lists sorted
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
fix potential curl plugin curl_slist_append memory leak
make sure that we dont leak memory if curl_slist_append returns null
make sure that we dont leak memory if curl_slist_append returns null
Merge pull request #1634 from BrandonArp/add_write_http_headers
add http headers functionality to write_http plugin
add http headers functionality to write_http plugin
add http headers functionality to write_http plugin
collectd.service: correct comment
We don't actually wait 10 seconds. The default is 100ms.
We don't actually wait 10 seconds. The default is 100ms.
collectd.service: wait for network-online.target
Wait for network-online.target, not network.target
See https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
Wait for network-online.target, not network.target
See https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/
collectd.service: extend Description
collectd.service: add links to man pages
Merge pull request #1208 from jy2wong/master
Fix void* arithmetic warning (-Wpointer-arith)
Fix void* arithmetic warning (-Wpointer-arith)
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
Fix process plugin memory leak [solaris]
write_riemann: add documentation
write_riemann: do not read responses twice
write_riemann: do not deadlock when sending from flush
write_riemann: add a BatchFlushTimeout option
write_riemann: kill old protobuf files
Merge pull request #1 from pyr/f/riemann/rcc
write_riemann: avoid deadlocks, rate limit log messages.
write_riemann: avoid deadlocks, rate limit log messages.
write_riemann: reorder host struct
write_riemann: use a single complaint field for send errors
write_riemann: use the complain mechanism to rate limit connection failure logs
write_riemann: avoid deadlock on connection failures
Fix segfault in network plugin
While cleaning up malloc calls in 1ebf2f31, I cleaned up one too many.
Fixes #1667
While cleaning up malloc calls in 1ebf2f31, I cleaned up one too many.
Fixes #1667
write_riemann: Add support for timeouts
Bump the riemann-c-client requirement to 1.8.0, which introduces
riemann_client_set_timeout(). With this in place, the plugin can now
accept the "Timeout" option, which specifies a timeout in seconds, for
all blocking operations (except TLS handshake).
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Bump the riemann-c-client requirement to 1.8.0, which introduces
riemann_client_set_timeout(). With this in place, the plugin can now
accept the "Timeout" option, which specifies a timeout in seconds, for
all blocking operations (except TLS handshake).
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
Merge pull request #1627 from rubenk/remove-old-filter-syntax-from-manpage
Remove broken filter syntax from collectd.conf(5)
Remove broken filter syntax from collectd.conf(5)