src/daemon/utils_time.[ch]: Create RFC 3339 strings.
RFC 3339 is a "profile" of ISO 8601, i.e. (almost) all valid RFC 3339
strings are also valid ISO 8601 strings.
RFC 3339 is a "profile" of ISO 8601, i.e. (almost) all valid RFC 3339
strings are also valid ISO 8601 strings.
Merge pull request #1293 from mfournier/read-threads-timing
Read threads timing
Read threads timing
GenericJMX plugin: fix indentation/bracket error
1e2ad9c0 contained a mistake which resulted in the following build
error. It seems to be a bad copy-paste when creating #1330 from the
patch in #1291.
```
./org/collectd/java/GenericJMXConfValue.java:535: error: variable tmp is already defined in constructor GenericJMXConfValue(OConfigItem)
String tmp = getConfigString (child);
```
1e2ad9c0 contained a mistake which resulted in the following build
error. It seems to be a bad copy-paste when creating #1330 from the
patch in #1291.
```
./org/collectd/java/GenericJMXConfValue.java:535: error: variable tmp is already defined in constructor GenericJMXConfValue(OConfigItem)
String tmp = getConfigString (child);
```
collectd-java(5): Document the new "PluginName" option.
GenericJMX plugin: Implement the "PluginName" config option.
Issue: #1291
Signed-off-by: Florian Forster <octo@collectd.org>
Issue: #1291
Signed-off-by: Florian Forster <octo@collectd.org>
GenericJMX plugin: Support TabularData for java.lang:type=GarbageCollector.
Issue: #1290
Signed-off-by: Florian Forster <octo@collectd.org>
Issue: #1290
Signed-off-by: Florian Forster <octo@collectd.org>
Merge remote-tracking branch 'github/pr/1370'
RPM specfile: include new notify_nagios plugin in package
Merge branch 'ff/nagios'
src/daemon/plugin.c: Use sfree() exclusively.
Fixes: #1110
Fixes: #1110
src/ceph_test.c: Use the EXPECT_EQ_STR() macro.
Merge branch 'collectd-5.5'
ceph plugin: Rewrite parse_keys() and compact_ds_name().
This rewrite removes the logic to add the original length to the end of
the buffer in case of truncation. This logic was guarded by:
tmp[DATA_MAX_NAME_LEN - 1] = '\0';
if(strlen(tmp) > DATA_MAX_NAME_LEN - 1) { ... }
and was therefore dead code.
Fixes: #1350
This rewrite removes the logic to add the original length to the end of
the buffer in case of truncation. This logic was guarded by:
tmp[DATA_MAX_NAME_LEN - 1] = '\0';
if(strlen(tmp) > DATA_MAX_NAME_LEN - 1) { ... }
and was therefore dead code.
Fixes: #1350
ceph plugin: Add unit test for parse_keys().
This is used to demonstrate a buffer overflow: when the first part of a
key is >63 characters, key_chars_remaining underflows and causes a buffer
overflow in the following iteration.
Issue: #1350
This is used to demonstrate a buffer overflow: when the first part of a
key is >63 characters, key_chars_remaining underflows and causes a buffer
overflow in the following iteration.
Issue: #1350
Merge pull request #1388 from rubenk/curl_json
curl_json: remove dead code
curl_json: remove dead code
Merge pull request #1386 from rubenk/rrdtool-unlock-on-error
rrdtool: unlock mutex on error
rrdtool: unlock mutex on error
Merge pull request #1387 from rubenk/redis-null-terminate-buffer
redis plugin: make sure buffer is null-terminated
redis plugin: make sure buffer is null-terminated
curl_json: remove dead code
CID 37963
CID 37963
Merge pull request #1389 from rubenk/perl-unlock-on-error
perl: unlock mutex on error
perl: unlock mutex on error
Merge pull request #1385 from rubenk/gcrypt-fix
configure.ac: remove wrong gcrypt check
configure.ac: remove wrong gcrypt check
perl: unlock mutex on error
CID 37970
CID 37970
redis plugin: make sure buffer is null-terminated
CID 37938
CID 37938
rrdtool: unlock mutex on error
CID 37972
CID 37972
Merge pull request #1384 from rubenk/irq-close-file-descriptor-on-failure
irq plugin: close file descriptor on failure
irq plugin: close file descriptor on failure
Merge pull request #1383 from rubenk/fhcount-close-file-descriptor-on-failure
fhcount plugin: close file descriptor on failure
fhcount plugin: close file descriptor on failure
Merge pull request #1382 from rubenk/modbus-fix-resource-leaks
modbus plugin: fix 2 leaks on error paths
modbus plugin: fix 2 leaks on error paths
Merge pull request #1381 from rubenk/filecount-fix-resource-leak
filecount plugin: fix leak on error path
filecount plugin: fix leak on error path
configure.ac: remove wrong gcrypt check
After all the effort to detect GCRYPT_CPPFLAGS and GCRYPT_LIBS
in previous checks, this check blindly overwrites them, even
if the AM_PATH_LIBGCRYPT macro isn't found.
Also, I think it's better to check for specific functionality in a library
than an explicit minimum version, which we already did.
After all the effort to detect GCRYPT_CPPFLAGS and GCRYPT_LIBS
in previous checks, this check blindly overwrites them, even
if the AM_PATH_LIBGCRYPT macro isn't found.
Also, I think it's better to check for specific functionality in a library
than an explicit minimum version, which we already did.
irq plugin: close file descriptor on failure
CID 38018
CID 38018
fhcount plugin: close file descriptor on failure
filecount plugin: fix leak on error path
modbus plugin: fix 2 leaks on error paths
Merge pull request #1380 from rubenk/csv-plug-leak-on-error-path
Csv plug leak on error path
Csv plug leak on error path
Merge pull request #1379 from rubenk/ceph-close-fd-on-error
ceph plugin: close fd on error
ceph plugin: close fd on error
Merge pull request #1378 from rubenk/bind-dont-free-invalid-pointer
bind: tmp doesn't point to start of allocated memory
bind: tmp doesn't point to start of allocated memory
Merge pull request #1377 from rubenk/mqtt-fix-out-of-bounds-write
mqtt: fix an out-of-bounds write
mqtt: fix an out-of-bounds write
Merge pull request #1376 from rubenk/amqp-fix-buffer-size
amqp: use the right buffer size for sstrncpy
amqp: use the right buffer size for sstrncpy
Merge pull request #1375 from rubenk/redis-unlock-lock
write_redis: don't return with lock held
write_redis: don't return with lock held
Merge pull request #1374 from rubenk/powerdns-fix-array-initialization
powerdns plugin: fix array initialization
powerdns plugin: fix array initialization
csv plugin: remove trailing whitespace
csv plugin: plug memory leak on error
CID 38015
CID 38015
ceph plugin: close fd on error
bind: tmp doesn't point to start of allocated memory
mqtt: fix an out-of-bounds write
CID 37990
CID 37990
amqp: use the right buffer size for sstrncpy
buffer is a char *, not an array, so size_of returns the size
of the pointer.
buffer is a char *, not an array, so size_of returns the size
of the pointer.
write_redis: don't return with lock held
powerdns plugin: fix array initialization
Merge pull request #1371 from rubenk/mqtt-plug-leak
mqtt: plug leak on error path
mqtt: plug leak on error path
Fix build with older version of libprotobuf-c
Revert "Set bugreport url and homepage url"
The net-snmp public headers are generated by autoconf
so they also define PACKAGE_URL (and lots more).
Apparently this is completely normal and documented at
http://www.net-snmp.org/tutorial/tutorial-5/toolkit/autoconf/index.html
This reverts commit e16e805eae42f911a6f9ab81420fcaf1a957810f.
The net-snmp public headers are generated by autoconf
so they also define PACKAGE_URL (and lots more).
Apparently this is completely normal and documented at
http://www.net-snmp.org/tutorial/tutorial-5/toolkit/autoconf/index.html
This reverts commit e16e805eae42f911a6f9ab81420fcaf1a957810f.
Merge pull request #1199 from rubenk/remove-gcrypt-exec-prefix-check
Remove gcrypt exec prefix check
Remove gcrypt exec prefix check
Merge pull request #1210 from rubenk/protoc
Protoc
Protoc
mqtt: plug leak on error path
Merge pull request #958 from rubenk/fix-version-gen-sh
Only run git describe when we're in a git repo
Only run git describe when we're in a git repo
Only run git describe when we're in a git repo
This fixes an issue I see when extracting a collectd
tarball into another git repo (the Fedora collectd rpm one).
In that case version-gen.sh picked up the last tag from the Fedora
repo, which is the wrong one.
This fixes an issue I see when extracting a collectd
tarball into another git repo (the Fedora collectd rpm one).
In that case version-gen.sh picked up the last tag from the Fedora
repo, which is the wrong one.
Merge pull request #1219 from rubenk/version-gen
Some more version-gen.sh tweaks
Some more version-gen.sh tweaks
Merge pull request #1220 from rubenk/set-package-bugreport-and-homepage
Set bugreport url and homepage url
Set bugreport url and homepage url
protoc: check for headers in new location as well
Newer versions of protobuf-c have their headers in
/usr/include/protobuf-c, and a symlink from
/usr/include/google/protobuf-c/.
These symlinks will eventually disappear however, so be prepared.
Newer versions of protobuf-c have their headers in
/usr/include/protobuf-c, and a symlink from
/usr/include/google/protobuf-c/.
These symlinks will eventually disappear however, so be prepared.
protoc: check for libprotobuf-c as well
protoc: simplify configure check
protoc: slightly nicer output in silent mode
make[1]: Entering directory '/home/ruben/src/collectd/src'
PROTOC-C pinba.pb-c.c
PROTOC-C riemann.pb-c.c
make[1]: Entering directory '/home/ruben/src/collectd/src'
PROTOC-C pinba.pb-c.c
PROTOC-C riemann.pb-c.c
protoc: log when compiler is missing
In the case where we do have the required headers
but don't have the compiler, this makes it more clear
that we're missing the latter.
In the case where we do have the required headers
but don't have the compiler, this makes it more clear
that we're missing the latter.
Silence protoc-c in silence mode
Instead of showing the full command line, this shows:
GEN pinba.pb-c.c
GEN riemann.pb-c.c
Instead of showing the full command line, this shows:
GEN pinba.pb-c.c
GEN riemann.pb-c.c
write_riemann: only compile .proto files when enabled
If the write_riemann plugin is not enabled there's no
need to compile the protobuf files.
If the write_riemann plugin is not enabled there's no
need to compile the protobuf files.
Pinba: only compile .proto files when enabled
If the pinba plugin is not enabled there's no
need to compile the protobuf files.
If the pinba plugin is not enabled there's no
need to compile the protobuf files.
write_kafka: fix indentation
It was all over the place.
I went with 4 spaces since that's what the majority
of code used.
It was all over the place.
I went with 4 spaces since that's what the majority
of code used.
Merge remote-tracking branch 'github/pr/1366'
snmp plugin: plug leak in error path.
Partial back port of #1368.
Signed-off-by: Florian Forster <octo@collectd.org>
Partial back port of #1368.
Signed-off-by: Florian Forster <octo@collectd.org>
Travis: switch to new Trusty environment
https://docs.travis-ci.com/user/trusty-ci-environment
https://docs.travis-ci.com/user/trusty-ci-environment
Merge branch 'pr/1345'
mqtt plugin: Add TLS options to the example config and improve documentation.
mqtt plugin: Rename "TLSprotocol" to "TLSProtocol".
mqtt plugin: Rename "CACertificateFile" to "CACert".
This way the option name is consistent with the name used by the cURL
plugins.
Sorry for previous comments in #1345 that pushed towards copying Apache
HTTPd's naming schema -- being consistent within collectd is more
important.
This way the option name is consistent with the name used by the cURL
plugins.
Sorry for previous comments in #1345 that pushed towards copying Apache
HTTPd's naming schema -- being consistent within collectd is more
important.
Merge commit 'refs/pull/1360/head' of github.com:collectd/collectd
Merge remote-tracking branch 'github/pr/1355'
utils_mount: use reentrant getmntent_r when we can
Fixes #1162
(cherry picked from commit a916ae72b89d0bcb5fe28d55def7327e8a1f6ce0)
Fixes #1162
(cherry picked from commit a916ae72b89d0bcb5fe28d55def7327e8a1f6ce0)
Allow MQTT payloads without NULL string termination
Merge pull request #1163 from rubenk/fix-data-race-in-df-and-cgroup-plugins
utils_mount: use reentrant getmntent_r when we can
utils_mount: use reentrant getmntent_r when we can
table plugin: log_warn is better than log_err
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
c_avl_pick needs to update the 'size' field of the tree when it deletes
a node.
Signed-off-by: Florian Forster <octo@collectd.org>
a node.
Signed-off-by: Florian Forster <octo@collectd.org>
utils_avltree_test.c: Extend unit test to test c_avl_pick().
This demonstrates the bug that c_avl_pick() does not decrease the AVL
tree's size.
Issue: #1353
This demonstrates the bug that c_avl_pick() does not decrease the AVL
tree's size.
Issue: #1353
Remove duplicate call to pthread_mutex_destroy.
statsd plugin: Correctly free metrics at shutdown.
The previous shutdown handler leaked "timer" and "set" metrics. This is
not a huge problem in itself, as the daemon is exiting shortly after
anyway, but it makes debugging of memory leaks very hard.
Issue: #997
The previous shutdown handler leaked "timer" and "set" metrics. This is
not a huge problem in itself, as the daemon is exiting shortly after
anyway, but it makes debugging of memory leaks very hard.
Issue: #997
apache plugin: DRY: use macro to determine number of fields.
Add TLS support
addresses #1265
protect for newer libmosquitto
address octo's comments
addresses #1265
protect for newer libmosquitto
address octo's comments
apache: parse whole response, not only the first 16 lines
mod_status recently started reporting more statistics. According to
http://www.apache.org/dist/httpd/CHANGES_2.4 `mod_proxy, mod_ssl,
mod_cache_socache, mod_socache_*: Support machine readable server-status
produced when using the "?auto" query string.` for version 2.4.13
onwards.
As we can't assume everything we need will be included in the first 16
lines of output anymore, we now simply scan through the whole output.
mod_status recently started reporting more statistics. According to
http://www.apache.org/dist/httpd/CHANGES_2.4 `mod_proxy, mod_ssl,
mod_cache_socache, mod_socache_*: Support machine readable server-status
produced when using the "?auto" query string.` for version 2.4.13
onwards.
As we can't assume everything we need will be included in the first 16
lines of output anymore, we now simply scan through the whole output.
Remove POLLRDNORM (equivalent to POLLIN)
Checking for closed peer connection before send
Merge branch 'collectd-5.5'
Add utils_ignorelist back to daemon (#1323)
commit 216c6246b73645ac093de15b87aedc9abc6ebc80 moves the collectd
daemon files into the src/daemon/ directory, but also silently drops
utils_ignorelist. Dropping utils_ignorelist from the daemon has the
drawback that it cannot be used by plugins any more and that 16 plugins
need to bundle ignorelist.
Thus add utils_ignorelist back to the collectd daemon.
commit 216c6246b73645ac093de15b87aedc9abc6ebc80 moves the collectd
daemon files into the src/daemon/ directory, but also silently drops
utils_ignorelist. Dropping utils_ignorelist from the daemon has the
drawback that it cannot be used by plugins any more and that 16 plugins
need to bundle ignorelist.
Thus add utils_ignorelist back to the collectd daemon.
Merge branch 'collectd-5.4' into collectd-5.5
Fix clang complaining about extraneous parenthesis.
ASN_GAUGE (SNMP-SMIv2 Gauge32) is unsigned, not signed.
Start write threads after plugin initialization.
Some plugins such as "network" create own threads from within their
init callbacks which can then start submitting data to the queue
right away, even if the read threads haven't been started yet.
If write threads are started before plugin initialization, this can
result in a race where a plugin's write callback gets called before
that plugin's init callback has completed.
To fix this, delay starting the write threads until after all plugins
have been initialized.
Some plugins such as "network" create own threads from within their
init callbacks which can then start submitting data to the queue
right away, even if the read threads haven't been started yet.
If write threads are started before plugin initialization, this can
result in a race where a plugin's write callback gets called before
that plugin's init callback has completed.
To fix this, delay starting the write threads until after all plugins
have been initialized.
Merge branch 'collectd-5.4' into collectd-5.5
statsd: provide a gauge for counters, holding the absolute count.
When not using StoreRates false, this allows statsd aggregators
to hold on to the absolute count, if needed.
When not using StoreRates false, this allows statsd aggregators
to hold on to the absolute count, if needed.
Merge branch 'collectd-5.5'