From 2267c1d82c5c0ccd3d1cd2fe9e723709c993643c Mon Sep 17 00:00:00 2001 From: cyBerta Date: Fri, 13 Dec 2019 15:58:58 +0100 Subject: improve better server balancing: update eip-service.json every 3 days after a successful connection in order to recognize newly added gateways (#8974) --- app/src/main/java/se/leap/bitmaskclient/Provider.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/Provider.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/Provider.java b/app/src/main/java/se/leap/bitmaskclient/Provider.java index 067f9b2e..507a11bf 100644 --- a/app/src/main/java/se/leap/bitmaskclient/Provider.java +++ b/app/src/main/java/se/leap/bitmaskclient/Provider.java @@ -44,6 +44,7 @@ import static se.leap.bitmaskclient.ProviderAPI.ERRORS; */ public final class Provider implements Parcelable { + private static long EIP_SERVICE_TIMEOUT = 1000 * 60 * 60 * 24 * 3; private JSONObject definition = new JSONObject(); // Represents our Provider's provider.json private JSONObject eipServiceJson = new JSONObject(); private DefaultedURL mainUrl = new DefaultedURL(); @@ -54,6 +55,7 @@ public final class Provider implements Parcelable { private String apiVersion = ""; private String privateKey = ""; private String vpnCertificate = ""; + private long lastEipServiceUpdate = 0L; private boolean allowAnonymous; private boolean allowRegistered; @@ -268,6 +270,7 @@ public final class Provider implements Parcelable { parcel.writeString(getEipServiceJsonString()); parcel.writeString(getPrivateKey()); parcel.writeString(getVpnCertificate()); + parcel.writeLong(lastEipServiceUpdate); } @Override @@ -286,7 +289,8 @@ public final class Provider implements Parcelable { privateKey.equals(p.getPrivateKey()) && vpnCertificate.equals(p.getVpnCertificate()) && allowAnonymous == p.allowsAnonymous() && - allowRegistered == p.allowsRegistered(); + allowRegistered == p.allowsRegistered() && + lastEipServiceUpdate == p.getLastEipServiceUpdate(); } else return false; } @@ -336,6 +340,7 @@ public final class Provider implements Parcelable { if (!tmpString.isEmpty()) { this.setVpnCertificate(tmpString); } + this.lastEipServiceUpdate = in.readLong(); } catch (MalformedURLException | JSONException e) { e.printStackTrace(); } @@ -368,6 +373,18 @@ public final class Provider implements Parcelable { return allowRegistered; } + public void setLastEipServiceUpdate(long timestamp) { + lastEipServiceUpdate = timestamp; + } + + public long getLastEipServiceUpdate() { + return lastEipServiceUpdate; + } + + public boolean shouldUpdateEipServiceJson() { + return System.currentTimeMillis() - lastEipServiceUpdate >= EIP_SERVICE_TIMEOUT; + } + public boolean setEipServiceJson(JSONObject eipServiceJson) { if (eipServiceJson.has(ERRORS)) { return false; -- cgit v1.2.3