Merge "Fix DnsResolver API could not bypass private DNS correctly"

This commit is contained in:
Luke Huang
2019-04-16 09:03:22 +00:00
committed by Gerrit Code Review

View File

@@ -197,7 +197,7 @@ public final class DnsResolver {
final FileDescriptor queryfd; final FileDescriptor queryfd;
try { try {
queryfd = resNetworkSend((network != null queryfd = resNetworkSend((network != null
? network.netId : NETID_UNSET), query, query.length, flags); ? network.getNetIdForResolv() : NETID_UNSET), query, query.length, flags);
} catch (ErrnoException e) { } catch (ErrnoException e) {
executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e))); executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e)));
return; return;
@@ -238,7 +238,7 @@ public final class DnsResolver {
final FileDescriptor queryfd; final FileDescriptor queryfd;
try { try {
queryfd = resNetworkQuery((network != null queryfd = resNetworkQuery((network != null
? network.netId : NETID_UNSET), domain, nsClass, nsType, flags); ? network.getNetIdForResolv() : NETID_UNSET), domain, nsClass, nsType, flags);
} catch (ErrnoException e) { } catch (ErrnoException e) {
executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e))); executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e)));
return; return;
@@ -346,7 +346,8 @@ public final class DnsResolver {
if (queryIpv6) { if (queryIpv6) {
try { try {
v6fd = resNetworkQuery((network != null v6fd = resNetworkQuery((network != null
? network.netId : NETID_UNSET), domain, CLASS_IN, TYPE_AAAA, flags); ? network.getNetIdForResolv() : NETID_UNSET),
domain, CLASS_IN, TYPE_AAAA, flags);
} catch (ErrnoException e) { } catch (ErrnoException e) {
executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e))); executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e)));
return; return;
@@ -365,7 +366,8 @@ public final class DnsResolver {
if (queryIpv4) { if (queryIpv4) {
try { try {
v4fd = resNetworkQuery((network != null v4fd = resNetworkQuery((network != null
? network.netId : NETID_UNSET), domain, CLASS_IN, TYPE_A, flags); ? network.getNetIdForResolv() : NETID_UNSET),
domain, CLASS_IN, TYPE_A, flags);
} catch (ErrnoException e) { } catch (ErrnoException e) {
if (queryIpv6) resNetworkCancel(v6fd); // Closes fd, marks it invalid. if (queryIpv6) resNetworkCancel(v6fd); // Closes fd, marks it invalid.
executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e))); executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e)));
@@ -423,7 +425,7 @@ public final class DnsResolver {
final FileDescriptor queryfd; final FileDescriptor queryfd;
try { try {
queryfd = resNetworkQuery((network != null queryfd = resNetworkQuery((network != null
? network.netId : NETID_UNSET), domain, CLASS_IN, nsType, flags); ? network.getNetIdForResolv() : NETID_UNSET), domain, CLASS_IN, nsType, flags);
} catch (ErrnoException e) { } catch (ErrnoException e) {
executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e))); executor.execute(() -> callback.onError(new DnsException(ERROR_SYSTEM, e)));
return; return;