From 8b1c57429806e1e98b77d38567956a0181f3d781 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Fri, 13 Sep 2013 15:36:10 +0200 Subject: fping: some fping versions set loss to 0% by mistake fping v2.4b2 returns 10.99.0.1 : xmt/rcv/%loss = 0/0/0% for a failed host, so we assume the host is down if xmt is zero --- plugins/check_fping.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'plugins/check_fping.c') diff --git a/plugins/check_fping.c b/plugins/check_fping.c index c7cce97d..dad000e6 100644 --- a/plugins/check_fping.c +++ b/plugins/check_fping.c @@ -177,8 +177,10 @@ textscan (char *buf) { char *rtastr = NULL; char *losstr = NULL; + char *xmtstr = NULL; double loss; double rta; + double xmt; int status = STATE_UNKNOWN; if (strstr (buf, "not found")) { @@ -230,7 +232,12 @@ textscan (char *buf) } else if(strstr (buf, "xmt/rcv/%loss") ) { /* no min/max/avg if host was unreachable in fping v2.2.b1 */ + /* in v2.4b2: 10.99.0.1 : xmt/rcv/%loss = 0/0/0% */ losstr = strstr (buf, "="); + xmtstr = 1 + losstr; + xmt = strtod (xmtstr, NULL); + if(xmt == 0) + die (STATE_CRITICAL, _("FPING CRITICAL - %s is down\n"), server_name); losstr = 1 + strstr (losstr, "/"); losstr = 1 + strstr (losstr, "/"); loss = strtod (losstr, NULL); -- cgit v1.2.3