summaryrefslogtreecommitdiffstats
path: root/plugins/check_ntp_time.d
diff options
context:
space:
mode:
authorLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2026-06-11 02:40:07 +0200
committerGitHub <noreply@github.com>2026-06-11 02:40:07 +0200
commit1372654e8a2d392db35aae8f62586d55319ccb3c (patch)
tree016ba24eda7a01d2b764c036e5e963493f1199f1 /plugins/check_ntp_time.d
parentcc8d5b55dea3862d274891c1e91804576006d28b (diff)
downloadmonitoring-plugins-1372654e8a2d392db35aae8f62586d55319ccb3c.tar.gz
Check ntp time delay (#2277)HEADmaster
* check_ntp_time: add polling delay NTP server can have rate limiting which might be triggered by check_ntp_time due to many requests in a short time span. This patch adds a default delay (of 0.5s) between requests to each server and a command line option (--poll-delay) to make this delay configurable. Co-authored-by: Lorenz Kästle <lorenz@vulgrim.de> * check_ntp_time: verify whether socket path fits into address struct check_ntp_time could be give a too long (>108 bytes) socket path to work with, which would potentially crash the program. This patch validates to length beforehand and stops execution in that case. Co-authored-by: Lorenz Kästle <lorenz@vulgrim.de> --------- Co-authored-by: Paul Crawford <paul@crawford-space.co.uk> Co-authored-by: Lorenz Kästle <lorenz@vulgrim.de>
Diffstat (limited to 'plugins/check_ntp_time.d')
-rw-r--r--plugins/check_ntp_time.d/config.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/plugins/check_ntp_time.d/config.h b/plugins/check_ntp_time.d/config.h
index 9bbd82aa..c1aa142c 100644
--- a/plugins/check_ntp_time.d/config.h
+++ b/plugins/check_ntp_time.d/config.h
@@ -5,6 +5,9 @@
5#include "thresholds.h" 5#include "thresholds.h"
6#include <stddef.h> 6#include <stddef.h>
7 7
8/* Time in microseconds to delay between polling to avoid a blocking response. */
9const long default_polling_delay = 500000L;
10
8typedef struct { 11typedef struct {
9 char *server_address; 12 char *server_address;
10 char *port; 13 char *port;
@@ -15,6 +18,7 @@ typedef struct {
15 mp_thresholds offset_thresholds; 18 mp_thresholds offset_thresholds;
16 19
17 bool output_format_is_set; 20 bool output_format_is_set;
21 long poll_delay;
18 mp_output_format output_format; 22 mp_output_format output_format;
19} check_ntp_time_config; 23} check_ntp_time_config;
20 24
@@ -29,6 +33,7 @@ check_ntp_time_config check_ntp_time_config_init() {
29 .offset_thresholds = mp_thresholds_init(), 33 .offset_thresholds = mp_thresholds_init(),
30 34
31 .output_format_is_set = false, 35 .output_format_is_set = false,
36 .poll_delay = default_polling_delay,
32 }; 37 };
33 38
34 mp_range warning = mp_range_init(); 39 mp_range warning = mp_range_init();