Merge "Don't redirect dns to an iface without dns servers" into klp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
0fb5a4d8ca
@@ -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) {
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user