diff options
author | RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> | 2023-09-18 22:59:46 +0200 |
---|---|---|
committer | RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> | 2023-09-18 22:59:46 +0200 |
commit | 0e70e81133c25274fe2dd2309556b41357dd759b (patch) | |
tree | 9a680b36788ee1ad4e7ecc5ccfeb4494db9fdc72 /plugins/check_ntp.c | |
parent | ce355c80cf6054bfa5e1dcf81f9e2183ef963ee1 (diff) | |
parent | 2ddc75e69db5a3dd379c896d8420c9af20ec1cee (diff) | |
download | monitoring-plugins-0e70e81133c25274fe2dd2309556b41357dd759b.tar.gz |
Merge branch 'master' into mysql_detect_mysqldump
Diffstat (limited to 'plugins/check_ntp.c')
-rw-r--r-- | plugins/check_ntp.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/plugins/check_ntp.c b/plugins/check_ntp.c index 914b40ce..36146505 100644 --- a/plugins/check_ntp.c +++ b/plugins/check_ntp.c | |||
@@ -10,7 +10,7 @@ | |||
10 | * | 10 | * |
11 | * This file contains the check_ntp plugin | 11 | * This file contains the check_ntp plugin |
12 | * | 12 | * |
13 | * This plugin to check ntp servers independant of any commandline | 13 | * This plugin to check ntp servers independent of any commandline |
14 | * programs or external libraries. | 14 | * programs or external libraries. |
15 | * | 15 | * |
16 | * | 16 | * |
@@ -79,7 +79,7 @@ typedef struct { | |||
79 | /* this structure holds data about results from querying offset from a peer */ | 79 | /* this structure holds data about results from querying offset from a peer */ |
80 | typedef struct { | 80 | typedef struct { |
81 | time_t waiting; /* ts set when we started waiting for a response */ | 81 | time_t waiting; /* ts set when we started waiting for a response */ |
82 | int num_responses; /* number of successfully recieved responses */ | 82 | int num_responses; /* number of successfully received responses */ |
83 | uint8_t stratum; /* copied verbatim from the ntp_message */ | 83 | uint8_t stratum; /* copied verbatim from the ntp_message */ |
84 | double rtdelay; /* converted from the ntp_message */ | 84 | double rtdelay; /* converted from the ntp_message */ |
85 | double rtdisp; /* converted from the ntp_message */ | 85 | double rtdisp; /* converted from the ntp_message */ |
@@ -100,7 +100,7 @@ typedef struct { | |||
100 | /* NB: not necessarily NULL terminated! */ | 100 | /* NB: not necessarily NULL terminated! */ |
101 | } ntp_control_message; | 101 | } ntp_control_message; |
102 | 102 | ||
103 | /* this is an association/status-word pair found in control packet reponses */ | 103 | /* this is an association/status-word pair found in control packet responses */ |
104 | typedef struct { | 104 | typedef struct { |
105 | uint16_t assoc; | 105 | uint16_t assoc; |
106 | uint16_t status; | 106 | uint16_t status; |
@@ -355,7 +355,7 @@ int best_offset_server(const ntp_server_results *slist, int nservers){ | |||
355 | * - we also "manually" handle resolving host names and connecting, because | 355 | * - we also "manually" handle resolving host names and connecting, because |
356 | * we have to do it in a way that our lazy macros don't handle currently :( */ | 356 | * we have to do it in a way that our lazy macros don't handle currently :( */ |
357 | double offset_request(const char *host, int *status){ | 357 | double offset_request(const char *host, int *status){ |
358 | int i=0, j=0, ga_result=0, num_hosts=0, *socklist=NULL, respnum=0; | 358 | int i=0, ga_result=0, num_hosts=0, *socklist=NULL, respnum=0; |
359 | int servers_completed=0, one_read=0, servers_readable=0, best_index=-1; | 359 | int servers_completed=0, one_read=0, servers_readable=0, best_index=-1; |
360 | time_t now_time=0, start_ts=0; | 360 | time_t now_time=0, start_ts=0; |
361 | ntp_message *req=NULL; | 361 | ntp_message *req=NULL; |
@@ -488,7 +488,7 @@ double offset_request(const char *host, int *status){ | |||
488 | /* cleanup */ | 488 | /* cleanup */ |
489 | /* FIXME: Not closing the socket to avoid re-use of the local port | 489 | /* FIXME: Not closing the socket to avoid re-use of the local port |
490 | * which can cause old NTP packets to be read instead of NTP control | 490 | * which can cause old NTP packets to be read instead of NTP control |
491 | * pactets in jitter_request(). THERE MUST BE ANOTHER WAY... | 491 | * packets in jitter_request(). THERE MUST BE ANOTHER WAY... |
492 | * for(j=0; j<num_hosts; j++){ close(socklist[j]); } */ | 492 | * for(j=0; j<num_hosts; j++){ close(socklist[j]); } */ |
493 | free(socklist); | 493 | free(socklist); |
494 | free(ufds); | 494 | free(ufds); |
@@ -512,7 +512,7 @@ setup_control_request(ntp_control_message *p, uint8_t opcode, uint16_t seq){ | |||
512 | } | 512 | } |
513 | 513 | ||
514 | /* XXX handle responses with the error bit set */ | 514 | /* XXX handle responses with the error bit set */ |
515 | double jitter_request(const char *host, int *status){ | 515 | double jitter_request(int *status){ |
516 | int conn=-1, i, npeers=0, num_candidates=0, syncsource_found=0; | 516 | int conn=-1, i, npeers=0, num_candidates=0, syncsource_found=0; |
517 | int run=0, min_peer_sel=PEER_INCLUDED, num_selected=0, num_valid=0; | 517 | int run=0, min_peer_sel=PEER_INCLUDED, num_selected=0, num_valid=0; |
518 | int peers_size=0, peer_offset=0; | 518 | int peers_size=0, peer_offset=0; |
@@ -575,7 +575,7 @@ double jitter_request(const char *host, int *status){ | |||
575 | } | 575 | } |
576 | } | 576 | } |
577 | } | 577 | } |
578 | if(verbose) printf("%d candiate peers available\n", num_candidates); | 578 | if(verbose) printf("%d candidate peers available\n", num_candidates); |
579 | if(verbose && syncsource_found) printf("synchronization source found\n"); | 579 | if(verbose && syncsource_found) printf("synchronization source found\n"); |
580 | if(! syncsource_found){ | 580 | if(! syncsource_found){ |
581 | *status = STATE_UNKNOWN; | 581 | *status = STATE_UNKNOWN; |
@@ -597,7 +597,7 @@ double jitter_request(const char *host, int *status){ | |||
597 | /* By spec, putting the variable name "jitter" in the request | 597 | /* By spec, putting the variable name "jitter" in the request |
598 | * should cause the server to provide _only_ the jitter value. | 598 | * should cause the server to provide _only_ the jitter value. |
599 | * thus reducing net traffic, guaranteeing us only a single | 599 | * thus reducing net traffic, guaranteeing us only a single |
600 | * datagram in reply, and making intepretation much simpler | 600 | * datagram in reply, and making interpretation much simpler |
601 | */ | 601 | */ |
602 | /* Older servers doesn't know what jitter is, so if we get an | 602 | /* Older servers doesn't know what jitter is, so if we get an |
603 | * error on the first pass we redo it with "dispersion" */ | 603 | * error on the first pass we redo it with "dispersion" */ |
@@ -803,7 +803,7 @@ int main(int argc, char *argv[]){ | |||
803 | * (for example) will result in an error | 803 | * (for example) will result in an error |
804 | */ | 804 | */ |
805 | if(do_jitter){ | 805 | if(do_jitter){ |
806 | jitter=jitter_request(server_address, &jitter_result); | 806 | jitter=jitter_request(&jitter_result); |
807 | result = max_state_alt(result, get_status(jitter, jitter_thresholds)); | 807 | result = max_state_alt(result, get_status(jitter, jitter_thresholds)); |
808 | /* -1 indicates that we couldn't calculate the jitter | 808 | /* -1 indicates that we couldn't calculate the jitter |
809 | * Only overrides STATE_OK from the offset */ | 809 | * Only overrides STATE_OK from the offset */ |