diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-05-02 16:42:56 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-05-02 16:42:56 +0200 |
| commit | d75791d60f333f002920af80bd0164089f377931 (patch) | |
| tree | 5b545c3f80bb1116f5af3facd2b07174abbaa660 /ios | |
| parent | dc9b3f9292c31a1d90d68ab830fe9af41cd24ffa (diff) | |
| parent | 60d2962541ddab1543033a4aea2b0ef51dd42f4f (diff) | |
| download | mullvadvpn-d75791d60f333f002920af80bd0164089f377931.tar.xz mullvadvpn-d75791d60f333f002920af80bd0164089f377931.zip | |
Merge branch 'tunnel-obfuscation-add-quic'
Diffstat (limited to 'ios')
| -rw-r--r-- | ios/MullvadRustRuntime/TunnelObfuscator.swift | 4 | ||||
| -rw-r--r-- | ios/MullvadRustRuntime/include/mullvad_rust_runtime.h | 1 | ||||
| -rw-r--r-- | ios/PacketTunnelCore/Actor/ProtocolObfuscator.swift | 10 |
3 files changed, 11 insertions, 4 deletions
diff --git a/ios/MullvadRustRuntime/TunnelObfuscator.swift b/ios/MullvadRustRuntime/TunnelObfuscator.swift index 091a2e0e03..495930b222 100644 --- a/ios/MullvadRustRuntime/TunnelObfuscator.swift +++ b/ios/MullvadRustRuntime/TunnelObfuscator.swift @@ -14,6 +14,7 @@ import Network public enum TunnelObfuscationProtocol { case udpOverTcp case shadowsocks + case quic } public protocol TunnelObfuscation { @@ -53,6 +54,8 @@ public final class TunnelObfuscator: TunnelObfuscation { .tcp case .shadowsocks: .udp + case .quic: + .udp } } @@ -74,6 +77,7 @@ public final class TunnelObfuscator: TunnelObfuscation { let obfuscationProtocol = switch obfuscationProtocol { case .udpOverTcp: TunnelObfuscatorProtocol(0) case .shadowsocks: TunnelObfuscatorProtocol(1) + case .quic: TunnelObfuscatorProtocol(2) } let result = withUnsafeMutablePointer(to: &proxyHandle) { proxyHandlePointer in diff --git a/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h b/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h index b4f4a65e2f..fa24141e42 100644 --- a/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h +++ b/ios/MullvadRustRuntime/include/mullvad_rust_runtime.h @@ -23,6 +23,7 @@ typedef uint8_t SwiftAccessMethodKind; enum TunnelObfuscatorProtocol { UdpOverTcp = 0, Shadowsocks, + Quic, }; typedef uint8_t TunnelObfuscatorProtocol; diff --git a/ios/PacketTunnelCore/Actor/ProtocolObfuscator.swift b/ios/PacketTunnelCore/Actor/ProtocolObfuscator.swift index 51070accf8..b6588d6de6 100644 --- a/ios/PacketTunnelCore/Actor/ProtocolObfuscator.swift +++ b/ios/PacketTunnelCore/Actor/ProtocolObfuscator.swift @@ -61,13 +61,15 @@ public class ProtocolObfuscator<Obfuscator: TunnelObfuscation>: ProtocolObfuscat } #if DEBUG - // TODO: Revisit this when QUIC obfuscation is available to use, use shadowsocks over 443 for the time being + let obfuscationProtocol: TunnelObfuscationProtocol = switch obfuscationMethod { + case .shadowsocks: .shadowsocks + case .quic: .quic + default: .udpOverTcp + } let obfuscator = Obfuscator( remoteAddress: endpoint.ipv4Relay.ip, tcpPort: remotePort, - obfuscationProtocol: (obfuscationMethod == .shadowsocks || obfuscationMethod == .quic) - ? .shadowsocks - : .udpOverTcp + obfuscationProtocol: obfuscationProtocol ) #else // At this point, the only possible obfuscation methods should be either `.udpOverTcp` or `.shadowsocks` |
