aboutsummaryrefslogtreecommitdiff
path: root/plugins/check_ntp_peer.c
diff options
context:
space:
mode:
authorGravatar Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> 2008-01-29 10:27:06 +0000
committerGravatar Thomas Guyot-Sionnest <dermoth@users.sourceforge.net> 2008-01-29 10:27:06 +0000
commite097ee6953c29a2ec9ddd550f347c74e64c60286 (patch)
tree8ec68fe0ead2727aebdb2adf00866cba7439607a /plugins/check_ntp_peer.c
parent5fcffd79783da265ff9b44f71e0d77c721578890 (diff)
downloadmonitoring-plugins-e097ee6953c29a2ec9ddd550f347c74e64c60286.tar.gz
check_ntp_peer now checks for the LI_ALARM flag
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1911 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins/check_ntp_peer.c')
-rw-r--r--plugins/check_ntp_peer.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/check_ntp_peer.c b/plugins/check_ntp_peer.c
index d1b8b27b..806123b9 100644
--- a/plugins/check_ntp_peer.c
+++ b/plugins/check_ntp_peer.c
@@ -63,6 +63,7 @@ static short do_jitter=0;
static char *jwarn="-1:5000";
static char *jcrit="-1:10000";
static int syncsource_found=0;
+static int li_alarm=0;
int process_arguments (int, char **);
thresholds *offset_thresholds = NULL;
@@ -267,6 +268,7 @@ int ntp_request(const char *host, double *offset, int *offset_result, double *ji
if(read(conn, &req, SIZEOF_NTPCM(req)) == -1)
die(STATE_CRITICAL, "NTP CRITICAL: No response from NTP server\n");
DBG(print_ntp_control_message(&req));
+ if (LI(req.flags) == LI_ALARM) li_alarm = 1;
/* Each peer identifier is 4 bytes in the data section, which
* we represent as a ntp_assoc_status_pair datatype.
*/
@@ -297,6 +299,10 @@ int ntp_request(const char *host, double *offset, int *offset_result, double *ji
status = STATE_WARNING;
if(verbose) printf("warning: no synchronization source found\n");
}
+ if(li_alarm){
+ status = STATE_WARNING;
+ if(verbose) printf("warning: LI_ALARM bit is set\n");
+ }
for (i = 0; i < npeers; i++){
@@ -597,7 +603,9 @@ int main(int argc, char *argv[]){
}
if(!syncsource_found)
asprintf(&result_line, "%s %s,", result_line, _("Server not synchronized"));
-
+ else if(li_alarm)
+ asprintf(&result_line, "%s %s,", result_line, _("Server has the LI_ALARM bit set"));
+
if(offset_result == STATE_UNKNOWN){
asprintf(&result_line, "%s %s", result_line, _("Offset unknown"));
asprintf(&perfdata_line, "");