diff options
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn')
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/activities/ConfigConverter.java | 11 | ||||
-rw-r--r-- | main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java | 12 |
2 files changed, 17 insertions, 6 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/activities/ConfigConverter.java b/main/src/main/java/de/blinkt/openvpn/activities/ConfigConverter.java index 227a97cd..180dbe64 100644 --- a/main/src/main/java/de/blinkt/openvpn/activities/ConfigConverter.java +++ b/main/src/main/java/de/blinkt/openvpn/activities/ConfigConverter.java @@ -18,6 +18,7 @@ import android.database.Cursor; import android.os.Build; import android.os.Bundle; import android.os.Environment; +import android.os.NetworkOnMainThreadException; import android.provider.OpenableColumns; import android.security.KeyChain; import android.security.KeyChainAliasCallback; @@ -632,7 +633,7 @@ public class ConfigConverter extends Activity implements FileSelectCallback, Vie possibleName = possibleName.substring(possibleName.lastIndexOf('/') + 1); } - InputStream is = getContentResolver().openInputStream(data); + mPathsegments = data.getPathSegments(); Cursor cursor = null; @@ -661,8 +662,12 @@ public class ConfigConverter extends Activity implements FileSelectCallback, Vie possibleName = possibleName.replace(".ovpn", ""); possibleName = possibleName.replace(".conf", ""); } - - doImport(is, possibleName); + try { + InputStream is = getContentResolver().openInputStream(data); + doImport(is, possibleName); + } catch (NetworkOnMainThreadException nom) { + throw new RuntimeException("Network on Main: + " + data); + } } catch (FileNotFoundException e) { log(R.string.import_content_resolve_error); diff --git a/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java b/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java index 6ba80e66..652616af 100644 --- a/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java +++ b/main/src/main/java/de/blinkt/openvpn/core/ConfigParser.java @@ -148,7 +148,7 @@ public class ConfigParser { } - public class ConfigParseError extends Exception { + public static class ConfigParseError extends Exception { private static final long serialVersionUID = -60L; public ConfigParseError(String msg) { @@ -721,9 +721,15 @@ public class ConfigParser { } Vector<String> connectTimeout = getOption("connect-timeout", 1, 1); - if (connectTimeout != null) - conn.mConnectTimeout = Integer.parseInt(connectTimeout.get(0)); + if (connectTimeout != null) { + try { + conn.mConnectTimeout = Integer.parseInt(connectTimeout.get(1)); + } catch (NumberFormatException nfe) { + throw new ConfigParseError(String.format("Argument to connect-timeout (%s) must to be an integer: %s", + connectTimeout.get(1), nfe.getLocalizedMessage())); + } + } // Parse remote config Vector<Vector<String>> remotes = getAllOption("remote", 1, 3); |