summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/Provider.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/Provider.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/Provider.java59
1 files changed, 45 insertions, 14 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/Provider.java b/app/src/main/java/se/leap/bitmaskclient/Provider.java
index 3dfee72c..88080a03 100644
--- a/app/src/main/java/se/leap/bitmaskclient/Provider.java
+++ b/app/src/main/java/se/leap/bitmaskclient/Provider.java
@@ -52,6 +52,7 @@ public final class Provider implements Parcelable {
private DefaultedURL mainUrl = new DefaultedURL();
private DefaultedURL apiUrl = new DefaultedURL();
private String providerIp = "";
+ private String providerApiIp = "";
private String certificatePin = "";
private String certificatePinEncoding = "";
private String caCert = "";
@@ -77,7 +78,8 @@ public final class Provider implements Parcelable {
DESCRIPTION = "description",
DOMAIN = "domain",
MAIN_URL = "main_url",
- PROVIDER_IP = "provider_ip";
+ PROVIDER_IP = "provider_ip",
+ PROVIDER_API_IP = "provider_api_ip";
private static final String API_TERM_NAME = "name";
@@ -91,16 +93,28 @@ public final class Provider implements Parcelable {
}
}
- public Provider(URL mainUrl, String providerIp) {
- this.mainUrl.setUrl(mainUrl);
- this.providerIp = providerIp;
+ public Provider(String mainUrl, String providerIp, String providerApiIp) {
+ try {
+ this.mainUrl.setUrl(new URL(mainUrl));
+ this.providerIp = providerIp;
+ this.providerApiIp = providerApiIp;
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
}
- public Provider(URL mainUrl, String providerIp, String caCert, String definition) {
- this.mainUrl.setUrl(mainUrl);
+ public Provider(String mainUrl, String providerIp, String providerApiIp, String caCert, String definition) {
+ try {
+ this.mainUrl.setUrl(new URL(mainUrl));
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
if (this.providerIp != null) {
this.providerIp = providerIp;
}
+ if (this.providerApiIp != null) {
+ this.providerApiIp = providerApiIp;
+ }
if (caCert != null) {
this.caCert = caCert;
}
@@ -154,6 +168,25 @@ public final class Provider implements Parcelable {
return false;
}
+ public String getIpForHostname(String host) {
+ if (host != null) {
+ if (host.equals(mainUrl.getUrl().getHost())) {
+ return providerIp;
+ } else if (host.equals(apiUrl.getUrl().getHost())) {
+ return providerApiIp;
+ }
+ }
+ return "";
+ }
+
+ public String getProviderApiIp() {
+ return this.providerApiIp;
+ }
+
+ public void setProviderApiIp(String providerApiIp) {
+ this.providerApiIp = providerApiIp;
+ }
+
public void setProviderIp(String providerIp) {
this.providerIp = providerIp;
}
@@ -162,10 +195,6 @@ public final class Provider implements Parcelable {
return this.providerIp;
}
- public byte[] getProviderIpAsBytes() {
- return IPAddress.asBytes(providerIp);
- }
-
public void setMainUrl(URL url) {
mainUrl.setUrl(url);
}
@@ -286,6 +315,7 @@ public final class Provider implements Parcelable {
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(getMainUrlString());
parcel.writeString(getProviderIp());
+ parcel.writeString(getProviderApiIp());
parcel.writeString(getDefinitionString());
parcel.writeString(getCaCert());
parcel.writeString(getEipServiceJsonString());
@@ -303,6 +333,7 @@ public final class Provider implements Parcelable {
eipServiceJson.toString().equals(p.getEipServiceJson().toString())&&
mainUrl.equals(p.getMainUrl()) &&
providerIp.equals(p.getProviderIp()) &&
+ providerApiIp.equals(p.getProviderApiIp()) &&
apiUrl.equals(p.getApiUrl()) &&
certificatePin.equals(p.getCertificatePin()) &&
certificatePinEncoding.equals(p.getCertificatePinEncoding()) &&
@@ -346,6 +377,10 @@ public final class Provider implements Parcelable {
}
tmpString = in.readString();
if (!tmpString.isEmpty()) {
+ providerApiIp = tmpString;
+ }
+ tmpString = in.readString();
+ if (!tmpString.isEmpty()) {
definition = new JSONObject((tmpString));
parseDefinition(definition);
}
@@ -469,10 +504,6 @@ public final class Provider implements Parcelable {
return getCertificatePinEncoding() + ":" + getCertificatePin();
}
- public boolean hasProviderIp() {
- return !providerIp.isEmpty();
- }
-
/**
* resets everything except the main url and the providerIp
*/