From b87ab962952486458fd6297f1c349b6f24ce8040 Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Tue, 24 Sep 2013 11:05:57 -0700 Subject: [PATCH] Don't redirect dns to an iface without dns servers bug:10115444 Change-Id: Ide42072bb3aae21f8e99c11c2de263e9a765b911 --- .../android/server/ConnectivityService.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 3f13f3acf5..56d50103a5 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -2794,7 +2794,7 @@ public class ConnectivityService extends IConnectivityManager.Stub { } mNumDnsEntries = last; } catch (Exception e) { - if (DBG) loge("exception setting default dns interface: " + e); + loge("exception setting default dns interface: " + e); } } @@ -3779,31 +3779,33 @@ public class ConnectivityService extends IConnectivityManager.Stub { } } - public void addUserForwarding(String interfaze, int uid) { + public void addUserForwarding(String interfaze, int uid, boolean forwardDns) { int uidStart = uid * UserHandle.PER_USER_RANGE; int uidEnd = uidStart + UserHandle.PER_USER_RANGE - 1; - addUidForwarding(interfaze, uidStart, uidEnd); + addUidForwarding(interfaze, uidStart, uidEnd, forwardDns); } - public void clearUserForwarding(String interfaze, int uid) { + public void clearUserForwarding(String interfaze, int uid, boolean forwardDns) { int uidStart = uid * UserHandle.PER_USER_RANGE; int uidEnd = uidStart + UserHandle.PER_USER_RANGE - 1; - clearUidForwarding(interfaze, uidStart, uidEnd); + clearUidForwarding(interfaze, uidStart, uidEnd, forwardDns); } - public void addUidForwarding(String interfaze, int uidStart, int uidEnd) { + public void addUidForwarding(String interfaze, int uidStart, int uidEnd, + boolean forwardDns) { try { mNetd.setUidRangeRoute(interfaze,uidStart, uidEnd); - mNetd.setDnsInterfaceForUidRange(interfaze, uidStart, uidEnd); + if (forwardDns) mNetd.setDnsInterfaceForUidRange(interfaze, uidStart, uidEnd); } catch (RemoteException e) { } } - public void clearUidForwarding(String interfaze, int uidStart, int uidEnd) { + public void clearUidForwarding(String interfaze, int uidStart, int uidEnd, + boolean forwardDns) { try { mNetd.clearUidRangeRoute(interfaze, uidStart, uidEnd); - mNetd.clearDnsInterfaceForUidRange(uidStart, uidEnd); + if (forwardDns) mNetd.clearDnsInterfaceForUidRange(uidStart, uidEnd); } catch (RemoteException e) { }