diff options
| author | Arne Schwabe <arne@rfc2549.org> | 2012-05-09 17:57:40 +0200 | 
|---|---|---|
| committer | Arne Schwabe <arne@rfc2549.org> | 2012-05-09 17:57:40 +0200 | 
| commit | e86d8b67696568b17854ccdc846191dc9635841d (patch) | |
| tree | a46475895895944a79b3452a1805ae31a7f40f4e /src | |
| parent | e2d3bfe01ad9b4778dd405abda0ddc81424fe104 (diff) | |
Only try to write minivpn once per program lifetime.
Remove debug logging
Diffstat (limited to 'src')
| -rw-r--r-- | src/de/blinkt/openvpn/LaunchVPN.java | 13 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVPNThread.java | 14 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/OpenVpnManagementThread.java | 19 | ||||
| -rw-r--r-- | src/de/blinkt/openvpn/VpnProfile.java | 8 | 
4 files changed, 37 insertions, 17 deletions
diff --git a/src/de/blinkt/openvpn/LaunchVPN.java b/src/de/blinkt/openvpn/LaunchVPN.java index 17313cd5..858c8d38 100644 --- a/src/de/blinkt/openvpn/LaunchVPN.java +++ b/src/de/blinkt/openvpn/LaunchVPN.java @@ -78,6 +78,8 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener {  	private ProfileManager mPM;  	private VpnProfile mSelectedProfile; +	static boolean minivpnwritten=false; +	  	@Override  	public void onCreate(Bundle icicle) {  		super.onCreate(icicle); @@ -210,6 +212,8 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener {  	}  	private boolean writeMiniVPN() { +		if(minivpnwritten) +			return true;  		try {  			InputStream mvpn = getAssets().open("minivpn");  			File mvpnout = new File(getCacheDir(),"minivpn"); @@ -227,7 +231,7 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener {  			if(!mvpnout.setExecutable(true))  				return false; -			 +			minivpnwritten=true;  			return true;  		} catch (IOException e) {  			e.printStackTrace(); @@ -321,8 +325,10 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener {  			// Start the query  			try {  				startActivityForResult(intent, START_VPN_PROFILE); -			} catch (ActivityNotFoundException ane){ -				Toast.makeText(this, "Your image does not support the VPNService API,sorry :(", Toast.LENGTH_LONG).show(); +			} catch (ActivityNotFoundException ane) { +				// Shame on you Sony! At least one user reported that  +				// an official Sony Xperia Arc S image triggers this exception +				Toast.makeText(this, R.string.no_vpn_support_image, Toast.LENGTH_LONG).show();  			}  		} else {  			onActivityResult(START_VPN_PROFILE, Activity.RESULT_OK, null); @@ -341,7 +347,6 @@ public class LaunchVPN extends ListActivity implements OnItemClickListener {  			Intent startLW = new Intent(getBaseContext(),LogWindow.class);  			startActivity(startLW); -			OpenVPN.logMessage(0, "", "Writing minivpn binary");  			if(!writeMiniVPN()) {  				OpenVPN.logMessage(0, "", "Error writing minivpn binary");  				return; diff --git a/src/de/blinkt/openvpn/OpenVPNThread.java b/src/de/blinkt/openvpn/OpenVPNThread.java index d4d4cd64..008598e4 100644 --- a/src/de/blinkt/openvpn/OpenVPNThread.java +++ b/src/de/blinkt/openvpn/OpenVPNThread.java @@ -44,7 +44,7 @@ public class OpenVPNThread implements Runnable {  			// Log argv
 -			OpenVPN.logMessage(0, "argv:" , Arrays.toString(mArgv));
 +			//OpenVPN.logMessage(0, "argv:" , Arrays.toString(mArgv));
  			startOpenVPNThreadArgs(mArgv);
 @@ -77,7 +77,17 @@ public class OpenVPNThread implements Runnable {  		ProcessBuilder pb = new ProcessBuilder(argvlist);
  		// Hack O rama
 -		pb.environment().put("LD_LIBRARY_PATH", "/data/data/de.blinkt.openvpn/lib");
 +		
 +		// Hack until I find a good way to get the real library path
 +		String applibpath = argv[0].replace("/cache/minivpn", "/lib");
 +		
 +		String lbpath = pb.environment().get("LD_LIBRARY_PATH");
 +		if(lbpath==null)
 +			lbpath = applibpath;
 +		else
 +			lbpath = lbpath + ":" + applibpath;
 +		
 +		pb.environment().put("LD_LIBRARY_PATH", lbpath);
  		pb.redirectErrorStream(true);
  		try {
  			mProcess = pb.start();
 diff --git a/src/de/blinkt/openvpn/OpenVpnManagementThread.java b/src/de/blinkt/openvpn/OpenVpnManagementThread.java index 18d543f1..bc2b0e13 100644 --- a/src/de/blinkt/openvpn/OpenVpnManagementThread.java +++ b/src/de/blinkt/openvpn/OpenVpnManagementThread.java @@ -33,7 +33,7 @@ public class OpenVpnManagementThread implements Runnable {  	}
  	public void managmentCommand(String cmd) {
 -		Log.d("openvpn", "mgmt cmd" + mSocket + " "  +cmd + " " );
 +		//Log.d("openvpn", "mgmt cmd" + mSocket + " "  +cmd + " " );
  		try {
  			mSocket.getOutputStream().write(cmd.getBytes());
  			mSocket.getOutputStream().flush();
 @@ -144,21 +144,24 @@ public class OpenVpnManagementThread implements Runnable {  			String argument = parts[1];
 -			if(cmd.equals("INFO"))
 -				logStatusMessage(command);
 -			else if (cmd.equals("PASSWORD")) {
 +			if(cmd.equals("INFO")) {
 +				// Ignore greeting from mgmt
 +				//logStatusMessage(command);
 +			}else if (cmd.equals("PASSWORD")) {
  				processPWCommand(argument);
  			} else if (cmd.equals("HOLD")) {
  				managmentCommand("hold release\n");
 -				managmentCommand("log on\n");
 -				managmentCommand("bytecount 13\n");
 +				//managmentCommand("log on\n");
  			} else if (cmd.equals("NEED-OK")) {
  				processNeedCommand(argument);
  			} else if (cmd.equals("LOG")) {
 -				OpenVPN.logMessage(0, "",  command);
 +				String[] args = argument.split(",",3);
 +				// 0 unix time stamp
 +				// 1 log level N,I,E etc.
 +				// 2 log message
 +				OpenVPN.logMessage(0, "",  args[2]);
  			} else {
  				OpenVPN.logMessage(0, "MGMT:", "Got unrecognized command" + command);
 -				managmentCommand("log 1\n");
  				Log.i(TAG, "Got unrecognized command" + command);
  			}
  		} else if (command.startsWith("SUCCESS:")) {
 diff --git a/src/de/blinkt/openvpn/VpnProfile.java b/src/de/blinkt/openvpn/VpnProfile.java index 227df5ba..26cf50bd 100644 --- a/src/de/blinkt/openvpn/VpnProfile.java +++ b/src/de/blinkt/openvpn/VpnProfile.java @@ -137,8 +137,6 @@ public class VpnProfile implements  Serializable{  		cfg+=cacheDir.getAbsolutePath();  		cfg+="\n\n"; -		cfg+="# Silences script security warning\n"; -		cfg+="script-security 0\n\n";  		boolean useTLSClient = (mAuthenticationType != TYPE_STATICKEYS); @@ -350,7 +348,11 @@ public class VpnProfile implements  Serializable{  		args.add("--config");  		args.add(cacheDir.getAbsolutePath() + "/" + OVPNCONFIGFILE); - +		// Silences script security warning +		 +		args.add("script-security"); +		args.add("0"); +		  		return  (String[]) args.toArray(new String[args.size()]);  	}  | 
