Loading services/java/com/android/server/ConnectivityService.java +11 −9 Original line number Diff line number Diff line Loading @@ -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); } } Loading Loading @@ -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) { } Loading services/java/com/android/server/connectivity/Vpn.java +14 −4 Original line number Diff line number Diff line Loading @@ -242,9 +242,11 @@ public class Vpn extends BaseNetworkStateTracker { try { mCallback.restore(); final int size = mVpnUsers.size(); final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); for (int i = 0; i < size; i++) { int user = mVpnUsers.keyAt(i); mCallback.clearUserForwarding(mInterface, user); mCallback.clearUserForwarding(mInterface, user, forwardDns); hideNotification(user); } Loading Loading @@ -443,8 +445,12 @@ public class Vpn extends BaseNetworkStateTracker { if (!isRunningLocked()) { throw new IllegalStateException("VPN is not active"); } final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); // add the user mCallback.addUserForwarding(mInterface, user); mCallback.addUserForwarding(mInterface, user, forwardDns); mVpnUsers.put(user, true); // show the notification Loading Loading @@ -484,7 +490,9 @@ public class Vpn extends BaseNetworkStateTracker { if (!isRunningLocked()) { throw new IllegalStateException("VPN is not active"); } mCallback.clearUserForwarding(mInterface, user); final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); mCallback.clearUserForwarding(mInterface, user, forwardDns); mVpnUsers.delete(user); hideNotification(user); } Loading Loading @@ -553,9 +561,11 @@ public class Vpn extends BaseNetworkStateTracker { final long token = Binder.clearCallingIdentity(); try { final int size = mVpnUsers.size(); final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); for (int i = 0; i < size; i++) { int user = mVpnUsers.keyAt(i); mCallback.clearUserForwarding(mInterface, user); mCallback.clearUserForwarding(mInterface, user, forwardDns); hideNotification(user); } mVpnUsers = null; Loading Loading
services/java/com/android/server/ConnectivityService.java +11 −9 Original line number Diff line number Diff line Loading @@ -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); } } Loading Loading @@ -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) { } Loading
services/java/com/android/server/connectivity/Vpn.java +14 −4 Original line number Diff line number Diff line Loading @@ -242,9 +242,11 @@ public class Vpn extends BaseNetworkStateTracker { try { mCallback.restore(); final int size = mVpnUsers.size(); final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); for (int i = 0; i < size; i++) { int user = mVpnUsers.keyAt(i); mCallback.clearUserForwarding(mInterface, user); mCallback.clearUserForwarding(mInterface, user, forwardDns); hideNotification(user); } Loading Loading @@ -443,8 +445,12 @@ public class Vpn extends BaseNetworkStateTracker { if (!isRunningLocked()) { throw new IllegalStateException("VPN is not active"); } final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); // add the user mCallback.addUserForwarding(mInterface, user); mCallback.addUserForwarding(mInterface, user, forwardDns); mVpnUsers.put(user, true); // show the notification Loading Loading @@ -484,7 +490,9 @@ public class Vpn extends BaseNetworkStateTracker { if (!isRunningLocked()) { throw new IllegalStateException("VPN is not active"); } mCallback.clearUserForwarding(mInterface, user); final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); mCallback.clearUserForwarding(mInterface, user, forwardDns); mVpnUsers.delete(user); hideNotification(user); } Loading Loading @@ -553,9 +561,11 @@ public class Vpn extends BaseNetworkStateTracker { final long token = Binder.clearCallingIdentity(); try { final int size = mVpnUsers.size(); final boolean forwardDns = (mConfig.dnsServers != null && mConfig.dnsServers.size() != 0); for (int i = 0; i < size; i++) { int user = mVpnUsers.keyAt(i); mCallback.clearUserForwarding(mInterface, user); mCallback.clearUserForwarding(mInterface, user, forwardDns); hideNotification(user); } mVpnUsers = null; Loading