VpnService: stop VPN when unknown DNS servers show up.
Bug: 5002601 Change-Id: I5459db009e7391ff874623cb1830065ac75c80ed
This commit is contained in:
parent
b30faa2e11
commit
fa1bb594cc
@ -325,7 +325,7 @@ abstract class VpnService<E extends VpnProfile> {
|
||||
|
||||
if (heavyCheck) {
|
||||
i = 10;
|
||||
if (checkConnectivity()) checkDns();
|
||||
checkConnectivity();
|
||||
}
|
||||
long t = 1000L - System.currentTimeMillis() + now;
|
||||
if (t > 100L) VpnService.this.wait(t);
|
||||
@ -356,22 +356,24 @@ abstract class VpnService<E extends VpnProfile> {
|
||||
}
|
||||
|
||||
// returns false if vpn connectivity is broken
|
||||
private boolean checkConnectivity() {
|
||||
if (mDaemons.anyDaemonStopped() || isLocalIpChanged()) {
|
||||
private void checkConnectivity() {
|
||||
if (mDaemons.anyDaemonStopped() || isLocalIpChanged() || isDnsChanged()) {
|
||||
onError(new IOException("Connectivity lost"));
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private void checkDns() {
|
||||
private boolean isDnsChanged() {
|
||||
String dns1 = SystemProperties.get(DNS1);
|
||||
String vpnDns1 = SystemProperties.get(VPN_DNS1);
|
||||
if (!dns1.equals(vpnDns1) && dns1.equals(mOriginalDns1)) {
|
||||
if (dns1.equals(vpnDns1)) {
|
||||
return false;
|
||||
}
|
||||
if (dns1.equals(mOriginalDns1)) {
|
||||
// dhcp expires?
|
||||
setVpnDns();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean isLocalIpChanged() {
|
||||
|
Loading…
Reference in New Issue
Block a user