|
@@ -2499,7 +2499,7 @@ resolv_conf_parse_line(char *const start, int flags) {
|
|
|
char *const first_token = strtok_r(start, delims, &strtok_state);
|
|
|
if (!first_token) return;
|
|
|
|
|
|
- if (!strcmp(first_token, "nameserver")) {
|
|
|
+ if (!strcmp(first_token, "nameserver") && (flags & DNS_OPTION_NAMESERVERS)) {
|
|
|
const char *const nameserver = NEXT_TOKEN;
|
|
|
struct in_addr ina;
|
|
|
|
|
@@ -2579,7 +2579,7 @@ evdns_resolv_conf_parse(int flags, const char *const filename) {
|
|
|
if (fstat(fd, &st)) { err = 2; goto out1; }
|
|
|
if (!st.st_size) {
|
|
|
evdns_resolv_set_defaults(flags);
|
|
|
- err = 0;
|
|
|
+ err = (flags & DNS_OPTION_NAMESERVERS) ? 6 : 0;
|
|
|
goto out1;
|
|
|
}
|
|
|
if (st.st_size > 65535) { err = 3; goto out1; } // no resolv.conf should be any bigger
|
|
@@ -2608,6 +2608,7 @@ evdns_resolv_conf_parse(int flags, const char *const filename) {
|
|
|
if (!server_head && (flags & DNS_OPTION_NAMESERVERS)) {
|
|
|
// no nameservers were configured.
|
|
|
evdns_nameserver_ip_add("127.0.0.1");
|
|
|
+ err = 6;
|
|
|
}
|
|
|
if (flags & DNS_OPTION_SEARCH && (!global_search_state || global_search_state->num_domains == 0)) {
|
|
|
search_set_from_hostname();
|