summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2023-04-13 13:52:53 +0200
committercyBerta <cyberta@riseup.net>2023-04-13 16:47:13 +0200
commit9e7317c9e8323c0a97bca05548928ab0a5f0900d (patch)
tree3354eba46b71f92d7e212b7c2c31457879ccfefe /app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java
parent2f32f3331b609d8a0324726f173e1aacf8854808 (diff)
Assume port hopping only in case of a missing endpoints json for obfs4-hop. The gateway IP and the cert json field in options substitute the missing endpoints json
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java b/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java
index e885166a..3780b7dc 100644
--- a/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java
+++ b/app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java
@@ -20,17 +20,25 @@ public class HoppingConfig {
public HoppingConfig(boolean kcp,
String proxyAddr,
- Transport transport,
+ Obfs4Options options,
int minHopSeconds,
int hopJitter) {
this.kcp = kcp;
this.proxyAddr = proxyAddr;
+ Transport transport = options.transport;
Transport.Endpoint[] endpoints = transport.getOptions().getEndpoints();
- this.remotes = new String[endpoints.length];
- this.certs = new String[endpoints.length];
- for (int i = 0; i < remotes.length; i++) {
- remotes[i] = endpoints[i].getIp();
- certs[i] = endpoints[i].getCert();
+ if (endpoints == null) {
+ // only port hopping, we assume the gateway IP as hopping PT's IP
+ this.remotes = new String[]{ options.gatewayIP };
+ this.certs = new String[] { transport.getOptions().getCert() };
+ } else {
+ // port+ip hopping
+ this.remotes = new String[endpoints.length];
+ this.certs = new String[endpoints.length];
+ for (int i = 0; i < remotes.length; i++) {
+ remotes[i] = endpoints[i].getIp();
+ certs[i] = endpoints[i].getCert();
+ }
}
this.portSeed = transport.getOptions().getPortSeed();
this.portCount = transport.getOptions().getPortCount();