diff options
author | cyBerta <cyberta@riseup.net> | 2019-10-05 23:36:27 +0200 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2019-10-05 23:36:27 +0200 |
commit | c637bffe1c9843b9de7366eee3584c51360e3867 (patch) | |
tree | 020bca50e13207abfab391c5cb94b176a39cdc3a /app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java | |
parent | b07bdead9919324113fc53c465dcc600f6fa222e (diff) |
ignore gateways with invalid transports while still adding gateways with valid configurations
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java')
-rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java | 19 |
1 files changed, 14 insertions, 5 deletions
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(); } } |