diff options
| author | Arne Schwabe <arne@rfc2549.org> | 2013-02-26 23:12:44 +0100 | 
|---|---|---|
| committer | Arne Schwabe <arne@rfc2549.org> | 2013-02-26 23:12:44 +0100 | 
| commit | 428ef31f6a1de54cd6e3c20264f5ab411a076aaa (patch) | |
| tree | 1ef2ebe6b3364529d712efe27a0eef8e55744dbb | |
| parent | bab6645cfb1eb9321e67482d862314a1dbf14f95 (diff) | |
Refactor ConnectionStatus to be an enumerationv0.5.32
--HG--
extra : rebase_source : 6cf34d83b33bdb25d2311ad9adaa446ac0aac823
| -rwxr-xr-x | res/values/strings.xml | 2 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/LogWindow.java | 3 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVPN.java | 93 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVPNThread.java | 3 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVpnManagementThread.java | 6 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVpnService.java | 13 | 
6 files changed, 66 insertions, 54 deletions
| diff --git a/res/values/strings.xml b/res/values/strings.xml index b1e95b1e..6588a69b 100755 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -270,4 +270,4 @@      <string name="debug_build">debug build</string>      <string name="official_build">official build</string> -</resources>
\ No newline at end of file +</resources> diff --git a/src/de/blinkt/openvpn/LogWindow.java b/src/de/blinkt/openvpn/LogWindow.java index c7bbe6ac..151b2c5b 100644 --- a/src/de/blinkt/openvpn/LogWindow.java +++ b/src/de/blinkt/openvpn/LogWindow.java @@ -34,6 +34,7 @@ import android.widget.ListAdapter;  import android.widget.ListView;  import android.widget.TextView;  import android.widget.Toast; +import de.blinkt.openvpn.OpenVPN.ConnectionStatus;  import de.blinkt.openvpn.OpenVPN.LogItem;  import de.blinkt.openvpn.OpenVPN.LogListener;  import de.blinkt.openvpn.OpenVPN.StateListener; @@ -404,7 +405,7 @@ public class LogWindow extends ListActivity implements StateListener  {  	}  	@Override -	public void updateState(final String status,final String logmessage, final int resid, final int level) { +	public void updateState(final String status,final String logmessage, final int resid, final ConnectionStatus level) {  		runOnUiThread(new Runnable() {  			@Override diff --git a/src/de/blinkt/openvpn/OpenVPN.java b/src/de/blinkt/openvpn/OpenVPN.java index 0dc5a871..4d5ae269 100644 --- a/src/de/blinkt/openvpn/OpenVPN.java +++ b/src/de/blinkt/openvpn/OpenVPN.java @@ -40,21 +40,28 @@ public class OpenVPN {  	private static long mlastByteCount[]={0,0,0,0}; -	 -	static final int LEVEL_NONETWORK = 3; -	static final int LEVEL_NOTCONNECTED = 4; -	public static final int LEVEL_AUTH_FAILED = 5; -	static final int LEVEL_CONNECTING_SERVER_REPLIED = 1; -	static final int LEVEL_CONNECTING_NO_SERVER_REPLY_YET = 2; -	static final int LEVEL_CONNECTED = 0; +	public enum ConnectionStatus { +		LEVEL_NONETWORK (3), +		LEVEL_NOTCONNECTED  (4), +		LEVEL_AUTH_FAILED ( 5), +		LEVEL_CONNECTING_SERVER_REPLIED ( 1), +		LEVEL_CONNECTING_NO_SERVER_REPLY_YET (2), +		LEVEL_CONNECTED (0), UNKNOWN_LEVEL(-1); + +		public final int level; + +		ConnectionStatus(int level){ +			this.level = level; +		} +	}  	public static final byte[] officalkey = {-58, -42, -44, -106, 90, -88, -87, -88, -52, -124, 84, 117, 66, 79, -112, -111, -46, 86, -37, 109};  	public static final byte[] officaldebugkey = {-99, -69, 45, 71, 114, -116, 82, 66, -99, -122, 50, -70, -56, -111, 98, -35, -65, 105, 82, 43};  	public static final byte[] amazonkey = {-116, -115, -118, -89, -116, -112, 120, 55, 79, -8, -119, -23, 106, -114, -85, -56, -4, 105, 26, -57}; -	private static int mLastLevel=LEVEL_NOTCONNECTED; -	 +	private static ConnectionStatus mLastLevel=ConnectionStatus.LEVEL_NOTCONNECTED; +  	static {  		logbuffer  = new LinkedList<LogItem>();  		logListener = new Vector<OpenVPN.LogListener>(); @@ -153,7 +160,7 @@ public class OpenVPN {  					if(mArgs !=null)  						for(Object o:mArgs)  							str += "|" +  o.toString(); -					 +  					return str;  				}  			} @@ -169,31 +176,31 @@ public class OpenVPN {  				CertificateFactory cf = CertificateFactory.getInstance("X.509");  				X509Certificate cert = (X509Certificate) cf.generateCertificate(new ByteArrayInputStream(raw.toByteArray()));  				MessageDigest md = MessageDigest.getInstance("SHA-1"); -		    	byte[] der = cert.getEncoded(); -		    	md.update(der); -		    	byte[] digest = md.digest(); -		    	 -		    	if (Arrays.equals(digest, officalkey)) -		    		apksign = c.getString(R.string.official_build); -		    	else if (Arrays.equals(digest, officaldebugkey)) -		    		apksign = c.getString(R.string.debug_build); -		    	else if (Arrays.equals(digest, amazonkey)) -		    		apksign = "amazon version"; -		    	else -		    		apksign = c.getString(R.string.built_by,cert.getSubjectX500Principal().getName()); -		    	 +				byte[] der = cert.getEncoded(); +				md.update(der); +				byte[] digest = md.digest(); + +				if (Arrays.equals(digest, officalkey)) +					apksign = c.getString(R.string.official_build); +				else if (Arrays.equals(digest, officaldebugkey)) +					apksign = c.getString(R.string.debug_build); +				else if (Arrays.equals(digest, amazonkey)) +					apksign = "amazon version"; +				else +					apksign = c.getString(R.string.built_by,cert.getSubjectX500Principal().getName()); +  				PackageInfo packageinfo = c.getPackageManager().getPackageInfo(c.getPackageName(), 0);  				version = packageinfo.versionName; -		    	 +  			} catch (NameNotFoundException e) {  			} catch (CertificateException e) {  			} catch (NoSuchAlgorithmException e) {  			} -			 +  			Object[] argsext = Arrays.copyOf(mArgs, mArgs.length+2);  			argsext[argsext.length-1]=apksign;  			argsext[argsext.length-2]=version; -			 +  			return c.getString(R.string.mobile_info_extended, argsext);  		} @@ -215,7 +222,7 @@ public class OpenVPN {  	}  	public interface StateListener { -		void updateState(String state, String logmessage, int localizedResId, int level); +		void updateState(String state, String logmessage, int localizedResId, ConnectionStatus level);  	}  	public interface ByteCountListener { @@ -295,35 +302,35 @@ public class OpenVPN {  	} -	private static int getLevel(String state){ +	private static ConnectionStatus getLevel(String state){  		String[] noreplyet = {"CONNECTING","WAIT", "RECONNECTING", "RESOLVE", "TCP_CONNECT"};   		String[] reply = {"AUTH","GET_CONFIG","ASSIGN_IP","ADD_ROUTES"};  		String[] connected = {"CONNECTED"};  		String[] notconnected = {"DISCONNECTED", "EXITING"}; -		 +  		for(String x:noreplyet)  			if(state.equals(x)) -				return LEVEL_CONNECTING_NO_SERVER_REPLY_YET; -		 +				return ConnectionStatus.LEVEL_CONNECTING_NO_SERVER_REPLY_YET; +  		for(String x:reply)  			if(state.equals(x)) -				return LEVEL_CONNECTING_SERVER_REPLIED; -		 +				return ConnectionStatus.LEVEL_CONNECTING_SERVER_REPLIED; +  		for(String x:connected)  			if(state.equals(x)) -				return LEVEL_CONNECTED; -		 +				return ConnectionStatus.LEVEL_CONNECTED; +  		for(String x:notconnected)  			if(state.equals(x)) -				return LEVEL_NOTCONNECTED; -		 -		return -1; -		 +				return ConnectionStatus.LEVEL_NOTCONNECTED; + +		return ConnectionStatus.UNKNOWN_LEVEL; +  	} -	 -	 + +  	public synchronized static void removeStateListener(StateListener sl) {  		stateListener.remove(sl);  	} @@ -352,11 +359,11 @@ public class OpenVPN {  	public static void updateStateString (String state, String msg) {  		int rid = getLocalizedState(state); -		int level = getLevel(state); +		ConnectionStatus level = getLevel(state);  		updateStateString(state, msg, rid, level);  	} -	public synchronized static void updateStateString(String state, String msg, int resid, int level) { +	public synchronized static void updateStateString(String state, String msg, int resid, ConnectionStatus level) {  		mLaststate= state;  		mLaststatemsg = msg;  		mLastStateresid = resid; diff --git a/src/de/blinkt/openvpn/OpenVPNThread.java b/src/de/blinkt/openvpn/OpenVPNThread.java index cbaab234..ca7ed068 100644 --- a/src/de/blinkt/openvpn/OpenVPNThread.java +++ b/src/de/blinkt/openvpn/OpenVPNThread.java @@ -12,6 +12,7 @@ import java.util.LinkedList;  import java.util.Locale;
  import android.util.Log;
 +import de.blinkt.openvpn.OpenVPN.ConnectionStatus;
  import de.blinkt.openvpn.OpenVPN.LogItem;
  public class OpenVPNThread implements Runnable {
 @@ -57,7 +58,7 @@ public class OpenVPNThread implements Runnable {  			if( exitvalue != 0)
  				OpenVPN.logError("Process exited with exit value " + exitvalue);
 -			OpenVPN.updateStateString("NOPROCESS","No process running.", R.string.state_noprocess,OpenVPN.LEVEL_NOTCONNECTED);
 +			OpenVPN.updateStateString("NOPROCESS","No process running.", R.string.state_noprocess,ConnectionStatus.LEVEL_NOTCONNECTED);
  			if(mDumpPath!=null) {
  				try {
  					BufferedWriter logout = new BufferedWriter(new FileWriter(mDumpPath + ".log"));
 diff --git a/src/de/blinkt/openvpn/OpenVpnManagementThread.java b/src/de/blinkt/openvpn/OpenVpnManagementThread.java index d17ed6c5..86918358 100644 --- a/src/de/blinkt/openvpn/OpenVpnManagementThread.java +++ b/src/de/blinkt/openvpn/OpenVpnManagementThread.java @@ -11,6 +11,8 @@ import java.util.LinkedList;  import java.util.Locale;
  import java.util.Vector;
 +import de.blinkt.openvpn.OpenVPN.ConnectionStatus;
 +
  import android.content.SharedPreferences;
  import android.net.LocalServerSocket;
  import android.net.LocalSocket;
 @@ -207,7 +209,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNMangement {  			releaseHoldCmd();
  		} else { 
  			mWaitingForRelease=true;
 -			OpenVPN.updateStateString("NONETWORK", "",R.string.state_nonetwork,OpenVPN.LEVEL_NONETWORK);
 +			OpenVPN.updateStateString("NONETWORK", "",R.string.state_nonetwork,ConnectionStatus.LEVEL_NONETWORK);
  		}
  	}
  	private void releaseHoldCmd() {
 @@ -421,7 +423,7 @@ public class OpenVpnManagementThread implements Runnable, OpenVPNMangement {  	private void proccessPWFailed(String needed, String args) {
 -		OpenVPN.updateStateString("AUTH_FAILED", needed + args,R.string.state_auth_failed,OpenVPN.LEVEL_AUTH_FAILED);
 +		OpenVPN.updateStateString("AUTH_FAILED", needed + args,R.string.state_auth_failed,ConnectionStatus.LEVEL_AUTH_FAILED);
  	}
  	private void logStatusMessage(String command) {
  		OpenVPN.logMessage(0,"MGMT:", command);
 diff --git a/src/de/blinkt/openvpn/OpenVpnService.java b/src/de/blinkt/openvpn/OpenVpnService.java index cecae9d1..c73a1556 100644 --- a/src/de/blinkt/openvpn/OpenVpnService.java +++ b/src/de/blinkt/openvpn/OpenVpnService.java @@ -41,6 +41,7 @@ import android.os.Message;  import android.os.ParcelFileDescriptor;  import android.preference.PreferenceManager;  import de.blinkt.openvpn.OpenVPN.ByteCountListener; +import de.blinkt.openvpn.OpenVPN.ConnectionStatus;  import de.blinkt.openvpn.OpenVPN.StateListener;  public class OpenVpnService extends VpnService implements StateListener, Callback, ByteCountListener { @@ -127,7 +128,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac  		}  	} -	private void showNotification(String msg, String tickerText, boolean lowpriority, long when, int level) { +	private void showNotification(String msg, String tickerText, boolean lowpriority, long when, ConnectionStatus level) {  		String ns = Context.NOTIFICATION_SERVICE;  		NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); @@ -144,7 +145,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac  		nbuilder.setOnlyAlertOnce(true);  		nbuilder.setOngoing(true);  		nbuilder.setContentIntent(getLogPendingIntent()); -		nbuilder.setSmallIcon(icon,level); +		nbuilder.setSmallIcon(icon,level.level);  		if(when !=0)  			nbuilder.setWhen(when); @@ -271,7 +272,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac  		mProfile = ProfileManager.get(profileUUID);  		showNotification("Starting VPN " + mProfile.mName,"Starting VPN " + mProfile.mName, -				false,0,OpenVPN.LEVEL_CONNECTING_NO_SERVER_REPLY_YET); +				false,0,ConnectionStatus.LEVEL_CONNECTING_NO_SERVER_REPLY_YET);  		// Set a flag that we are starting a new VPN  		mStarting=true; @@ -538,7 +539,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac  	}  	@Override -	public void updateState(String state,String logmessage, int resid, int level) { +	public void updateState(String state,String logmessage, int resid, ConnectionStatus level) {  		// If the process is not running, ignore any state,   		// Notification should be invisible in this state  		if(mProcessThread==null && !mNotificationalwaysVisible) @@ -547,7 +548,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac  		// Display byte count only after being connected  		{ -			if(level == OpenVPN.LEVEL_CONNECTED) { +			if(level == ConnectionStatus.LEVEL_CONNECTED) {  				mDisplayBytecount = true;  				mConnecttime = System.currentTimeMillis();  			} else { @@ -573,7 +574,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac  					humanReadableByteCount(diffout/OpenVPNMangement.mBytecountinterval, true));  			boolean lowpriority = !mNotificationalwaysVisible; -			showNotification(netstat,null,lowpriority,mConnecttime, OpenVPN.LEVEL_CONNECTED); +			showNotification(netstat,null,lowpriority,mConnecttime, ConnectionStatus.LEVEL_CONNECTED);  		}  	} | 
