Change how DNS resolver handle no default iface

We used to just try any iface we'd been told about as a
fallback, but that will end up mistakenly using a secondary
network's dns when we really don't have a default connection.

It also messed up our detection of whether we were doing the
lookup on the default or not (we'd get back our secondary net
iface as the default, do the compare and think we were on default).

Remove the lies and let dns fail if we don't have an iface for it.

bug:10132565

Conflicts:
	libc/netbsd/resolv/res_cache.c

Change-Id: I357a9c34dad83215f44c5e0dd41ce2a7d6fe8f3f
This commit is contained in:
Robert Greenwalt
2013-08-22 16:56:48 -07:00
parent 9ef1fbb644
commit d67662b9d6
2 changed files with 13 additions and 15 deletions

View File

@@ -1874,10 +1874,10 @@ static bool _using_default_dns(const char *iface)
if (iface == NULL || *iface == '\0') return true;
if_len = _resolv_get_default_iface(buf, sizeof(buf));
if (if_len + 1 <= sizeof(buf)) {
if (strcmp(buf, iface) != 0) return false;
if (if_len != 0 && if_len + 1 <= sizeof(buf)) {
if (strcmp(buf, iface) == 0) return true;
}
return true;
return false;
}
/*ARGSUSED*/