diff options
| author | Arne Schwabe <arne@rfc2549.org> | 2012-06-27 23:01:24 +0200 | 
|---|---|---|
| committer | Arne Schwabe <arne@rfc2549.org> | 2012-06-27 23:01:24 +0200 | 
| commit | 7cb22c98cc326aceb6a9672ebddc6988703dc1c8 (patch) | |
| tree | cac8c9125e78bbb59a5ddf628b3742459602178c | |
| parent | ce20c72f201f6982cf0273aff4cab939abe08459 (diff) | |
| parent | 5428376e0d14bd128c2bdc5b50ab95c85321a517 (diff) | |
merge
| -rw-r--r-- | res/values/strings.xml | 1 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/ConfigParser.java | 16 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVPN.java | 27 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVpnService.java | 4 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/Settings_Basic.java | 2 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/VpnProfile.java | 24 | 
6 files changed, 51 insertions, 23 deletions
| diff --git a/res/values/strings.xml b/res/values/strings.xml index 2f827fe5..64b8e28b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -219,5 +219,6 @@      <string name="show_log_window">Show log window</string>      <string name="keppstatus_summary">Keep the notification displayed after the connection is established to show traffic statistics.</string>      <string name="keepstatus">Show Traffic Statistics</string> +    <string name="mobile_info">Running on %1$s (%2$s) %3$s, Android API %4$d</string>  </resources> diff --git a/src/de/blinkt/openvpn/ConfigParser.java b/src/de/blinkt/openvpn/ConfigParser.java index ea7d60e8..913fda24 100644 --- a/src/de/blinkt/openvpn/ConfigParser.java +++ b/src/de/blinkt/openvpn/ConfigParser.java @@ -216,16 +216,22 @@ public class ConfigParser {  			"ipchange",  			"route-up",  			"auth-user-pass-verify", -			"route-gateway", -			"topology", +			"dhcp-release", +			"dhcp-renew", +			"management-hold", +			"management", +			"management-query-passwords", +			"pause-exit",  			"persist-tun",  			"persist-key", +			"register-dns", +			"route-gateway",  			"route-metric", +			"route-method", +			"show-net-up",  			"suppress-timestamps", -			"management-query-passwords",  			"tmp-dir", -			"management-hold", -			"management" +			"topology",  	}; diff --git a/src/de/blinkt/openvpn/OpenVPN.java b/src/de/blinkt/openvpn/OpenVPN.java index c23ee56d..64ecf17c 100644 --- a/src/de/blinkt/openvpn/OpenVPN.java +++ b/src/de/blinkt/openvpn/OpenVPN.java @@ -4,9 +4,24 @@ import java.util.LinkedList;  import java.util.Vector;  import android.content.Context; +import android.os.Build;  public class OpenVPN { + +	public static LinkedList<LogItem> logbuffer; +	 +	private static Vector<LogListener> logListener; +	private static Vector<StateListener> stateListener; +	private static String[] mBconfig; +	 +	static { +		logbuffer  = new LinkedList<LogItem>(); +		logListener = new Vector<OpenVPN.LogListener>(); +		stateListener = new Vector<OpenVPN.StateListener>(); +		logInformation(); +	} +	  	static class LogItem {  		public static final int ERROR = 1;  		public static final int INFO = 2; @@ -68,11 +83,6 @@ public class OpenVPN { -	public static LinkedList<LogItem> logbuffer = new LinkedList<LogItem>(); -	 -	private static Vector<LogListener> logListener=new Vector<OpenVPN.LogListener>(); -	private static Vector<StateListener> stateListener=new Vector<OpenVPN.StateListener>(); -	private static String[] mBconfig;  	public interface LogListener {  		void newLog(LogItem logItem); @@ -90,6 +100,12 @@ public class OpenVPN {  	synchronized static void clearLog() {  		logbuffer.clear(); +		logInformation(); +	} + +	private static void logInformation() { +		 +		logInfo(R.string.mobile_info,Build.MODEL, Build.BOARD,Build.BRAND,Build.VERSION.SDK_INT);  	}  	synchronized static void addLogListener(LogListener ll){ @@ -110,7 +126,6 @@ public class OpenVPN {  	} -  	synchronized public static LogItem[] getlogbuffer() {  		// The stoned way of java to return an array from a vector diff --git a/src/de/blinkt/openvpn/OpenVpnService.java b/src/de/blinkt/openvpn/OpenVpnService.java index 6cf1e42a..3c836afa 100644 --- a/src/de/blinkt/openvpn/OpenVpnService.java +++ b/src/de/blinkt/openvpn/OpenVpnService.java @@ -19,10 +19,7 @@ package de.blinkt.openvpn;  import java.io.IOException;  import java.util.Vector; -import de.blinkt.openvpn.OpenVPN.StateListener; -  import android.app.Notification; -import android.app.Notification.Builder;  import android.app.NotificationManager;  import android.app.PendingIntent;  import android.content.Context; @@ -35,6 +32,7 @@ import android.net.LocalSocketAddress;  import android.net.VpnService;  import android.os.ParcelFileDescriptor;  import android.preference.PreferenceManager; +import de.blinkt.openvpn.OpenVPN.StateListener;  public class OpenVpnService extends VpnService implements StateListener {  	private Thread mServiceThread; diff --git a/src/de/blinkt/openvpn/Settings_Basic.java b/src/de/blinkt/openvpn/Settings_Basic.java index 1b82b579..0bf3078a 100644 --- a/src/de/blinkt/openvpn/Settings_Basic.java +++ b/src/de/blinkt/openvpn/Settings_Basic.java @@ -39,8 +39,6 @@ import android.widget.EditText;  import android.widget.Spinner;  import android.widget.TextView;  import android.widget.ToggleButton; - -  import de.blinkt.openvpn.R.id;  public class Settings_Basic extends Fragment implements View.OnClickListener, OnItemSelectedListener, Callback { diff --git a/src/de/blinkt/openvpn/VpnProfile.java b/src/de/blinkt/openvpn/VpnProfile.java index 7ca75723..dd729a06 100644 --- a/src/de/blinkt/openvpn/VpnProfile.java +++ b/src/de/blinkt/openvpn/VpnProfile.java @@ -28,7 +28,6 @@ import android.content.Intent;  import android.content.pm.ApplicationInfo;  import android.security.KeyChain;  import android.security.KeyChainException; -import android.util.Log;  public class VpnProfile implements  Serializable{  	// Parcable @@ -262,11 +261,14 @@ public class VpnProfile implements  Serializable{  		if(mUsePull && mRoutenopull)  			cfg += "route-nopull\n"; +		String routes = ""; +		int numroutes=0;  		if(mUseDefaultRoute) -			cfg += "route 0.0.0.0 0.0.0.0\n"; +			routes += "route 0.0.0.0 0.0.0.0\n";  		else  			for(String route:getCustomRoutes()) { -				cfg += "route " + route + "\n"; +				routes += "route " + route + "\n"; +				numroutes++;  			} @@ -274,9 +276,18 @@ public class VpnProfile implements  Serializable{  			cfg += "route-ipv6 ::/0\n";  		else  			for(String route:getCustomRoutesv6()) { -				cfg += "route-ipv6 " + route + "\n"; +				routes += "route-ipv6 " + route + "\n"; +				numroutes++;  			} +		// Round number to next 100  +		if(numroutes> 90) { +			numroutes = ((numroutes / 100)+1) * 100; +			cfg+="# Alot of routes are set, increase max-routes\n"; +			cfg+="max-routes " + numroutes + "\n"; +		} +		cfg+=routes; +		  		if(mOverrideDNS || !mUsePull) {  			if(nonNull(mDNS1))  				cfg+="dhcp-option DNS " + mDNS1 + "\n"; @@ -386,9 +397,9 @@ public class VpnProfile implements  Serializable{  	private String cidrToIPAndNetmask(String route) {  		String[] parts = route.split("/"); -		// No /xx, return verbatim +		// No /xx, assume /32 as netmask  		if (parts.length ==1) -			return route; +			parts = (route + "/32").split("/");  		if (parts.length!=2)  			return null; @@ -481,7 +492,6 @@ public class VpnProfile implements  Serializable{  			cachain = KeyChain.getCertificateChain(context, mAlias);  			if(cachain.length <= 1 && !nonNull(mCaFilename))  				OpenVPN.logMessage(0, "", context.getString(R.string.keychain_nocacert)); -  			for(X509Certificate cert:cachain) {  				OpenVPN.logInfo(R.string.cert_from_keystore,cert.getSubjectDN()); | 
