diff options
-rw-r--r-- | plugins/check_dns.c | 40 |
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; } |