Marc Fournier [Fri, 17 May 2013 11:13:43 +0000 (13:13 +0200)]
varnish: hint about missing <Instance> block
The warning when the Collect* configuration options where used outside
of an <Instance> block was confusing. This patch warns the user the same
way the apache plugin does.
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
This patch changes the snmp GETNEXT request behaviour implemented in snmp.c.
The old implementation requested all OIDs using GETNEXT requests until all OIDs
left their own subtree. In cases were trees in a Data template are much longer
than other trees the shorter subtrees were re-requested over and over again.
The new implementation will only request OIDs that did not already leave their
subtrees (see the oid_todo_list implementation for details). This renders the
function csnmp_check_res_left_subtree useless as the oid_todo_list keeps track
if all OIDs have finished.
During tests against Cat6500 (CatOS/IOS) as well as Nexus5k (NX-OS) it looks as
though GETNEXT requests (when requesting multiple OIDs like all 14 dot3Stats
errors from Etherlike-MIB) can take about 5-10ms (CatOS 30ms) longer if they wrap
to the next OID.
This does not sound much but when collecting data for the Etherlike-MIB (that only
has entries for physical interfaces) with a collectd "Instance" variable in IF-MIB
(that has entries for all physical as well as pseudo [SVIs, VLANs, ...] interfaces)
this can make a notable difference (e.g. for core routers that have all SVIs and
VLANs but only some switches attached):
After refactoring csnmp_read_table "Instance" and "Value" OIDs are now handled
consistently (so no pointer-forward foo needed). It doesn't change any logic
and data structures, though - so there should not be any impact to other
functions.
The refactored code also fixes GitHub bugs #235 and #258. This bug is due to
reusing the status variable in following code section which might lead to errors
if the subtrees are of different length:
1436 /* Calculate the current suffix. This is later used to check that the
1437 * suffix is increasing. This also checks if we left the subtree */
1438 status = csnmp_oid_suffix (&suffix, &vb_name, data->values + i);
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.
Florian Forster [Fri, 25 Jan 2013 13:48:29 +0000 (14:48 +0100)]
src/Makefile.am: Fix "make distcheck".
protoc-c has a weird handling of files not in the CWD: They have to be
specified with the "-I" option _and_ you need to specify the full path
to the file.
Florian Forster [Fri, 11 Jan 2013 18:45:43 +0000 (19:45 +0100)]
ethstat plugin: Fix the map lookup.
Previously, a pointer into the configuration structure was used to look
up the mappings. Because the configuration structure is freed or
otherwise modified, this does not work as intended (and may actually
lead to a segmentation fault when unlucky).
For completeness sake, a shutdown callback was added to free the used
memory on exit.
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.
The commit 3bda88e8b425f43644e303e6957e38ae59c1bc83 change the shell from sh to bash.
To fix the configure script generation error: remove the echo whith \c used in sh.
Note: bash is not installed in AIX by default. Signed-off-by: Florian Forster <octo@collectd.org>