aboutsummaryrefslogtreecommitdiffstats
path: root/Sources/WireGuardKit
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2020-12-15 13:49:21 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2020-12-15 15:54:12 +0100
commit9231c03513e480a0a6f7ed2aa86f69e47d078774 (patch)
tree3562cbdecf2ecbffb231bd48300efaa097c89c63 /Sources/WireGuardKit
parentWireGuardKitGo: update to latest wireguard-go tag (diff)
downloadwireguard-apple-9231c03513e480a0a6f7ed2aa86f69e47d078774.tar.xz
wireguard-apple-9231c03513e480a0a6f7ed2aa86f69e47d078774.zip
global: support DNS search domains
This has been supported by Windows and Linux for quite some time. Add support here for iOS and macOS. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'Sources/WireGuardKit')
-rw-r--r--Sources/WireGuardKit/InterfaceConfiguration.swift4
-rw-r--r--Sources/WireGuardKit/PacketTunnelSettingsGenerator.swift1
2 files changed, 4 insertions, 1 deletions
diff --git a/Sources/WireGuardKit/InterfaceConfiguration.swift b/Sources/WireGuardKit/InterfaceConfiguration.swift
index 2d104d2..02bed98 100644
--- a/Sources/WireGuardKit/InterfaceConfiguration.swift
+++ b/Sources/WireGuardKit/InterfaceConfiguration.swift
@@ -10,6 +10,7 @@ public struct InterfaceConfiguration {
public var listenPort: UInt16?
public var mtu: UInt16?
public var dns = [DNSServer]()
+ public var dnsSearch = [String]()
public init(privateKey: PrivateKey) {
self.privateKey = privateKey
@@ -25,6 +26,7 @@ extension InterfaceConfiguration: Equatable {
lhsAddresses == rhsAddresses &&
lhs.listenPort == rhs.listenPort &&
lhs.mtu == rhs.mtu &&
- lhs.dns == rhs.dns
+ lhs.dns == rhs.dns &&
+ lhs.dnsSearch == rhs.dnsSearch
}
}
diff --git a/Sources/WireGuardKit/PacketTunnelSettingsGenerator.swift b/Sources/WireGuardKit/PacketTunnelSettingsGenerator.swift
index 0ddc1b7..034ecaf 100644
--- a/Sources/WireGuardKit/PacketTunnelSettingsGenerator.swift
+++ b/Sources/WireGuardKit/PacketTunnelSettingsGenerator.swift
@@ -85,6 +85,7 @@ class PacketTunnelSettingsGenerator {
let dnsServerStrings = tunnelConfiguration.interface.dns.map { $0.stringRepresentation }
let dnsSettings = NEDNSSettings(servers: dnsServerStrings)
+ dnsSettings.searchDomains = tunnelConfiguration.interface.dnsSearch
dnsSettings.matchDomains = [""] // All DNS queries must first go through the tunnel's DNS
networkSettings.dnsSettings = dnsSettings