diff options
author | cyBerta <cyberta@riseup.net> | 2023-04-13 13:52:53 +0200 |
---|---|---|
committer | cyBerta <cyberta@riseup.net> | 2023-04-13 16:47:13 +0200 |
commit | 9e7317c9e8323c0a97bca05548928ab0a5f0900d (patch) | |
tree | 3354eba46b71f92d7e212b7c2c31457879ccfefe /app/src/main/java/se/leap/bitmaskclient/pluggableTransports/HoppingConfig.java | |
parent | 2f32f3331b609d8a0324726f173e1aacf8854808 (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.java | 20 |
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(); |