Configparser: when we alocate an empty list, we also need to reset the counter; else we will trip over this later.
This fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=750440
Florian Forster [Wed, 15 Jan 2014 22:47:33 +0000 (23:47 +0100)]
apache plugin: Call curl_global_init() from the init function.
This is a shot in the dark in trying to address #513. By calling this
from an init() callback, I hope to be initializing the curl and gcrypt
libraries before collectd becomes multi-threaded, avoiding the problems
described in the issue.
A different fix for this problem was commited to the collectd-5.4 branch
(8327ee64) and conflicts with this patch. Also, initializing url the
same way as 8327ee64 does it, to avoid a merge conflict.
Marc Fournier [Tue, 7 Jan 2014 15:06:10 +0000 (16:06 +0100)]
interface.c: FreeBSD-10 support
Quoting @trtrmitya in github issue #506 : "[...] it is broken on
FreeBSD-10, in which getifaddrs() returns not only link level stats for
a particular interface, but also entries for each IP configured on that
interface. As a result if_submit() is called several times for each
interface, which results in incorrect data being logged.
I am attaching a patch which fixes a problem on FreeBSD (9/10), but it
should work for every *BSD because [...] the getifaddrs implementation
first appeared in BSDi BSD/OS."
Many thanks to @trtrmitya for providing the patch !
network plugin: Make sure gcrypt is initialized before using any of its functions.
@marekbecka found that sockent_open() is called during the configuration
phase, but gcrypt is initialized later, during the initialization phase.
This patch will initialize gcrypt in sockent_open() if any sockets with
security are configured.
- Java detection used TMPDIR as var to parse command output
- TMPDIR is used in libltdl later on in ./configure
- alternative fix is local var or subshell
- fixes issue introduced via #33163ee
Dan Fandrich [Mon, 4 Feb 2013 23:02:17 +0000 (00:02 +0100)]
curl_xml plugin: Fix potential dereference of NULL pointer.
I managed to get collectd to segfault in a couple of places while
playing with it a bit. The first is in the curl_xml module when the
XPATH expression doesn't quite match the input. The crash occurs on line
407 when instance_node->nodeTab[0] is dereferenced. At this point, all
members of instance_node are 0, so dereferencing the array isn't a good
idea. This patch fixes the problem, although I'm not sure if this
particular case actually deserves its own error message.
Ed Schouten [Fri, 16 Nov 2012 20:58:46 +0000 (21:58 +0100)]
src/network.c: Fix the build on FreeBSD.
<gcrypt.h> accepts a definition called GCRYPT_NO_DEPRECATED to disable
deprecated functionality. Unfortunately, this definition is not
sufficient to suppress all warnings. However, FreeBSD's version of
libgcrypt has been fixed to properly remove all deprecated features.
Florian Forster [Sun, 11 Nov 2012 09:57:55 +0000 (10:57 +0100)]
ping plugin: Don't abort the "ping_thread" when ping_send() fails.
This may happen when the network is down. If the thread fails, the read
callback will indicate an error and the exponential back-off will start.
This is not optimal for this scenario, since you usually want to have
ping stats from right when the network is back up.
Brian Aker [Fri, 26 Oct 2012 06:02:15 +0000 (02:02 -0400)]
1) Cleans up one configure.ac error AC_LINK_IFELSE requires AC_LANG_PROGRAM (or something similar) to get the setup right.
2) Fix for maintaier-clean so that you can run the autoreconf build script multiple times.
3) Clean up the generated man pages when running cleanup.
KIvosak [Sat, 13 Oct 2012 10:50:40 +0000 (12:50 +0200)]
Change the libnetlink function used to query link statistics to match iproute2's behavior and thus not trip on the kernel's new parsing of optional attributes for RTM_GETLINK.
Some MIBs use subtrees with an unusual OID naming schema. For example,
some network hardware encodes the MAC address in the last six parts of
the OID. Previously, the code only checked the last part of the OID
("sub-id") and assumed this was increasing. This assumption is not true
in such naming schemas and is not required by SNMP. This patch fixes
this behavior by comparing the entire "OID suffix".
Sebastian Harl [Wed, 13 Jun 2012 12:33:05 +0000 (14:33 +0200)]
bindings/Makefile: perl: Use INSTALL_BASE rather than PREFIX.
Some versions of Perl / ExtUtils::MakeMaker will else abort with an error
message explaining INSTALL_BASE and PREFIX may not be used both. However, I
don't know where the other definition comes from.
Dan Thomson [Fri, 7 Sep 2012 02:00:11 +0000 (19:00 -0700)]
snmp plugin: Fix error message printed by the "Shift" option.
I noticed a small error in snmp.c in collectd-5.1.0 (might be
elsewhere). The warning message in csnmp_config_add_data_shift says
"Scale config option" instead of "Shift" config option:
[…]
Bruno Prémont [Wed, 21 Mar 2012 20:34:00 +0000 (21:34 +0100)]
df plugin: when checking / do it just once
Newer system symlink /etc/mtab to /proc/mounts which makes root
filesystem seem mounted twice, once as type rootfs and once for the
real device.
When / is selected for df plugin, skip the rootfs mount-point as
real root is usually mounted right on top of it.
Not skipping it causes rrdtool to complain about two updates for the
same timestamp, the first entry for rootfs passes but rrdtool complains
when stats for the second occurrence for real filesystem is being
considered.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Florian Forster <octo@collectd.org>
Some implementations of SNMP will send a special "variable" when you're
leaving the requested subtree with type "endOfMibView" aka.
"SNMP_ENDOFMIBVIEW". Examples of such implementations are Citrix
Netscalers and IBM's General Parallel File System (GPFS). Reading past
this special variable will result in weird values being returned.
This adds an appropriate check to csnmp_check_res_left_subtree().
Thanks to "Mark" for reporting this issue and clarifying.
src/Makefile.am: Unconditionally link collectd with libm.
Under FreeBSD, running src/utils_format_json.c fails because isfinite()
cannot be resolved. The GNU manpages for isnan() and isfinite() also
advise users to link with libm and AIX has had the library being linked
in for a while. Since it's such a basic library it seems easier to just
link with it unconditionally.
Will Hawkins [Fri, 22 Jun 2012 18:45:45 +0000 (14:45 -0400)]
Fix out-of-bound index in rrdtool.c
Fix a reference to argv[1] that is (always?)
outside the bounds of the argv array. It happens
during a log statement that seems to want
to actually refer to the rrd filename.
Florian Forster [Thu, 31 May 2012 13:09:43 +0000 (15:09 +0200)]
src/utils_dns.c: Rename the "s_addr" and "d_addr" variables.
On Solaris, there is a macro called "s_addr" resulting in syntax errors
when this is used as a variable name. The variables have been renamed to
circumvent this problem. Thanks to Maciej Bliziński for reporting this
problem and helping to debug it!