summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 3d15563)
raw | patch | inline | side by side (parent: 3d15563)
author | octo <octo> | |
Sat, 21 Jan 2006 10:57:46 +0000 (10:57 +0000) | ||
committer | octo <octo> | |
Sat, 21 Jan 2006 10:57:46 +0000 (10:57 +0000) |
Ported improvements on ping-plugin from 3.6.0 to 3.5.2
Fixed typo in the signal handling..
Fixed typo in the signal handling..
ChangeLog | patch | blob | history | |
collectd.spec | patch | blob | history | |
configure.in | patch | blob | history | |
debian/changelog | patch | blob | history | |
src/collectd.c | patch | blob | history | |
src/ping.c | patch | blob | history |
diff --git a/ChangeLog b/ChangeLog
index a785e3b373123187c7389d8864081f9044fde2f0..4c42b007e7684ad1d76c4186c9e45cc5149421f8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2006-01-21, Version 3.5.2
+ * Fixed yet another bug in the signal handling.. Stupid typo..
+ * Improved the ping plugin to not give up on socket errors (backport
+ from 3.6.0).
+
2005-12-18, Version 3.5.1
* The PID-file is now deleted correctly when shutting down the daemon.
* SIGINT and SIGTERM are now handled correctly.
diff --git a/collectd.spec b/collectd.spec
index 0bc5bd2c22980ffcc3ad582db1bac1fa52a436e9..6e20862db41eecb9e94133138d64a93497ac3929 100644 (file)
--- a/collectd.spec
+++ b/collectd.spec
Summary: Statistics collection daemon for filling RRD files.
Name: collectd
-Version: 3.5.1
+Version: 3.5.2
Release: 1
Source: http://verplant.org/collectd/%{name}-%{version}.tar.gz
License: GPL
%attr(0444,root,root) %{_libdir}/%{name}/hddtemp.so*
%changelog
+* Sat Jan 21 2006 Florian octo Forster <octo@verplant.org> 3.5.2-1
+- New upstream version
+
* Wed Dec 07 2005 Florian octo Forster <octo@verplant.org> 3.5.0-1
- New upstream version
diff --git a/configure.in b/configure.in
index db2fdb5e3c4f324e19a37c910e777bbce0dbe06c..bed79f5e3352377161f429be6efc29f6228a91f2 100644 (file)
--- a/configure.in
+++ b/configure.in
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(collectd, 3.5.0)
+AC_INIT(collectd, 3.5.2)
AC_CONFIG_SRCDIR(src/collectd.c)
AC_CONFIG_HEADERS(src/config.h)
AM_INIT_AUTOMAKE(dist-bzip2)
diff --git a/debian/changelog b/debian/changelog
index 9488d3cf672a491f78c072164d3b4808cddb417a..97801ab3eb4eacf9a60b1f232c1ee4a8c3904fc4 100644 (file)
--- a/debian/changelog
+++ b/debian/changelog
+collectd (3.5.2-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Florian Forster <octo@verplant.org> Sat, 21 Jan 2006 11:55:49 +0200
+
collectd (3.5.1-1) unstable; urgency=low
* New upstream version
diff --git a/src/collectd.c b/src/collectd.c
index 4fdfcf100df2ebc966ac32f778d3fab3b1ee151d..97f1edce6d6afdd780d7e1e44090aa8ecbf5ff67 100644 (file)
--- a/src/collectd.c
+++ b/src/collectd.c
sigIntAction.sa_handler = sigIntHandler;
sigaction (SIGINT, &sigIntAction, NULL);
- sigIntAction.sa_handler = sigTermHandler;
+ sigTermAction.sa_handler = sigTermHandler;
sigaction (SIGTERM, &sigTermAction, NULL);
/*
diff --git a/src/ping.c b/src/ping.c
index d418232f1498ef5986e53021c6952f1d19cf4a38..32cfd29bebfd599f1d055ba8316c99225db8f0fa 100644 (file)
--- a/src/ping.c
+++ b/src/ping.c
#include <netinet/in.h>
#include "libping/ping.h"
-extern char *pinghosts[MAX_PINGHOSTS];
-extern int num_pinghosts;
-static int pingerrors[MAX_PINGHOSTS];
+static char *hosts[MAX_PINGHOSTS];
+static int hosts_flags[MAX_PINGHOSTS];
+static int hosts_disable[MAX_PINGHOSTS];
+static int hosts_backoff[MAX_PINGHOSTS];
+static int num_pinghosts;
static char *file_template = "ping-%s.rrd";
{
int i;
- for (i = 0; i < num_pinghosts; i++)
- pingerrors[i] = 0;
+ for (i = 0; i < MAX_PINGHOSTS; i++)
+ {
+ hosts_flags[i] = 0;
+ hosts_disable[i] = 0;
+ hosts_backoff[i] = 1;
+ }
return;
}
for (i = 0; i < num_pinghosts; i++)
{
- if (pingerrors[i] & 0x30)
+ if (hosts_disable[i] > 0)
+ {
+ hosts_disable[i]--;
continue;
+ }
- ping = tpinghost (pinghosts[i]);
+ ping = tpinghost (hosts[i]);
switch (ping)
{
case 0:
- if (!(pingerrors[i] & 0x01))
- syslog (LOG_WARNING, "ping %s: Connection timed out.", pinghosts[i]);
- pingerrors[i] |= 0x01;
+ if (!(hosts_flags[i] & 0x01))
+ syslog (LOG_WARNING, "ping %s: Connection timed out.", hosts[i]);
+ hosts_flags[i] |= 0x01;
break;
case -1:
- if (!(pingerrors[i] & 0x02))
- syslog (LOG_WARNING, "ping %s: Host or service is not reachable.", pinghosts[i]);
- pingerrors[i] |= 0x02;
+ if (!(hosts_flags[i] & 0x02))
+ syslog (LOG_WARNING, "ping %s: Host or service is not reachable.", hosts[i]);
+ hosts_flags[i] |= 0x02;
break;
case -2:
- syslog (LOG_ERR, "ping %s: Socket error. Ping will be disabled.", pinghosts[i]);
- pingerrors[i] |= 0x10;
+ syslog (LOG_ERR, "ping %s: Socket error. Ping will be disabled for %i iteration(s).",
+ hosts[i], hosts_backoff[i]);
+ hosts_disable[i] = hosts_backoff[i];
+ if (hosts_backoff[i] < 8192) /* 22 3/4 hours */
+ hosts_backoff[i] *= 2;
+ hosts_flags[i] |= 0x10;
break;
case -3:
- if (!(pingerrors[i] & 0x04))
- syslog (LOG_WARNING, "ping %s: Connection refused.", pinghosts[i]);
- pingerrors[i] |= 0x04;
+ if (!(hosts_flags[i] & 0x04))
+ syslog (LOG_WARNING, "ping %s: Connection refused.", hosts[i]);
+ hosts_flags[i] |= 0x04;
break;
default:
- if (pingerrors[i] != 0x00)
- syslog (LOG_NOTICE, "ping %s: Back to normal: %ims.", pinghosts[i], ping);
- pingerrors[i] = 0x00;
- ping_submit (ping, pinghosts[i]);
+ if (hosts_flags[i] != 0x00)
+ syslog (LOG_NOTICE, "ping %s: Back to normal: %ims.", hosts[i], ping);
+ hosts_flags[i] = 0x00;
+ hosts_backoff[i] = 1;
+ ping_submit (ping, hosts[i]);
} /* switch (ping) */
} /* for (i = 0; i < num_pinghosts; i++) */
}