Code

terminate in error_scan() so meaningfull errors can be sent
[nagiosplug.git] / plugins / check_dns.c
index d754610671420e44dd8d873c059d264c10bb40af..d96e9bbdc4c3df203b6c130822d393a7bfff3b0f 100644 (file)
@@ -263,53 +263,49 @@ error_scan (char *input_buffer)
 {
 
        /* the DNS lookup timed out */
-       if (strstr (input_buffer,       _("Note:  nslookup is deprecated and may be removed from future releases.")) ||
-           strstr (input_buffer, _("Consider using the `dig' or `host' programs instead.  Run nslookup with")) ||
-           strstr (input_buffer, _("the `-sil[ent]' option to prevent this message from appearing.")))
+       if (strstr (input_buffer,       "Note:  nslookup is deprecated and may be removed from future releases.") ||
+           strstr (input_buffer, "Consider using the `dig' or `host' programs instead.  Run nslookup with") ||
+           strstr (input_buffer, "the `-sil[ent]' option to prevent this message from appearing."))
                return STATE_OK;
 
        /* the DNS lookup timed out */
-       else if (strstr (input_buffer, _("Timed out")))
-               return STATE_WARNING;
+       else if (strstr (input_buffer, "Timed out"))
+               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;
+       else if (strstr (input_buffer, "No response from server"))
+               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;
+       else if (strstr (input_buffer, "No records"))
+               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;
+       else if (strstr (input_buffer, "Network is unreachable"))
+               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;
+       else if (strstr (input_buffer, "Server failure"))
+               terminate (STATE_CRITICAL, "Server failure for %s\n", dns_server);
 
        /* Request error */
-       else if (strstr (input_buffer, _("Format error")))
-               return STATE_WARNING;
+       else if (strstr (input_buffer, "Format error"))
+               terminate (STATE_WARNING, "Format error\n");
 
-       else
-               return STATE_OK;
+       return STATE_OK;
 
 }