diff options
author | Parménides GV <parmegv@sdf.org> | 2013-11-21 21:41:58 +0100 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2013-11-21 21:50:32 +0100 |
commit | f9f69298e7d0b5e4258ea27095f50f9da7c6ff9b (patch) | |
tree | 66db318de3735da8b65ed4799b104b682c74990c /src | |
parent | 18f7612ee584e6f3023d230698ab0bf8866cd2ec (diff) |
OpenVPN notification contains location.
Instead of plain domain, we're printing a new variable stored in vpnprofile (parsed in ConfigParser): location.
I'm substituing "__" by ", ", but I'm not uppercasing anything. We rely on the raw data from eip-service.json.
Diffstat (limited to 'src')
-rw-r--r-- | src/se/leap/bitmaskclient/EIP.java | 15 | ||||
-rw-r--r-- | src/se/leap/openvpn/ConfigParser.java | 6 | ||||
-rw-r--r-- | src/se/leap/openvpn/OpenVpnService.java | 2 | ||||
-rw-r--r-- | src/se/leap/openvpn/VpnProfile.java | 1 |
4 files changed, 22 insertions, 2 deletions
diff --git a/src/se/leap/bitmaskclient/EIP.java b/src/se/leap/bitmaskclient/EIP.java index f9384ff6..22f7558d 100644 --- a/src/se/leap/bitmaskclient/EIP.java +++ b/src/se/leap/bitmaskclient/EIP.java @@ -431,6 +431,7 @@ public final class EIP extends IntentService { String ports = "ports"; String protos = "protocols"; String capabilities = "capabilities"; + String location = "location"; Vector<String> arg = new Vector<String>(); Vector<Vector<String>> args = new Vector<Vector<String>>(); @@ -457,7 +458,7 @@ public final class EIP extends IntentService { } try { - arg.add("remote"); + arg.add(remote); arg.add(mGateway.getString(remote)); } catch (JSONException e) { // TODO Auto-generated catch block @@ -467,7 +468,19 @@ public final class EIP extends IntentService { options.put("remote", (Vector<Vector<String>>) args.clone() ); arg.clear(); args.clear(); + + try { + arg.add(location); + arg.add(mGateway.getString(location)); + } catch (JSONException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + args.add((Vector<String>) arg.clone()); + options.put("location", (Vector<Vector<String>>) args.clone() ); + arg.clear(); + args.clear(); JSONArray protocolsJSON = null; arg.add("proto"); try { diff --git a/src/se/leap/openvpn/ConfigParser.java b/src/se/leap/openvpn/ConfigParser.java index 3d369fa6..36585d29 100644 --- a/src/se/leap/openvpn/ConfigParser.java +++ b/src/se/leap/openvpn/ConfigParser.java @@ -355,6 +355,12 @@ public class ConfigParser { np.mServerName = remote.get(1); } } + + // Parse remote config + Vector<String> location = getOption("location",1,2); + if(location != null && location.size() == 2){ + np.mLocation = location.get(1).replace("__", ", "); + } Vector<Vector<String>> dhcpoptions = getAllOption("dhcp-option", 2, 2); if(dhcpoptions!=null) { diff --git a/src/se/leap/openvpn/OpenVpnService.java b/src/se/leap/openvpn/OpenVpnService.java index 5e5bf3d7..1ef291df 100644 --- a/src/se/leap/openvpn/OpenVpnService.java +++ b/src/se/leap/openvpn/OpenVpnService.java @@ -350,7 +350,7 @@ public class OpenVpnService extends VpnService implements StateListener, Callbac bconfig[4] = getString(R.string.routes_info, joinString(mRoutes)); bconfig[5] = getString(R.string.routes_info6, joinString(mRoutesv6)); - String session = mProfile.mName.substring(mProfile.mName.indexOf(".")+1); + String session = mProfile.mLocation; /* we don't want the IP address in the notification bar if(mLocalIP!=null && mLocalIPv6!=null) session = getString(R.string.session_ipv6string,session, mLocalIP, mLocalIPv6); diff --git a/src/se/leap/openvpn/VpnProfile.java b/src/se/leap/openvpn/VpnProfile.java index 41cf574b..99e1c676 100644 --- a/src/se/leap/openvpn/VpnProfile.java +++ b/src/se/leap/openvpn/VpnProfile.java @@ -68,6 +68,7 @@ public class VpnProfile implements Serializable{ private UUID mUuid; public int mAuthenticationType = TYPE_CERTIFICATES ; public String mName; + public String mLocation; public String mAlias; public String mClientCertFilename; public String mTLSAuthDirection=""; |