blob: f75dafde2ddfdb5a0d900c3e97da3596144400ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
//
// QuicObfuscator.swift
// MullvadVPN
//
// Created by Jon Petersson on 2025-09-04.
// Copyright © 2025 Mullvad VPN AB. All rights reserved.
//
import MullvadSettings
import MullvadTypes
struct QuicObfuscator: RelayObfuscating {
let relays: REST.ServerRelaysResponse
let tunnelSettings: LatestTunnelSettings
let connectionAttemptCount: UInt
func obfuscate() -> RelayObfuscation {
RelayObfuscation(
allRelays: relays,
obfuscatedRelays: filterQuicRelays(from: relays),
port: .only(443),
method: .quic
)
}
private func filterQuicRelays(from relays: REST.ServerRelaysResponse) -> REST.ServerRelaysResponse {
REST.ServerRelaysResponse(
locations: relays.locations,
wireguard: REST.ServerWireguardTunnels(
ipv4Gateway: relays.wireguard.ipv4Gateway,
ipv6Gateway: relays.wireguard.ipv6Gateway,
portRanges: relays.wireguard.portRanges,
relays: relays.wireguard.relays.filter { $0.supportsQuic },
shadowsocksPortRanges: relays.wireguard.shadowsocksPortRanges
),
bridge: relays.bridge
)
}
}
|