diff options
| author | cyBerta <cyberta@riseup.net> | 2025-02-17 18:08:02 +0100 |
|---|---|---|
| committer | cyberta <cyberta@riseup.net> | 2025-02-28 10:49:48 +0000 |
| commit | c3c7dbaeae8dcbb74b55f634d077d7aab75a9444 (patch) | |
| tree | f76e08155235334542f0cbbbe853c5bc269a2768 /app/src/main/java/se/leap/bitmaskclient/eip | |
| parent | 52cb75f3ea6283207956ebaed6d7e3837f678ece (diff) | |
add quic pluggable transport support
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/eip')
| -rw-r--r-- | app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java | 12 |
1 files changed, 8 insertions, 4 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 9655013c..76aece23 100644 --- a/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/eip/GatewaysManager.java @@ -26,6 +26,7 @@ import static se.leap.bitmaskclient.base.models.Constants.HOST; import static se.leap.bitmaskclient.base.models.Constants.IAT_MODE; import static se.leap.bitmaskclient.base.models.Constants.KCP; import static se.leap.bitmaskclient.base.models.Constants.PROVIDER_VPN_CERTIFICATE; +import static se.leap.bitmaskclient.base.models.Constants.QUIC; import static se.leap.bitmaskclient.base.models.Constants.SORTED_GATEWAYS; import static se.leap.bitmaskclient.base.models.Constants.TCP; import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getObfuscationPinningCert; @@ -37,6 +38,7 @@ import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseBridges; import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4; import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4Kcp; import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUsePortHopping; +import static se.leap.bitmaskclient.base.utils.PreferenceHelper.getUseObfs4Quic; import android.content.Context; import android.util.Log; @@ -174,7 +176,7 @@ public class GatewaysManager { if (getUsePortHopping()) { return new TransportType[]{OBFS4_HOP}; - } else if (getUseObfs4() || getUseObfs4Kcp()) { + } else if (getUseObfs4() || getUseObfs4Kcp() || getUseObfs4Quic()) { return new TransportType[]{OBFS4}; } else { return new TransportType[]{OBFS4, OBFS4_HOP}; @@ -192,10 +194,12 @@ public class GatewaysManager { return Set.of(TCP); } else if (getUseObfs4Kcp()) { return Set.of(KCP); + } else if (getUseObfs4Quic()) { + return Set.of(QUIC); } else { // If neither Obf4 nor Obf4Kcp are used, and bridges are enabled, - // then use both TCP and KCP (based on the original logic). - return Set.of(TCP, KCP); + // then allow to use any of these protocols + return Set.of(TCP, KCP, QUIC); } } @@ -492,7 +496,7 @@ public class GatewaysManager { options.put(CERT, getObfuscationPinningCert()); options.put(IAT_MODE, "0"); modelsBridge.options(options); - modelsBridge.transport(getObfuscationPinningKCP() ? "kcp" : "tcp"); + modelsBridge.transport(getObfuscationPinningKCP() ? KCP : TCP); modelsBridge.type(OBFS4.toString()); modelsBridge.host(PINNED_OBFUSCATION_PROXY); Gateway gateway = new Gateway(modelsEIPService, secrets, modelsBridge, provider.getApiVersion()); |
