diff options
| author | 2011-07-11 10:29:32 -0700 | |
|---|---|---|
| committer | 2011-07-11 10:29:32 -0700 | |
| commit | 3b219a51a9d692807d3fb0f516df81609ca6e4fc (patch) | |
| tree | b4a54f1b777778cba4b4b4ac05e427441bd3d2bd | |
| parent | 0ddd99600675aaf5f514ac6bb30d345c4b66f8c2 (diff) | |
| parent | 4821d3bdf8ce35408c6a10fe45c39a5e701ea8e2 (diff) | |
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.
| -rw-r--r-- | vpn/java/com/android/server/vpn/VpnService.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/vpn/java/com/android/server/vpn/VpnService.java b/vpn/java/com/android/server/vpn/VpnService.java index 4966c060e52d..f94044c11357 100644 --- a/vpn/java/com/android/server/vpn/VpnService.java +++ b/vpn/java/com/android/server/vpn/VpnService.java @@ -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() { |