aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/check_dns.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/plugins/check_dns.c b/plugins/check_dns.c
index 6121af02..d96e9bbd 100644
--- a/plugins/check_dns.c
+++ b/plugins/check_dns.c
@@ -270,46 +270,42 @@ error_scan (char *input_buffer)
/* the DNS lookup timed out */
else if (strstr (input_buffer, "Timed out"))
- return STATE_WARNING;
+ terminate (STATE_WARNING, "Request timed out at server\n");
/* DNS server is not running... */
else if (strstr (input_buffer, "No response from server"))
- return STATE_CRITICAL;
+ terminate (STATE_CRITICAL, "No response from name server %s\n", dns_server);
/* Host name is valid, but server doesn't have records... */
else if (strstr (input_buffer, "No records"))
- return STATE_WARNING;
-
- /* Host or domain name does not exist */
- else if (strstr (input_buffer, "Non-existent"))
- return STATE_CRITICAL;
- else if (strstr (input_buffer, "** server can't find"))
- return STATE_CRITICAL;
- else if(strstr(input_buffer,"NXDOMAIN")) /* 9.x */
- return STATE_CRITICAL;
+ terminate (STATE_CRITICAL, "Name server %s has no records\n", dns_server);
/* Connection was refused */
- else if (strstr (input_buffer, "Connection refused"))
- return STATE_CRITICAL;
+ else if (strstr (input_buffer, "Connection refused") ||
+ (strstr (input_buffer, "** server can't find") &&
+ strstr (input_buffer, ": REFUSED")) ||
+ (strstr (input_buffer, "Refused")))
+ terminate (STATE_CRITICAL, "Connection to name server %s was refused\n", dns_server);
+
+ /* Host or domain name does not exist */
+ else if (strstr (input_buffer, "Non-existent") ||
+ strstr (input_buffer, "** server can't find") ||
+ strstr (input_buffer,"NXDOMAIN"))
+ terminate (STATE_CRITICAL, "Domain %s was not found by the server\n", query_address);
/* Network is unreachable */
else if (strstr (input_buffer, "Network is unreachable"))
- return STATE_CRITICAL;
+ terminate (STATE_CRITICAL, "Network is unreachable\n");
/* Internal server failure */
else if (strstr (input_buffer, "Server failure"))
- return STATE_CRITICAL;
-
- /* DNS server refused to service request */
- else if (strstr (input_buffer, "Refused"))
- return STATE_CRITICAL;
+ terminate (STATE_CRITICAL, "Server failure for %s\n", dns_server);
/* Request error */
else if (strstr (input_buffer, "Format error"))
- return STATE_WARNING;
+ terminate (STATE_WARNING, "Format error\n");
- else
- return STATE_OK;
+ return STATE_OK;
}