diff --git a/.gitignore b/.gitignore index e7f55736..5b067dce 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /querylog.json /querylog.json.1 coverage.txt +leases.db # Test output dnsfilter/tests/top-1m.csv diff --git a/internal/dhcpd/v4.go b/internal/dhcpd/v4.go index 686ee32f..81ba3a1d 100644 --- a/internal/dhcpd/v4.go +++ b/internal/dhcpd/v4.go @@ -581,6 +581,11 @@ func (s *v4Server) Start() error { return fmt.Errorf("dhcpv4: interface %s: %w", ifaceName, err) } + if len(dnsIPAddrs) == 0 { + // No available IP addresses which may appear later. + return nil + } + s.conf.dnsIPAddrs = dnsIPAddrs laddr := &net.UDPAddr{ diff --git a/internal/dhcpd/v6.go b/internal/dhcpd/v6.go index 300788e6..7b13dcfd 100644 --- a/internal/dhcpd/v6.go +++ b/internal/dhcpd/v6.go @@ -579,6 +579,11 @@ func (s *v6Server) Start() error { return fmt.Errorf("dhcpv6: interface %s: %w", ifaceName, err) } + if len(dnsIPAddrs) == 0 { + // No available IP addresses which may appear later. + return nil + } + s.conf.dnsIPAddrs = dnsIPAddrs err = s.initRA(iface)