summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chia-chi Yeh <chiachi@android.com> 2011-07-11 10:25:28 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-07-11 10:25:28 -0700
commitebf0d2dd562492fc3c87f4c1676ca0416a83d9cc (patch)
tree3c3f64bce9fa84c2b84082927a245821c3e307de
parent8498b8681f44ee90dc3138395415fdd0eeecb176 (diff)
parentfa1bb594cc92e5c9384ed37e9ab0e1f227c50795 (diff)
Merge "VpnService: stop VPN when unknown DNS servers show up." into honeycomb-LTE
-rw-r--r--vpn/java/com/android/server/vpn/VpnService.java18
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 4966c060e5..f94044c113 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() {