summaryrefslogtreecommitdiffstats
path: root/web/attachments/246468-check_ntp_flags.patch
diff options
context:
space:
mode:
Diffstat (limited to 'web/attachments/246468-check_ntp_flags.patch')
-rw-r--r--web/attachments/246468-check_ntp_flags.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/web/attachments/246468-check_ntp_flags.patch b/web/attachments/246468-check_ntp_flags.patch
new file mode 100644
index 0000000..e659ec5
--- /dev/null
+++ b/web/attachments/246468-check_ntp_flags.patch
@@ -0,0 +1,47 @@
1*** nagios-plugins-1.4.9/plugins/check_ntp.c 2007-04-10 09:17:18.000000000 +0200
2--- nagios-plugins-1.4.9_flags/plugins/check_ntp.c 2007-09-20 15:14:54.000000000 +0200
3***************
4*** 86,91 ****
5--- 86,92 ----
6 double rtdelay; /* converted from the ntp_message */
7 double rtdisp; /* converted from the ntp_message */
8 double offset[AVG_NUM]; /* offsets from each response */
9+ uint8_t flags; /* byte with leapindicator,vers,mode. see macros */
10 } ntp_server_results;
11
12 /* this structure holds everything in an ntp control message as per rfc1305 */
13***************
14*** 302,307 ****
15--- 303,314 ----
16
17 /* for each server */
18 for(cserver=0; cserver<nservers; cserver++){
19+ /* sort out servers with error flags */
20+ if ( LI(slist[cserver].flags) != LI_NOWARNING ){
21+ if (verbose) printf("discarding peer id %d: flags=%d\n", cserver, LI(slist[cserver].flags));
22+ break;
23+ }
24+
25 /* compare it to each of the servers already in the candidate list */
26 for(i=0; i<csize; i++){
27 /* does it have an equal or better stratum? */
28***************
29*** 450,455 ****
30--- 457,463 ----
31 servers[i].rtdisp=NTP32asDOUBLE(req[i].rtdisp);
32 servers[i].rtdelay=NTP32asDOUBLE(req[i].rtdelay);
33 servers[i].waiting=0;
34+ servers[i].flags=req[i].flags;
35 servers_readable--;
36 one_read = 1;
37 if(servers[i].num_responses==AVG_NUM) servers_completed++;
38***************
39*** 808,813 ****
40--- 816,822 ----
41 }
42 if(offset_result==STATE_CRITICAL){
43 asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
44+ asprintf(&perfdata_line, "%s", "no perfdata");
45 } else {
46 if(offset_result==STATE_WARNING){
47 asprintf(&result_line, "%s %s", result_line, _("Unable to fully sample sync server"));