From c637bffe1c9843b9de7366eee3584c51360e3867 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Sat, 5 Oct 2019 23:36:27 +0200 Subject: ignore gateways with invalid transports while still adding gateways with valid configurations --- .../se/leap/bitmaskclient/eip/GatewaysManager.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java index 0847a07e..c7d7f86f 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java @@ -26,10 +26,13 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.io.IOException; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.LinkedHashMap; +import de.blinkt.openvpn.core.ConfigParser; +import de.blinkt.openvpn.core.VpnStatus; import se.leap.bitmaskclient.Provider; import se.leap.bitmaskclient.utils.PreferenceHelper; @@ -87,19 +90,25 @@ public class GatewaysManager { * @param eipDefinition eipServiceJson */ void fromEipServiceJson(JSONObject eipDefinition) { + JSONArray gatewaysDefined = new JSONArray(); try { - JSONArray gatewaysDefined = eipDefinition.getJSONArray(GATEWAYS); - for (int i = 0; i < gatewaysDefined.length(); i++) { + gatewaysDefined = eipDefinition.getJSONArray(GATEWAYS); + } catch (Exception e) { + e.printStackTrace(); + } + + for (int i = 0; i < gatewaysDefined.length(); i++) { + try { JSONObject gw = gatewaysDefined.getJSONObject(i); JSONObject secrets = secretsConfiguration(); Gateway aux = new Gateway(eipDefinition, secrets, gw, this.context); if (gateways.get(aux.getRemoteIP()) == null) { addGateway(aux); } + } catch (JSONException | ConfigParser.ConfigParseError | IOException e) { + e.printStackTrace(); + VpnStatus.logError("Unable to parse gateway config!"); } - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); } } -- cgit v1.2.3