fix lint errors

This commit is contained in:
Siyuan 2025-10-10 13:56:07 +00:00
parent e47442d701
commit 59b7141d84
6 changed files with 38 additions and 59 deletions

View File

@ -9,7 +9,6 @@ import (
"github.com/jetkvm/kvm/pkg/nmlite/jetdhcpc"
"github.com/jetkvm/kvm/pkg/nmlite/udhcpc"
"github.com/rs/zerolog"
"github.com/vishvananda/netlink"
)
// DHCPClient wraps the dhclient package for use in the network manager
@ -19,7 +18,6 @@ type DHCPClient struct {
logger *zerolog.Logger
client types.DHCPClient
clientType string
link netlink.Link
// Configuration
ipv4Enabled bool
@ -181,7 +179,9 @@ func (dc *DHCPClient) Renew() error {
}
dc.logger.Info().Msg("renewing DHCP lease")
dc.client.Renew()
if err := dc.client.Renew(); err != nil {
return fmt.Errorf("failed to renew DHCP lease: %w", err)
}
return nil
}
@ -192,7 +192,9 @@ func (dc *DHCPClient) Release() error {
}
dc.logger.Info().Msg("releasing DHCP lease")
dc.client.Release()
if err := dc.client.Release(); err != nil {
return fmt.Errorf("failed to release DHCP lease: %w", err)
}
return nil
}

View File

@ -256,38 +256,6 @@ func ToValidHostname(hostname string) string {
// ValidateHostname validates a hostname
func ValidateHostname(hostname string) error {
if hostname == "" {
return fmt.Errorf("hostname cannot be empty")
}
validHostname := ToValidHostname(hostname)
if validHostname != hostname {
return fmt.Errorf("hostname contains invalid characters: %s", hostname)
}
if len(hostname) > 253 {
return fmt.Errorf("hostname too long: %d characters (max 253)", len(hostname))
}
// Check for valid characters (alphanumeric, hyphens, dots)
for _, char := range hostname {
if !((char >= 'a' && char <= 'z') ||
(char >= 'A' && char <= 'Z') ||
(char >= '0' && char <= '9') ||
char == '-' || char == '.') {
return fmt.Errorf("hostname contains invalid character: %c", char)
}
}
// Check that it doesn't start or end with hyphen
if strings.HasPrefix(hostname, "-") || strings.HasSuffix(hostname, "-") {
return fmt.Errorf("hostname cannot start or end with hyphen")
}
// Check that it doesn't start or end with dot
if strings.HasPrefix(hostname, ".") || strings.HasSuffix(hostname, ".") {
return fmt.Errorf("hostname cannot start or end with dot")
}
return nil
}
_, err := idna.Lookup.ToASCII(hostname)
return err
}

View File

@ -160,7 +160,9 @@ func (im *InterfaceManager) Stop() error {
// Stop DHCP client
if im.dhcpClient != nil {
im.dhcpClient.Stop()
if err := im.dhcpClient.Stop(); err != nil {
return fmt.Errorf("failed to stop DHCP client: %w", err)
}
}
im.logger.Info().Msg("interface manager stopped")
@ -241,7 +243,7 @@ func (im *InterfaceManager) GetIPv6Addresses() []string {
addresses = append(addresses, addr.Address.String())
}
return []string{}
return addresses
}
// GetMACAddress returns the MAC address of the interface
@ -544,7 +546,9 @@ func (im *InterfaceManager) applyIPv6SLAACAndDHCP() error {
// Enable both SLAAC and DHCPv6
if im.dhcpClient != nil {
im.dhcpClient.SetIPv6(true)
im.dhcpClient.Start()
if err := im.dhcpClient.Start(); err != nil {
return fmt.Errorf("failed to start DHCP client: %w", err)
}
}
return im.staticConfig.EnableIPv6SLAAC()
@ -644,15 +648,23 @@ func (im *InterfaceManager) SendRouterSolicitation() error {
func (im *InterfaceManager) handleLinkUp() {
im.logger.Info().Msg("link up")
im.applyConfiguration()
if err := im.applyConfiguration(); err != nil {
im.logger.Error().Err(err).Msg("failed to apply configuration")
}
if im.config.IPv4Mode.String == "dhcp" {
im.dhcpClient.Renew()
if err := im.dhcpClient.Renew(); err != nil {
im.logger.Error().Err(err).Msg("failed to renew DHCP lease")
}
}
if im.config.IPv6Mode.String == "slaac" {
im.staticConfig.EnableIPv6SLAAC()
im.SendRouterSolicitation()
if err := im.staticConfig.EnableIPv6SLAAC(); err != nil {
im.logger.Error().Err(err).Msg("failed to enable IPv6 SLAAC")
}
if err := im.SendRouterSolicitation(); err != nil {
im.logger.Error().Err(err).Msg("failed to send router solicitation")
}
}
}
@ -660,7 +672,9 @@ func (im *InterfaceManager) handleLinkDown() {
im.logger.Info().Msg("link down")
if im.config.IPv4Mode.String == "dhcp" {
im.dhcpClient.Stop()
if err := im.dhcpClient.Stop(); err != nil {
im.logger.Error().Err(err).Msg("failed to stop DHCP client")
}
}
netlinkMgr := getNetlinkManager()
@ -694,7 +708,6 @@ func (im *InterfaceManager) monitorInterfaceState() {
}
}
}
}
// updateStateFromDHCPLease updates the state from a DHCP lease
@ -707,7 +720,6 @@ func (im *InterfaceManager) updateStateFromDHCPLease(lease *types.DHCPLease) {
family = link.AfInet6
} else {
im.state.DHCPLease4 = lease
family = link.AfInet
}
im.stateMu.Unlock()

View File

@ -96,8 +96,7 @@ func (nm *NetworkManager) AddInterface(iface string, config *types.NetworkConfig
})
im.SetOnResolvConfChange(func(family int, resolvConf *types.InterfaceResolvConf) error {
nm.resolvConf.SetInterfaceConfig(iface, family, *resolvConf)
return nil
return nm.resolvConf.SetInterfaceConfig(iface, family, *resolvConf)
})
nm.interfaces[iface] = im

View File

@ -79,7 +79,9 @@ func (rcm *ResolvConfManager) SetInterfaceConfig(iface string, family int, confi
}
rcm.mu.Unlock()
rcm.reconcileHostname()
if err := rcm.reconcileHostname(); err != nil {
return fmt.Errorf("failed to reconcile hostname: %w", err)
}
return rcm.update()
}
@ -99,7 +101,9 @@ func (rcm *ResolvConfManager) SetConfig(resolvConf *types.ResolvConf) error {
// Reconcile reconciles the resolv.conf configuration
func (rcm *ResolvConfManager) Reconcile() error {
rcm.reconcileHostname()
if err := rcm.reconcileHostname(); err != nil {
return fmt.Errorf("failed to reconcile hostname: %w", err)
}
return rcm.update()
}

View File

@ -182,9 +182,3 @@ func (scm *StaticConfigManager) removeIPv4DefaultRoute() error {
netlinkMgr := getNetlinkManager()
return netlinkMgr.RemoveDefaultRoute(link.AfInet)
}
// enableIPv6 enables IPv6 on the interface
func (scm *StaticConfigManager) enableIPv6() error {
netlinkMgr := getNetlinkManager()
return netlinkMgr.EnableIPv6(scm.ifaceName)
}