diff options
-rw-r--r-- | THANKS.in | 1 | ||||
-rw-r--r-- | plugins/check_dns.c | 22 |
2 files changed, 23 insertions, 0 deletions
@@ -328,3 +328,4 @@ Julius Kriukas | |||
328 | Patrick McAndrew | 328 | Patrick McAndrew |
329 | Alexander Wittig | 329 | Alexander Wittig |
330 | Jason Benguerel | 330 | Jason Benguerel |
331 | Matthew Kent | ||
diff --git a/plugins/check_dns.c b/plugins/check_dns.c index 31a953d..d7f7346 100644 --- a/plugins/check_dns.c +++ b/plugins/check_dns.c | |||
@@ -136,6 +136,28 @@ main (int argc, char **argv) | |||
136 | } | 136 | } |
137 | } | 137 | } |
138 | 138 | ||
139 | /* bug ID: 2946553 - Older versions of bind will use all available dns | ||
140 | servers, we have to match the one specified */ | ||
141 | if (strstr (chld_out.line[i], "Server:") && strlen(dns_server) > 0) { | ||
142 | temp_buffer = strchr (chld_out.line[i], ':'); | ||
143 | temp_buffer++; | ||
144 | |||
145 | /* Strip leading tabs */ | ||
146 | for (; *temp_buffer != '\0' && *temp_buffer == '\t'; temp_buffer++) | ||
147 | /* NOOP */; | ||
148 | |||
149 | strip(temp_buffer); | ||
150 | if (temp_buffer==NULL || strlen(temp_buffer)==0) { | ||
151 | die (STATE_CRITICAL, | ||
152 | _("DNS CRITICAL - '%s' returned empty server string\n"), | ||
153 | NSLOOKUP_COMMAND); | ||
154 | } | ||
155 | |||
156 | if (strcmp(temp_buffer, dns_server) != 0) { | ||
157 | die (STATE_CRITICAL, _("No response from DNS %s\n"), dns_server); | ||
158 | } | ||
159 | } | ||
160 | |||
139 | /* the server is responding, we just got the host name... */ | 161 | /* the server is responding, we just got the host name... */ |
140 | if (strstr (chld_out.line[i], "Name:")) | 162 | if (strstr (chld_out.line[i], "Name:")) |
141 | parse_address = TRUE; | 163 | parse_address = TRUE; |