From 0b6423f9c99d9edf8c96fefd0f6c453859395aa1 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 30 Sep 2013 00:03:24 +0200 Subject: Import Nagios Plugins site Import the Nagios Plugins web site, Cronjobs, infrastructure scripts, and configuration files. --- web/attachments/266554-ping-sscanf.diff | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 web/attachments/266554-ping-sscanf.diff (limited to 'web/attachments/266554-ping-sscanf.diff') diff --git a/web/attachments/266554-ping-sscanf.diff b/web/attachments/266554-ping-sscanf.diff new file mode 100644 index 0000000..dd16d4b --- /dev/null +++ b/web/attachments/266554-ping-sscanf.diff @@ -0,0 +1,57 @@ +--- plugins/check_ping.c~ ++++ plugins/check_ping.c +@@ -424,6 +424,7 @@ + { + char buf[MAX_INPUT_BUFFER]; + int result = STATE_UNKNOWN; ++ int match; + + if ((child_process = spopen (cmd)) == NULL) + die (STATE_UNKNOWN, _("Could not open pipe: %s\n"), cmd); +@@ -440,28 +441,29 @@ + result = max_state (result, error_scan (buf, addr)); + + /* get the percent loss statistics */ +- if(sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d errors, %d%% packet loss",&pl)==1 || +- sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d duplicates, %d%% packet loss", &pl) == 1 || +- sscanf(buf,"%*d packets transmitted, %*d received, +%*d duplicates, %d%% packet loss", &pl) == 1 || +- sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% packet loss",&pl)==1 || +- sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% loss, time",&pl)==1 || +- sscanf(buf,"%*d packets transmitted, %*d received, %d%% loss, time", &pl)==1 || +- sscanf(buf,"%*d packets transmitted, %*d received, %d%% packet loss, time", &pl)==1 || +- sscanf(buf,"%*d packets transmitted, %*d received, +%*d errors, %d%% packet loss", &pl) == 1 || +- sscanf(buf,"%*d packets transmitted %*d received, +%*d errors, %d%% packet loss", &pl) == 1 ++ match = 0; ++ if((sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d errors, %d%% packet loss%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d packets received, +%*d duplicates, %d%% packet loss%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d received, +%*d duplicates, %d%% packet loss%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% packet loss%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d packets received, %d%% loss, time%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d received, %d%% loss, time%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d received, %d%% packet loss, time%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted, %*d received, +%*d errors, %d%% packet loss%n",&pl,&match) && match) || ++ (sscanf(buf,"%*d packets transmitted %*d received, +%*d errors, %d%% packet loss%n",&pl,&match) && match) + ) + continue; + + /* get the round trip average */ + else +- if(sscanf(buf,"round-trip min/avg/max = %*f/%f/%*f",&rta)==1 || +- sscanf(buf,"round-trip min/avg/max/mdev = %*f/%f/%*f/%*f",&rta)==1 || +- sscanf(buf,"round-trip min/avg/max/sdev = %*f/%f/%*f/%*f",&rta)==1 || +- sscanf(buf,"round-trip min/avg/max/stddev = %*f/%f/%*f/%*f",&rta)==1 || +- sscanf(buf,"round-trip min/avg/max/std-dev = %*f/%f/%*f/%*f",&rta)==1 || +- sscanf(buf,"round-trip (ms) min/avg/max = %*f/%f/%*f",&rta)==1 || +- sscanf(buf,"round-trip (ms) min/avg/max/stddev = %*f/%f/%*f/%*f",&rta)==1 || +- sscanf(buf,"rtt min/avg/max/mdev = %*f/%f/%*f/%*f ms",&rta)==1) ++ if((sscanf(buf,"round-trip min/avg/max = %*f/%f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"round-trip min/avg/max/mdev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"round-trip min/avg/max/sdev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"round-trip min/avg/max/stddev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"round-trip min/avg/max/std-dev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"round-trip (ms) min/avg/max = %*f/%f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"round-trip (ms) min/avg/max/stddev = %*f/%f/%*f/%*f%n",&rta,&match) && match) || ++ (sscanf(buf,"rtt min/avg/max/mdev = %*f/%f/%*f/%*f ms%n",&rta,&match) && match)) + continue; + } + -- cgit v1.2.3-74-g34f1