am 4821d3bd: Merge "VpnService: stop VPN when unknown DNS servers show up." into honeycomb-LTE
* commit '4821d3bdf8ce35408c6a10fe45c39a5e701ea8e2':
VpnService: stop VPN when unknown DNS servers show up.
diff --git a/vpn/java/com/android/server/vpn/VpnService.java b/vpn/java/com/android/server/vpn/VpnService.java
index 4966c06..f94044c 100644
--- a/vpn/java/com/android/server/vpn/VpnService.java
+++ b/vpn/java/com/android/server/vpn/VpnService.java
@@ -325,7 +325,7 @@
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 @@
}
// 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() {