summaryrefslogtreecommitdiffstats
path: root/web/attachments/163636-check_ntp.pl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'web/attachments/163636-check_ntp.pl.patch')
-rw-r--r--web/attachments/163636-check_ntp.pl.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/web/attachments/163636-check_ntp.pl.patch b/web/attachments/163636-check_ntp.pl.patch
new file mode 100644
index 0000000..3ce6b2a
--- /dev/null
+++ b/web/attachments/163636-check_ntp.pl.patch
@@ -0,0 +1,75 @@
1--- check_ntp.pl.dist 2006-01-16 17:56:25.835790000 +0100
2+++ check_ntp.pl 2006-01-16 20:17:39.345787000 +0100
3@@ -56,6 +56,12 @@
4 # changed ntpdc to ntpq - jitter/dispersion is in milliseconds
5 #
6 # Patch for for regex for stratum1 refid.
7+#
8+# Modified by Joachim Schrod <jschrod@acm.org>, 16 Jan 06:
9+# Support multiple peers, don't overwrite jitter value if one was found.
10+# ntpdate and ntpq may exit with non-zero status, then close() returns false.
11+# Support FQDN hostnames with one-letter components.
12+# Support unknown hosts.
13
14 require 5.004;
15 use POSIX;
16@@ -112,7 +118,7 @@
17 }
18
19 $opt_H = shift unless ($opt_H);
20-my $host = $1 if ($opt_H && $opt_H =~ m/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z][-a-zA-Z0-9]+(\.[a-zA-Z][-a-zA-Z0-9]+)*)$/);
21+my $host = $1 if ($opt_H && $opt_H =~ m/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|[a-zA-Z][-a-zA-Z0-9]*(\.[a-zA-Z][-a-zA-Z0-9]*)*)$/);
22 unless ($host) {
23 print "No target host specified\n";
24 print_usage();
25@@ -242,11 +248,15 @@
26 }
27 }
28
29+ if (/can\'t find host/) {
30+ $ntpdate_error = $ERRORS{"CRITICAL"};
31+ $msg = "Host not found - ";
32+ }
33+
34 }
35 $out =~ s/\n//g;
36-close (NTPDATE) ||
37- die $! ? "$out - Error closing $ntpdate pipe: $!"
38- : "$out - Exit status: $? from $ntpdate\n";
39+close (NTPDATE) or
40+ $! and die "$out - Error closing $ntpdate pipe: $!\n";
41
42 # declare an error if we also get a non-zero return code from ntpdate
43 # unless already set to critical
44@@ -314,13 +324,11 @@
45 }
46 } else {
47 print "No match!\n" if $verbose;
48- $jitter = '(not parsed)';
49 }
50
51 }
52- close NTPQ ||
53- die $! ? "Error closing $ntpq pipe: $!"
54- : "Exit status: $? from $ntpq\n";
55+ close NTPQ or
56+ $! and die "Error closing $ntpq pipe: $!\n";
57
58 # if we did not match sys.peer or pps.peer but matched # candidates only
59 # generate a warning
60@@ -428,7 +436,14 @@
61 foreach my $key (keys %ERRORS) {
62 if ($state==$ERRORS{$key}) {
63 # print ("NTP $key: $answer");
64- print ("NTP $key: $answer|offset=$offset, jitter=" . $jitter/1000 . ",peer_stratum=$stratum\n");
65+ defined($offset) or $offset = '-';
66+ defined($stratum) or $stratum = '-';
67+ if (defined($jitter)) {
68+ $jitter /= 1000;
69+ } else {
70+ $jitter = '-';
71+ }
72+ print ("NTP $key: $answer|offset=$offset, jitter=$jitter, peer_stratum=$stratum\n");
73 last;
74 }
75 }