Also...
+ stop daemons before getting server IP;
+ remove setForeground();
+ add the DBG flag for Log.d calls.
PatchSet 3:
+ add CHALLENGE_ERROR and REMOTE_HUNG_UP to VpnManager
+ broadcast new error codes in VpnService
+ check local IP change instead of dns change
+ move removeStates() to VpnService.onFinalCleanUp()
PatchSet 7:
+ add encryption flag to PptpProfile
+ PptpService and MtpdHelper are revised accordingly
* 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.
* Changes
+ Add VpnConnectingError.java.
+ Broadcast the error returned by daemons.
+ Add error codes to VpnManager.java.
+ Add error code to VpnManager.broadcastConnectivity().
Patch Set 4:
+ Replace VPN_UP with VPN_STATUS in response to ip-up-vpn changes.
+ Make VpnServiceBinder a foreground service so that it won't be
interrupted by the system.
Patch Set 5:
+ Remove the support of returning 0 from daemon and restart socket in
AndroidServiceProxy.
* Changes
+ Add PptpProfile.java, PptpService.java.
+ Add L2tpIpsecPskProfile.java
+ Add PPTP and L2TP_IPSEC_PSK entries in VpnType.java.
+ Add the secret option to L2tpProfile.java and have L2tpIpsecProfile
extend it.
+ Add MtpdHelper to send common PPP options.
+ Add getGatewayIp() to VpnService().
+ Revise VpnService.reallyGetHostIp().
Patch Set 6, 7, 8:
+ Add L2TP secret flag in L2tpProfile.
Patch Set 9:
+ Add description to VpnType.
Patch Set 11:
+ Pass ipparam to mtpd.
Patch Set 12:
+ Add L2TP secret support
+ Fix string constants
+ Move mServerName from SingleServerProfile and VpnProfile.
+ Add mSavedUsername to VpnProfile.
+ Keep empty SingleServerProfile to not break the classes that use it.
+ Remove use of SingleServerProfile from VpnService.java.
Also add android.security.Keystore. This is a quick solution. Will be
evolved to a more mature implementation.
PATCH SET 2:
+ Add VpnServiceBinder to hide VpnService and its subclasses.
+ Add sendCommand2() to AndroidServiceProxy to work with the latest mtpd.
PATCH SET 3:
+ Rebase to catch up with new commits; no changes made.
PATCH SET 4:
+ Remove/comment out @Override on interface methods to be compilable for Java 1.5.
PATCH SET 5:
+ Add L2tpService.java.
+ Make VpnService to work on SingleServerProfile; add serverIp to
connect(); set system property "net.vpn.server_ip"; and move
getPppOptionFilePath() from L2tpIpsecService to VpnService
+ Revise VpnManager to start VpnService without worrying about which
type (as the type info is in VpnProfile)
+ Remove installation stuff from VpnManager
PATCH SET 6:
+ Fix PATCH SET 5 (the patch was messed up). Please ignore PATCH SET 5.
PATCH SET 7:
+ Fix styles.
PATCH SET 8:
+ Add CANCELLED to VpnState.
PATCH SET 9:
+ Make VpnProfile serializable (in order to save them to persistent storage)
PATCH SET 10:
+ Remove Keystore.java as it's added in another CL.