summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/eip
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2025-02-17 18:08:02 +0100
committercyberta <cyberta@riseup.net>2025-02-28 10:49:48 +0000
commitc3c7dbaeae8dcbb74b55f634d077d7aab75a9444 (patch)
treef76e08155235334542f0cbbbe853c5bc269a2768 /app/src/main/java/se/leap/bitmaskclient/eip
parent52cb75f3ea6283207956ebaed6d7e3837f678ece (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.java12
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());