summaryrefslogtreecommitdiff
path: root/src/de/blinkt/openvpn/VpnProfile.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/blinkt/openvpn/VpnProfile.java')
-rw-r--r--src/de/blinkt/openvpn/VpnProfile.java62
1 files changed, 52 insertions, 10 deletions
diff --git a/src/de/blinkt/openvpn/VpnProfile.java b/src/de/blinkt/openvpn/VpnProfile.java
index c199cf8b..e17fb8ff 100644
--- a/src/de/blinkt/openvpn/VpnProfile.java
+++ b/src/de/blinkt/openvpn/VpnProfile.java
@@ -46,7 +46,7 @@ public class VpnProfile implements Serializable{
public String mName;
public String mAlias;
public String mClientCertFilename;
- public int mTLSAuthDirection=2;
+ public String mTLSAuthDirection="";
public String mTLSAuthFilename;
public String mClientKeyFilename;
public String mCaFilename;
@@ -84,7 +84,7 @@ public class VpnProfile implements Serializable{
out.writeString(mName);
out.writeString(mAlias);
out.writeString(mClientCertFilename);
- out.writeInt(mTLSAuthDirection);
+ out.writeString(mTLSAuthDirection);
out.writeString(mTLSAuthFilename);
out.writeString(mClientKeyFilename);
out.writeString(mCaFilename);
@@ -103,7 +103,7 @@ public class VpnProfile implements Serializable{
mName = in.readString();
mAlias = in.readString();
mClientCertFilename = in.readString();
- mTLSAuthDirection = in.readInt();
+ mTLSAuthDirection = in.readString();
mTLSAuthFilename = in.readString();
mClientKeyFilename = in.readString();
mCaFilename = in.readString();
@@ -156,7 +156,16 @@ public class VpnProfile implements Serializable{
- cfg+="client\n";
+ boolean useTLSClient = (mAuthenticationType != TYPE_STATICKEYS);
+
+ if(useTLSClient && mUsePull)
+ cfg+="client\n";
+ else if (mUsePull)
+ cfg+="pull\n";
+ else if(useTLSClient)
+ cfg+="tls-client";
+
+
cfg+="verb 2\n";
@@ -224,14 +233,35 @@ public class VpnProfile implements Serializable{
if(mUseTLSAuth) {
cfg+="tls-auth ";
cfg+=mTLSAuthFilename;
- int tlsdir= mTLSAuthDirection;
- // 2 is unspecified
- if(tlsdir == 0 || tlsdir==1) {
- cfg+=" ";
- cfg+=new Integer(tlsdir).toString();
- }
+ cfg+=" ";
+ cfg+= mTLSAuthDirection;
cfg+="\n";
}
+
+ // Basic Settings
+ if(!mUsePull ) {
+ cfg +="ifconfig " + mIPv4Address + " 255.255.255.255\n";
+ }
+
+ if(mOverrideDNS || !mUsePull) {
+ if(!mDNS1.equals("") && mDNS1!=null)
+ cfg+="dhcp-option DNS " + mDNS1 + "\n";
+ if(!mDNS2.equals("") && mDNS2!=null)
+ cfg+="dhcp-option DNS " + mDNS2 + "\n";
+
+ }
+
+
+
+ // Authentication
+ if(mCheckRemoteCN) {
+ if(mRemoteCN == null || mRemoteCN.equals("") )
+ cfg+="tls-remote " + mServerName + "\n";
+ else
+ cfg += "tls-remote " + mRemoteCN + "\n";
+ }
+ if(mExpectTLSCert)
+ cfg += "remote-cert-tls server\n";
return cfg;
}
@@ -280,6 +310,8 @@ public class VpnProfile implements Serializable{
intent.putExtra(prefix + ".PASSWORD", mPassword);
}
+ intent.putExtra(prefix + ".profileUUID", mUuid.toString());
+
try {
FileWriter cfg = new FileWriter(activity.getCacheDir().getAbsolutePath() + "/" + OVPNCONFIGFILE);
cfg.write(getConfigFile(activity.getCacheDir()));
@@ -337,6 +369,16 @@ public class VpnProfile implements Serializable{
return "ERROR";
}
+ //! Return an error if somethign is wrong
+ int checkProfile() {
+ if(mAuthenticationType==TYPE_KEYSTORE && mAlias==null)
+ return R.string.no_keystore_cert_selected;
+
+
+ // Everything okay
+ return R.string.no_error_found;
+
+ }
}