Sebastian Harl [Thu, 1 May 2008 23:13:24 +0000 (01:13 +0200)]
daemon: Ignore SIGPIPE.
The default action for the PIPE signal is to terminate the process. This
is not really what we want for collectd, as e.g. a client of the unixsock
plugin (which might even be running without root privileges) could kill
the daemon by closing the socket right after sending a request.
The signal now gets ignored and each I/O function is checked for success.
To simply that, the unixsock's output stream is now configured to be line
buffered, removing the need to call fflush() (which could fail as well and
would have to be checked for success).
While I was at it, I renamed the sigaction struct for SIGCHLD to fit the
coding style used elsewhere in collectd.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Thu, 1 May 2008 10:48:02 +0000 (12:48 +0200)]
Add libiptc.
libiptc is not meant to be a public interface by upstream. Debian has thus
removed it from all packages. To be able to use it, we need to take care
of it ourselves.
The configure script now checks, if libiptc is available and uses the
shipped version as a fallback.
The following changes to the libiptc sources were required:
* added copyright headers mentioning the "Netfilter Core Team" as author
* changed libiptc/* includes to * only
* made libiptc.c:standard_target_map() static
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Sat, 3 May 2008 21:17:10 +0000 (23:17 +0200)]
powerdns plugin: Replace the `Command' option with the `Collect' option.
The original code let the user define the command to use when querying the
server. This commit changes that and lets the user select the _values_ he's
interested in. Depending on whether an authorative server or a recursor is
collected this
- issues a `SHOW *' and manually greps the interesting pieces, or
- builds a command that requests only the interesting values.
Code compiles but it untested. Manpage not yet updated.
build system: Define HAVE_LIBSTATGRAB if the statgrab library is available.
This define is used in some plugins. Thanks to Oleg King for noticing and
pointing this out and thanks to Sebastian Harl for a first patch which,
unfortunately, doesn't work anymore after changing the configure script.
Sebastian Harl [Mon, 28 Apr 2008 14:53:57 +0000 (16:53 +0200)]
perl plugin: Work around a compiler warning on FreeBSD.
On FreeBSD, PERL_SYS_INIT3 expands to some expression which triggers a "value
computed is not used" warning by gcc. By telling the compiler to ignore this
value, we can work around this issue. In the long run, this should imho be
fixed in Perl though.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Sun, 27 Apr 2008 18:58:44 +0000 (20:58 +0200)]
email plugin: Simplified code.
While looking at the code for some reason, I decided to simplify and
improve large parts of it. Most notably, standard IO streams are now used
to read from the socket. This allowed to remove large parts of the code
which were used to read and buffer data from the socket so far.
Also among the changes:
* free any allocated memory
* added / improved log messages
* do not require euid == 0 to chown() the socket
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Sun, 27 Apr 2008 18:56:09 +0000 (20:56 +0200)]
perl plugin: Exported plugin_flush*() to Perl.
This adds the following functions to collectd's Perl API which flush the
given plugins using the given interval.
* Collectd::plugin_flush:
This function is a frontend to _flush_one() and _flush_all() and
expects up to two named parameters:
- timeout => $timeout
- name => $name or [ $name1, $name2, ... ]
* Collectd::plugin_flush_one:
This function expects exactly two parameters, namely the timeout and
the plugin name.
* Collectd::plugin_flush_all:
This function expects a single parameter, namely the timeout.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Sun, 27 Apr 2008 18:53:49 +0000 (20:53 +0200)]
perl plugin, Collectd.pm: Added support to flush Perl plugins.
Perl plugins may now register a callback of type Collectd::TYPE_FLUSH. A
single integer argument, representing the timeout in seconds, will be
passed to such callbacks.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Sun, 20 Apr 2008 21:21:50 +0000 (23:21 +0200)]
Collectd.pm: Fixed the check for complete function names in plugin_register.
plugin_register() checks if the registered function includes the plugin's
package name. Up to now, this check would also have succeeded if the
function name itself would be prepended by the package name. Now, the
check looks for the separator "::".
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
sensors plugin: Fix the return status of `sensors_snprintf_chip_name'.
The function should return <0 only if an error occured, but in two out of three
branches the initial status of -1 was not modified. This may have rendered the
sensors plugin unusable for some people.
Sebastian Harl [Wed, 16 Apr 2008 16:53:30 +0000 (18:53 +0200)]
configure: Build perl bindings only if a perl interpreter is available.
For this purpose a check for the perl interpreter has been added. As the
check for libperl requires a perl interpreter as well (to get the compiler
and linker flags) the perl module will be disabled as well if a perl
interpreter is not available.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@verplant.org>
src/utils_threshold.c: Check all matching thresholds and respect the data source setting.
This commit breaks up the original `ut_check_threshold' function into some
smaller functions which is much easier to read. Also adds some (hopefully)
informative comments that explain what the functions do.
The changes compile but have not yet been tested! Also, the
collectd.conf(5) manpage needs to be updated.
Stefan Hacker [Sun, 13 Apr 2008 09:27:34 +0000 (11:27 +0200)]
teamspeak2 plugin: Add collection of packet loss.
I added another interesting gauge to the sets of values which get fetched. The
average package loss in percent. I used the percent type from types.db...not
really intuitive when looking at the folders but it works. I also tried to add
something to the manpage...but I wasn't able to test it because the manpages
just don't install with make install...
Stefan Hacker [Sun, 13 Apr 2008 08:13:44 +0000 (10:13 +0200)]
teamspeak2 plugin: Flush the sending filehandle after writing to it.
The only real Problem I found is that you forgot to flush the outgoing buffer
after using fputs so nothing got sent. I added the fflush but now I'm not
really sure what would happen if sending failed....
The changes include:
- Use the ``tss2_'' prefix for all functions.
- Manage the global connection in two central functions rather than distribute
connection handling all over the place.
- Handle ``global'' and ``per server'' statistics in one function.
- Using `getaddrinfo' rather than `inet_addr' to allow for IPv6 connections.
- Some formatting.
"VerifyPeer" may be used to disable peer SSL certificate verification and
"VerifyHost" may be used to disable peer host name (as provided by the SSL
certificate's CA or SAN fields) verification.
Using both options is similar to curl's "--insecure" command line
option.
As requested by Joerg Jaspert.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Fri, 4 Apr 2008 20:05:48 +0000 (22:05 +0200)]
migrate-3-4.px: Use 'rrdtool tune' instead of 'sed' to rename DS's.
Either the output format of 'rrdtool dump' has changed or there was an
error in the regex used with sed in the first place. Anyway, in some cases
the 'if_octects' DS's did not get translated. 'rrdtool tune' should be
able to handle it correctly in any case.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Peter Holik [Tue, 1 Apr 2008 14:12:10 +0000 (16:12 +0200)]
exec plugin: Separate stdout and stderr.
Hi!
Digitemp sends errors to stderr, but collectd handles stdout and stderr
as the same and reports parsing errors.
My idea is to seperate stdout and stderr.
I also removed the special pipe handling checking for stdin...
because exec plugin will alway have a fd > 2 for pipes !!
(fd 0,1 and 2 (stdin, stdout, stderr) are used by collectd with /dev/null if demonized)