aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ghciv6 <ghciv6@localhost> 2020-05-20 23:02:42 +0200
committerGravatar ghciv6 <ghciv6@localhost> 2020-05-20 23:02:42 +0200
commit905b09c38b6b8b08f0fe4a43b9b118366817bf0f (patch)
tree7f700a28e2f8c122e9052bc06ffaa9d4e90bd925
parent00948e95f43953359d3a9de6a9dc664723ad7374 (diff)
downloadmonitoring-plugins-905b09c38b6b8b08f0fe4a43b9b118366817bf0f.tar.gz
detect unreachable dns service in nslookup output (from bind-utils-9.8.2)
prevent core if error_scan detects an error in a line without ':'
-rw-r--r--plugins/check_dns.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/plugins/check_dns.c b/plugins/check_dns.c
index d4d0b885..b90f50e6 100644
--- a/plugins/check_dns.c
+++ b/plugins/check_dns.c
@@ -202,7 +202,10 @@ main (int argc, char **argv)
if (error_scan (chld_err.line[i]) != STATE_OK) {
result = max_state (result, error_scan (chld_err.line[i]));
msg = strchr(input_buffer, ':');
- if(msg) msg++;
+ if(msg)
+ msg++;
+ else
+ msg = input_buffer;
}
}
@@ -348,6 +351,8 @@ error_scan (char *input_buffer)
/* DNS server is not running... */
else if (strstr (input_buffer, "No response from server"))
die (STATE_CRITICAL, _("No response from DNS %s\n"), dns_server);
+ else if (strstr (input_buffer, "no servers could be reached"))
+ die (STATE_CRITICAL, _("No response from DNS %s\n"), dns_server);
/* Host name is valid, but server doesn't have records... */
else if (strstr (input_buffer, "No records"))