summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2009-07-14 16:19:17 +0800
committerHung-ying Tyan <tyanh@google.com>2009-07-14 16:29:22 +0800
commit85646c1df349c09bdab4daf87a59700a0eb9fa10 (patch)
tree04ea2219928115253fa0baeb83dc51befb57cfcf
parentc22ce6a738bbd757c71f8778defb015ea81ab33c (diff)
downloadframeworks_base-85646c1df349c09bdab4daf87a59700a0eb9fa10.zip
frameworks_base-85646c1df349c09bdab4daf87a59700a0eb9fa10.tar.gz
frameworks_base-85646c1df349c09bdab4daf87a59700a0eb9fa10.tar.bz2
Make VPN connect even when DNS is not present and other fixes.
* Changes: + As title. + Add two new states to VpnState: UNKNOWN and UNUSABLE. + Add more debug messages when stopping a service and when DNS being overridden.
-rw-r--r--packages/VpnServices/src/com/android/server/vpn/AndroidServiceProxy.java3
-rw-r--r--packages/VpnServices/src/com/android/server/vpn/VpnService.java10
-rw-r--r--vpn/java/android/net/vpn/VpnState.java7
3 files changed, 14 insertions, 6 deletions
diff --git a/packages/VpnServices/src/com/android/server/vpn/AndroidServiceProxy.java b/packages/VpnServices/src/com/android/server/vpn/AndroidServiceProxy.java
index 7e8185e..c6c9452 100644
--- a/packages/VpnServices/src/com/android/server/vpn/AndroidServiceProxy.java
+++ b/packages/VpnServices/src/com/android/server/vpn/AndroidServiceProxy.java
@@ -84,6 +84,7 @@ public class AndroidServiceProxy extends ProcessProxy {
throw new RuntimeException(e);
}
}
+ Log.d(mTag, "----- Stop: " + mServiceName);
SystemProperties.set(SVC_STOP_CMD, mServiceName);
}
@@ -105,7 +106,7 @@ public class AndroidServiceProxy extends ProcessProxy {
@Override
protected void performTask() throws IOException {
String svc = mServiceName;
- Log.d(mTag, "+++++ Execute: " + svc);
+ Log.d(mTag, "+++++ Start: " + svc);
SystemProperties.set(SVC_START_CMD, svc);
boolean success = blockUntil(SVC_STATE_RUNNING, WAITING_TIME);
diff --git a/packages/VpnServices/src/com/android/server/vpn/VpnService.java b/packages/VpnServices/src/com/android/server/vpn/VpnService.java
index b2a9445..26322f4 100644
--- a/packages/VpnServices/src/com/android/server/vpn/VpnService.java
+++ b/packages/VpnServices/src/com/android/server/vpn/VpnService.java
@@ -299,12 +299,12 @@ abstract class VpnService<E extends VpnProfile> {
private void saveVpnDnsProperties() {
mOriginalDns1 = mOriginalDns2 = "";
- for (int i = 0; i < 10; i++) {
+ for (int i = 0; i < 5; i++) {
mVpnDns1 = SystemProperties.get(VPN_DNS1);
mVpnDns2 = SystemProperties.get(VPN_DNS2);
if (mOriginalDns1.equals(mVpnDns1)) {
Log.d(TAG, "wait for vpn dns to settle in..." + i);
- sleep(500);
+ sleep(200);
} else {
mOriginalDns1 = SystemProperties.get(DNS1);
mOriginalDns2 = SystemProperties.get(DNS2);
@@ -317,7 +317,9 @@ abstract class VpnService<E extends VpnProfile> {
return;
}
}
- Log.e(TAG, "saveVpnDnsProperties(): DNS not updated??");
+ Log.d(TAG, "saveVpnDnsProperties(): DNS not updated??");
+ mOriginalDns1 = mVpnDns1 = SystemProperties.get(DNS1);
+ mOriginalDns2 = mVpnDns2 = SystemProperties.get(DNS2);
}
private void saveAndSetDomainSuffices() {
@@ -374,7 +376,7 @@ abstract class VpnService<E extends VpnProfile> {
private void checkDnsProperties() {
String dns1 = SystemProperties.get(DNS1);
if (!mVpnDns1.equals(dns1)) {
- Log.w(TAG, " @@ !!! dns being overridden");
+ Log.w(TAG, " dns being overridden by: " + dns1);
onError();
}
}
diff --git a/vpn/java/android/net/vpn/VpnState.java b/vpn/java/android/net/vpn/VpnState.java
index ebd9364..6e61f9c 100644
--- a/vpn/java/android/net/vpn/VpnState.java
+++ b/vpn/java/android/net/vpn/VpnState.java
@@ -26,8 +26,13 @@ package android.net.vpn;
* {@link DISCONNECTING} and then {@link IDLE}.
* {@link CANCELLED} is a state when a VPN connection attempt is aborted, and
* is in transition to {@link IDLE}.
+ * The {@link UNUSABLE} state indicates that the profile is not in a state for
+ * connecting due to possibly the integrity of the fields or another profile is
+ * connecting etc.
+ * The {@link UNKNOWN} state indicates that the profile state is to be
+ * determined.
* {@hide}
*/
public enum VpnState {
- CONNECTING, DISCONNECTING, CANCELLED, CONNECTED, IDLE
+ CONNECTING, DISCONNECTING, CANCELLED, CONNECTED, IDLE, UNUSABLE, UNKNOWN
}