Skip to content

Commit 7338553

Browse files
committed
Update OpenVPN/WireGuard builders
1 parent 8d5f961 commit 7338553

5 files changed

Lines changed: 18 additions & 8 deletions

File tree

Sources/PartoutOpenVPNConnection/Internal/NetworkSettingsBuilder.swift

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,23 @@ private extension NetworkSettingsBuilder {
230230

231231
if let domain = dnsDomain {
232232
pp_log(ctx, .openvpn, .info, "\tDNS: Set domain: \(domain.asSensitiveAddress(ctx))")
233-
dnsSettings.domainName = domain
233+
dnsSettings.domains = [domain]
234+
dnsSettings.isFirstDomainPrimary = true
235+
} else {
236+
dnsSettings.isFirstDomainPrimary = false
234237
}
235238

236239
let searchDomains = allDNSSearchDomains
237240
if !searchDomains.isEmpty {
238241
pp_log(ctx, .openvpn, .info, "\tDNS: Set search domains: \(searchDomains.map { $0.asSensitiveAddress(ctx) })")
239-
dnsSettings.searchDomains = searchDomains
242+
// First domain is main domain
243+
if var domains = dnsSettings.domains {
244+
let otherDomains = searchDomains.filter { !domains.contains($0) }
245+
domains.append(contentsOf: otherDomains)
246+
dnsSettings.domains = domains
247+
} else {
248+
dnsSettings.domains = searchDomains
249+
}
240250
}
241251

242252
do {

Sources/PartoutWireGuard/Internal/Configuration+WgQuickConfig.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ extension WireGuard.Configuration {
176176
}
177177
}
178178
interface.dns.servers = dnsServers.map(\.rawValue)
179-
interface.dns.searchDomains = dnsSearch
179+
interface.dns.domains = dnsSearch
180180
}
181181
if let mtuString = attributes["mtu"] {
182182
guard let mtu = UInt16(mtuString) else {

Sources/PartoutWireGuard/StandardWireGuardParser+Validate.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private extension WireGuard.Configuration.Builder {
2929
if !interface.addresses.isEmpty {
3030
lines.append("Address = \(interface.addresses.wgJoined)")
3131
}
32-
let dnsEntries = interface.dns.servers + (interface.dns.searchDomains ?? [])
32+
let dnsEntries = interface.dns.servers + (interface.dns.domains ?? [])
3333
if !dnsEntries.isEmpty {
3434
lines.append("DNS = \(dnsEntries.wgJoined)")
3535
}

Sources/PartoutWireGuardConnection/Legacy/Mappers/LocalInterface+WireGuardKit.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ extension WireGuard.LocalInterface {
1313

1414
var dnsBuilder = DNSModule.Builder()
1515
dnsBuilder.servers = wg.dns.map(\.stringRepresentation)
16-
dnsBuilder.searchDomains = wg.dnsSearch
16+
dnsBuilder.domains = wg.dnsSearch
1717
let dns = try dnsBuilder.build()
1818

1919
let mtu = wg.mtu

Tests/PartoutWireGuardTests/WireGuardParserTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Endpoint = 1.2.3.4:12345
6767

6868
var dns = DNSModule.Builder()
6969
dns.servers = ["1.2.3.4"]
70-
dns.searchDomains = ["domain.local"]
70+
dns.domains = ["domain.local"]
7171
sut.interface.dns = dns
7272

7373
let builder = WireGuardModule.Builder(configurationBuilder: sut)
@@ -113,7 +113,7 @@ Endpoint = 1.2.3.4:12345
113113
//
114114
// var dns = DNSModule.Builder()
115115
// dns.servers = ["1.a.2.$%3"]
116-
// dns.searchDomains = ["-invalid.example.com"]
116+
// dns.domains = ["-invalid.example.com"]
117117
// sut.interface.dns = dns
118118
//
119119
// do {
@@ -214,7 +214,7 @@ private extension WireGuardParserTests {
214214
builder.interface.addresses = ["1.2.3.4"]
215215
var dns = DNSModule.Builder()
216216
dns.servers = ["1.2.3.4"]
217-
dns.searchDomains = ["domain.local"]
217+
dns.domains = ["domain.local"]
218218
builder.interface.dns = dns
219219
}
220220
if withPeer {

0 commit comments

Comments
 (0)