File tree Expand file tree Collapse file tree
Sources/Services/ContainerAPIService/Client
Tests/ContainerAPIClientTests Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -223,7 +223,11 @@ public struct Utility {
223223 if management. dnsDisabled {
224224 config. dns = nil
225225 } else {
226- config. dns = dnsConfiguration ( from: management. dns, defaults: containerSystemConfig. container. dns)
226+ config. dns = dnsConfiguration (
227+ from: management. dns,
228+ defaults: containerSystemConfig. container. dns,
229+ hostDomainFallback: containerSystemConfig. dns. domain
230+ )
227231 }
228232
229233 config. rosetta = management. rosetta || ( Platform . current. architecture == " arm64 " && requestedPlatform. architecture == " amd64 " )
@@ -326,13 +330,14 @@ public struct Utility {
326330
327331 public static func dnsConfiguration(
328332 from flags: Flags . DNS ,
329- defaults: ContainerDNSConfig
333+ defaults: ContainerDNSConfig ,
334+ hostDomainFallback: String ? = nil
330335 ) -> ContainerConfiguration . DNSConfiguration {
331336 let nameservers =
332337 flags. nameservers. isEmpty
333338 ? defaults. nameservers
334339 : flags. nameservers
335- let domain = flags. domain ?? defaults. domain
340+ let domain = flags. domain ?? defaults. domain ?? hostDomainFallback
336341 let searchDomains =
337342 flags. searchDomains. isEmpty
338343 ? defaults. searchDomains
Original file line number Diff line number Diff line change @@ -161,6 +161,36 @@ struct UtilityTests {
161161 #expect( result. options == [ " ndots:2 " ] )
162162 }
163163
164+ @Test
165+ func testDNSConfigurationDomainFallsBackToHostDomain( ) {
166+ let defaults = ContainerDNSConfig ( )
167+ let flags = Flags . DNS (
168+ domain: nil ,
169+ nameservers: [ ] ,
170+ options: [ ] ,
171+ searchDomains: [ ]
172+ )
173+
174+ let result = Utility . dnsConfiguration ( from: flags, defaults: defaults, hostDomainFallback: " host.local " )
175+
176+ #expect( result. domain == " host.local " )
177+ }
178+
179+ @Test
180+ func testDNSConfigurationContainerDomainWinsOverHostDomain( ) {
181+ let defaults = ContainerDNSConfig ( domain: " container.local " )
182+ let flags = Flags . DNS (
183+ domain: nil ,
184+ nameservers: [ ] ,
185+ options: [ ] ,
186+ searchDomains: [ ]
187+ )
188+
189+ let result = Utility . dnsConfiguration ( from: flags, defaults: defaults, hostDomainFallback: " host.local " )
190+
191+ #expect( result. domain == " container.local " )
192+ }
193+
164194 @Test
165195 func testPublishPortParser( ) throws {
166196 let ports = try Parser . publishPorts ( [
You can’t perform that action at this time.
0 commit comments