diff options
Diffstat (limited to 'WireGuard')
-rw-r--r-- | WireGuard/WireGuardNetworkExtension/DNSResolver.swift | 6 | ||||
-rw-r--r-- | WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift | 11 |
2 files changed, 15 insertions, 2 deletions
diff --git a/WireGuard/WireGuardNetworkExtension/DNSResolver.swift b/WireGuard/WireGuardNetworkExtension/DNSResolver.swift index f7a8f5b..16b7909 100644 --- a/WireGuard/WireGuardNetworkExtension/DNSResolver.swift +++ b/WireGuard/WireGuardNetworkExtension/DNSResolver.swift @@ -107,6 +107,7 @@ class DNSResolver { extension Endpoint { func withReresolvedIP() -> Endpoint { + #if os(iOS) var ret = self let hostname: String switch host { @@ -148,5 +149,10 @@ extension Endpoint { wg_log(.debug, message: "DNS64: mapped \(host) to itself.") } return ret + #elseif os(macOS) + return self + #else + #error("Unimplemented") + #endif } } diff --git a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift index cfc3aed..7c84491 100644 --- a/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift +++ b/WireGuard/WireGuardNetworkExtension/PacketTunnelProvider.swift @@ -30,6 +30,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } configureLogger() + #if os(macOS) + wgEnableRoaming(true) + #endif wg_log(.info, message: "Starting tunnel from the " + (activationAttemptId == nil ? "OS directly, rather than the app" : "app")) @@ -114,9 +117,13 @@ class PacketTunnelProvider: NEPacketTunnelProvider { } private func pathUpdate(path: Network.NWPath) { - guard let handle = handle, let packetTunnelSettingsGenerator = packetTunnelSettingsGenerator else { return } + guard let handle = handle else { return } wg_log(.debug, message: "Network change detected with \(path.status) route and interface order \(path.availableInterfaces)") - _ = packetTunnelSettingsGenerator.endpointUapiConfiguration().withGoString { return wgSetConfig(handle, $0) } + #if os(iOS) + if let packetTunnelSettingsGenerator = packetTunnelSettingsGenerator { + _ = packetTunnelSettingsGenerator.endpointUapiConfiguration().withGoString { return wgSetConfig(handle, $0) } + } + #endif var interfaces = path.availableInterfaces if let ifname = ifname { interfaces = interfaces.filter { $0.name != ifname } |