summaryrefslogtreecommitdiff
path: root/main/src/main/java/de/blinkt/openvpn
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/main/java/de/blinkt/openvpn')
-rw-r--r--main/src/main/java/de/blinkt/openvpn/VpnProfile.java12
-rw-r--r--main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java29
-rw-r--r--main/src/main/java/de/blinkt/openvpn/fragments/GeneralSettings.java8
3 files changed, 42 insertions, 7 deletions
diff --git a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java
index d816d97e..601fb2df 100644
--- a/main/src/main/java/de/blinkt/openvpn/VpnProfile.java
+++ b/main/src/main/java/de/blinkt/openvpn/VpnProfile.java
@@ -202,7 +202,9 @@ public class VpnProfile implements Serializable {
//cfg += "management-signal\n";
cfg += "management-query-passwords\n";
cfg += "management-hold\n\n";
- cfg += getVersionEnvString(context);
+
+ if (!configForOvpn3)
+ cfg += String.format("setenv IV_GUI_VER %s \n", openVpnEscape(getVersionEnvString(context)));
cfg += "machine-readable-output\n";
@@ -439,7 +441,7 @@ public class VpnProfile implements Serializable {
return cfg;
}
- private String getVersionEnvString(Context c) {
+ public String getVersionEnvString(Context c) {
String version = "unknown";
try {
PackageInfo packageinfo = c.getPackageManager().getPackageInfo(c.getPackageName(), 0);
@@ -447,7 +449,7 @@ public class VpnProfile implements Serializable {
} catch (PackageManager.NameNotFoundException e) {
VpnStatus.logException(e);
}
- return String.format(Locale.US, "setenv IV_GUI_VER \"%s %s\"\n", c.getPackageName(), version);
+ return String.format(Locale.US, "%s %s", c.getPackageName(), version);
}
@@ -573,7 +575,7 @@ public class VpnProfile implements Serializable {
return intent;
}
- String[] getKeyStoreCertificates(Context context) {
+ public String[] getKeyStoreCertificates(Context context) {
return getKeyStoreCertificates(context, 5);
}
@@ -761,7 +763,7 @@ public class VpnProfile implements Serializable {
}
}
- boolean isUserPWAuth() {
+ public boolean isUserPWAuth() {
switch (mAuthenticationType) {
case TYPE_USERPASS:
case TYPE_USERPASS_CERTIFICATES:
diff --git a/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java b/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java
index 0de791d6..ff6ccd15 100644
--- a/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java
+++ b/main/src/main/java/de/blinkt/openvpn/core/OpenVpnService.java
@@ -15,6 +15,8 @@ import android.os.*;
import android.os.Handler.Callback;
import android.preference.PreferenceManager;
import android.text.TextUtils;
+
+import de.blinkt.openvpn.BuildConfig;
import de.blinkt.openvpn.activities.DisconnectVPN;
import de.blinkt.openvpn.activities.LogWindow;
import de.blinkt.openvpn.R;
@@ -295,7 +297,8 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac
return START_REDELIVER_INTENT;
}
- assert (intent != null);
+ if (intent == null)
+ return START_NOT_STICKY;
// Extract information from the intent.
String prefix = getPackageName();
@@ -335,7 +338,8 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
mOvpn3 = prefs.getBoolean("ovpn3", false);
- mOvpn3 = false;
+ if (!"ovpn3".equals(BuildConfig.FLAVOR))
+ mOvpn3 = false;
// Open the Management Interface
@@ -383,6 +387,22 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac
}
private OpenVPNManagement instantiateOpenVPN3Core() {
+ try {
+ Class cl = Class.forName("de.blinkt.openvpn.core.OpenVPNThreadv3");
+ return (OpenVPNManagement) cl.getConstructor(OpenVpnService.class,VpnProfile.class).newInstance(this,mProfile);
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ } catch (InstantiationException e) {
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ }
return null;
}
@@ -542,6 +562,11 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac
}
}
+ /** Route that is always included, used by the v3 core */
+ public void addRoute (CIDRIP route) {
+ mRoutes.addIP(route, true);
+ }
+
public void addRoute (String dest, String mask, String gateway, String device) {
CIDRIP route = new CIDRIP(dest, mask);
boolean include = isAndroidTunDevice(device);
diff --git a/main/src/main/java/de/blinkt/openvpn/fragments/GeneralSettings.java b/main/src/main/java/de/blinkt/openvpn/fragments/GeneralSettings.java
index 2e486dfe..0c6bb5b4 100644
--- a/main/src/main/java/de/blinkt/openvpn/fragments/GeneralSettings.java
+++ b/main/src/main/java/de/blinkt/openvpn/fragments/GeneralSettings.java
@@ -16,6 +16,8 @@ import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
+
+import de.blinkt.openvpn.BuildConfig;
import de.blinkt.openvpn.R;
import de.blinkt.openvpn.api.ExternalAppDatabase;
@@ -54,6 +56,12 @@ public class GeneralSettings extends PreferenceFragment implements OnPreferenceC
if(devHacks.getPreferenceCount()==0)
getPreferenceScreen().removePreference(devHacks);
+ if (!"ovpn3".equals(BuildConfig.FLAVOR)) {
+ PreferenceCategory appBehaviour = (PreferenceCategory) findPreference("app_behaviour");
+ appBehaviour.removePreference(findPreference("ovpn3"));
+ }
+
+
setClearApiSummary();
}