mirror of
https://github.com/siderolabs/talos.git
synced 2025-10-18 11:01:12 +02:00
fix: parse correctly kernel command line missing DNS config
If nameserver is missing, `net.ParseIP` parses it as `nil` `net.IP` and later on this `<nil>` address is pushed to `resolv.conf`. Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
This commit is contained in:
parent
e495e29308
commit
cebd88f77c
@ -225,10 +225,13 @@ func buildKernelOptions(cmdline string) (name string, opts []nic.Option) {
|
|||||||
// case 6:
|
// case 6:
|
||||||
// Primary DNS Resolver
|
// Primary DNS Resolver
|
||||||
case 7:
|
case 7:
|
||||||
resolvers = append(resolvers, net.ParseIP(field))
|
fallthrough
|
||||||
// Secondary DNS Resolver
|
// Secondary DNS Resolver
|
||||||
case 8:
|
case 8:
|
||||||
resolvers = append(resolvers, net.ParseIP(field))
|
nameserverIP := net.ParseIP(field)
|
||||||
|
if nameserverIP != nil {
|
||||||
|
resolvers = append(resolvers, nameserverIP)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// NTP server
|
// NTP server
|
||||||
|
@ -52,6 +52,22 @@ func (suite *NetconfSuite) TestKernelNetconf() {
|
|||||||
suite.Assert().Equal(len(addr.Routes()), 1)
|
suite.Assert().Equal(len(addr.Routes()), 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (suite *NetconfSuite) TestKernelNetconfIncomplete() {
|
||||||
|
name, opts := buildKernelOptions("1.1.1.1::3.3.3.3:255.255.255.0::eth0:none:::")
|
||||||
|
|
||||||
|
iface, err := nic.New(opts...)
|
||||||
|
suite.Require().NoError(err)
|
||||||
|
|
||||||
|
suite.Assert().Equal(iface.Name, name)
|
||||||
|
suite.Assert().Equal(len(iface.AddressMethod), 1)
|
||||||
|
addr := iface.AddressMethod[0]
|
||||||
|
suite.Assert().Equal(addr.Name(), "static")
|
||||||
|
suite.Assert().Equal(addr.Hostname(), "")
|
||||||
|
suite.Assert().Equal(addr.Address().IP, net.ParseIP("1.1.1.1"))
|
||||||
|
suite.Assert().Len(addr.Resolvers(), 0)
|
||||||
|
suite.Assert().Equal(len(addr.Routes()), 1)
|
||||||
|
}
|
||||||
|
|
||||||
func sampleConfig() []machine.Device {
|
func sampleConfig() []machine.Device {
|
||||||
return []machine.Device{
|
return []machine.Device{
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user