diff --git a/pkg/nmlite/interface.go b/pkg/nmlite/interface.go index 15ebb1d1..ba22b6ee 100644 --- a/pkg/nmlite/interface.go +++ b/pkg/nmlite/interface.go @@ -182,6 +182,10 @@ func (im *InterfaceManager) IsUp() bool { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return false + } + return im.state.Up } @@ -190,6 +194,10 @@ func (im *InterfaceManager) IsOnline() bool { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return false + } + return im.state.Online } @@ -198,6 +206,10 @@ func (im *InterfaceManager) IPv4Ready() bool { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return false + } + return im.state.IPv4Ready } @@ -206,6 +218,10 @@ func (im *InterfaceManager) IPv6Ready() bool { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return false + } + return im.state.IPv6Ready } @@ -214,6 +230,10 @@ func (im *InterfaceManager) GetIPv4Addresses() []string { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return []string{} + } + return im.state.IPv4Addresses } @@ -222,6 +242,10 @@ func (im *InterfaceManager) GetIPv4Address() string { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return "" + } + return im.state.IPv4Address } @@ -230,6 +254,10 @@ func (im *InterfaceManager) GetIPv6Address() string { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return "" + } + return im.state.IPv6Address } @@ -239,6 +267,11 @@ func (im *InterfaceManager) GetIPv6Addresses() []string { defer im.stateMu.RUnlock() addresses := []string{} + + if im.state == nil { + return addresses + } + for _, addr := range im.state.IPv6Addresses { addresses = append(addresses, addr.Address.String()) } @@ -251,6 +284,10 @@ func (im *InterfaceManager) GetMACAddress() string { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return "" + } + return im.state.MACAddress } @@ -271,6 +308,10 @@ func (im *InterfaceManager) NTPServers() []net.IP { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return []net.IP{} + } + return im.state.NTPServers } @@ -278,6 +319,10 @@ func (im *InterfaceManager) Domain() string { im.stateMu.RLock() defer im.stateMu.RUnlock() + if im.state == nil { + return "" + } + if im.state.DHCPLease4 != nil { return im.state.DHCPLease4.Domain }