Migrate config.go to net/netip
This commit is contained in:
parent
12385d4357
commit
197da8afcb
1 changed files with 13 additions and 11 deletions
24
config.go
24
config.go
|
@ -9,11 +9,13 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"net/netip"
|
||||||
|
|
||||||
"github.com/coreos/go-oidc/v3/oidc"
|
"github.com/coreos/go-oidc/v3/oidc"
|
||||||
"github.com/rs/zerolog"
|
"github.com/rs/zerolog"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"inet.af/netaddr"
|
"go4.org/netipx"
|
||||||
"tailscale.com/tailcfg"
|
"tailscale.com/tailcfg"
|
||||||
"tailscale.com/types/dnstype"
|
"tailscale.com/types/dnstype"
|
||||||
)
|
)
|
||||||
|
@ -32,7 +34,7 @@ type Config struct {
|
||||||
GRPCAllowInsecure bool
|
GRPCAllowInsecure bool
|
||||||
EphemeralNodeInactivityTimeout time.Duration
|
EphemeralNodeInactivityTimeout time.Duration
|
||||||
NodeUpdateCheckInterval time.Duration
|
NodeUpdateCheckInterval time.Duration
|
||||||
IPPrefixes []netaddr.IPPrefix
|
IPPrefixes []netip.Prefix
|
||||||
PrivateKeyPath string
|
PrivateKeyPath string
|
||||||
NoisePrivateKeyPath string
|
NoisePrivateKeyPath string
|
||||||
BaseDomain string
|
BaseDomain string
|
||||||
|
@ -340,11 +342,11 @@ func GetDNSConfig() (*tailcfg.DNSConfig, string) {
|
||||||
if viper.IsSet("dns_config.nameservers") {
|
if viper.IsSet("dns_config.nameservers") {
|
||||||
nameserversStr := viper.GetStringSlice("dns_config.nameservers")
|
nameserversStr := viper.GetStringSlice("dns_config.nameservers")
|
||||||
|
|
||||||
nameservers := make([]netaddr.IP, len(nameserversStr))
|
nameservers := make([]netip.Addr, len(nameserversStr))
|
||||||
resolvers := make([]*dnstype.Resolver, len(nameserversStr))
|
resolvers := make([]*dnstype.Resolver, len(nameserversStr))
|
||||||
|
|
||||||
for index, nameserverStr := range nameserversStr {
|
for index, nameserverStr := range nameserversStr {
|
||||||
nameserver, err := netaddr.ParseIP(nameserverStr)
|
nameserver, err := netip.ParseAddr(nameserverStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().
|
log.Error().
|
||||||
Str("func", "getDNSConfig").
|
Str("func", "getDNSConfig").
|
||||||
|
@ -374,7 +376,7 @@ func GetDNSConfig() (*tailcfg.DNSConfig, string) {
|
||||||
len(restrictedNameservers),
|
len(restrictedNameservers),
|
||||||
)
|
)
|
||||||
for index, nameserverStr := range restrictedNameservers {
|
for index, nameserverStr := range restrictedNameservers {
|
||||||
nameserver, err := netaddr.ParseIP(nameserverStr)
|
nameserver, err := netip.ParseAddr(nameserverStr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().
|
log.Error().
|
||||||
Str("func", "getDNSConfig").
|
Str("func", "getDNSConfig").
|
||||||
|
@ -427,7 +429,7 @@ func GetHeadscaleConfig() (*Config, error) {
|
||||||
randomizeClientPort := viper.GetBool("randomize_client_port")
|
randomizeClientPort := viper.GetBool("randomize_client_port")
|
||||||
|
|
||||||
configuredPrefixes := viper.GetStringSlice("ip_prefixes")
|
configuredPrefixes := viper.GetStringSlice("ip_prefixes")
|
||||||
parsedPrefixes := make([]netaddr.IPPrefix, 0, len(configuredPrefixes)+1)
|
parsedPrefixes := make([]netip.Prefix, 0, len(configuredPrefixes)+1)
|
||||||
|
|
||||||
logLevelStr := viper.GetString("log_level")
|
logLevelStr := viper.GetString("log_level")
|
||||||
logLevel, err := zerolog.ParseLevel(logLevelStr)
|
logLevel, err := zerolog.ParseLevel(logLevelStr)
|
||||||
|
@ -444,7 +446,7 @@ func GetHeadscaleConfig() (*Config, error) {
|
||||||
"use of 'ip_prefix' for configuration is deprecated",
|
"use of 'ip_prefix' for configuration is deprecated",
|
||||||
"please see 'ip_prefixes' in the shipped example.",
|
"please see 'ip_prefixes' in the shipped example.",
|
||||||
)
|
)
|
||||||
legacyPrefix, err := netaddr.ParseIPPrefix(legacyPrefixField)
|
legacyPrefix, err := netip.ParsePrefix(legacyPrefixField)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Errorf("failed to parse ip_prefix: %w", err))
|
panic(fmt.Errorf("failed to parse ip_prefix: %w", err))
|
||||||
}
|
}
|
||||||
|
@ -452,19 +454,19 @@ func GetHeadscaleConfig() (*Config, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, prefixInConfig := range configuredPrefixes {
|
for i, prefixInConfig := range configuredPrefixes {
|
||||||
prefix, err := netaddr.ParseIPPrefix(prefixInConfig)
|
prefix, err := netip.ParsePrefix(prefixInConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Errorf("failed to parse ip_prefixes[%d]: %w", i, err))
|
panic(fmt.Errorf("failed to parse ip_prefixes[%d]: %w", i, err))
|
||||||
}
|
}
|
||||||
parsedPrefixes = append(parsedPrefixes, prefix)
|
parsedPrefixes = append(parsedPrefixes, prefix)
|
||||||
}
|
}
|
||||||
|
|
||||||
prefixes := make([]netaddr.IPPrefix, 0, len(parsedPrefixes))
|
prefixes := make([]netip.Prefix, 0, len(parsedPrefixes))
|
||||||
{
|
{
|
||||||
// dedup
|
// dedup
|
||||||
normalizedPrefixes := make(map[string]int, len(parsedPrefixes))
|
normalizedPrefixes := make(map[string]int, len(parsedPrefixes))
|
||||||
for i, p := range parsedPrefixes {
|
for i, p := range parsedPrefixes {
|
||||||
normalized, _ := p.Range().Prefix()
|
normalized, _ := netipx.RangeOfPrefix(p).Prefix()
|
||||||
normalizedPrefixes[normalized.String()] = i
|
normalizedPrefixes[normalized.String()] = i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,7 +477,7 @@ func GetHeadscaleConfig() (*Config, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(prefixes) < 1 {
|
if len(prefixes) < 1 {
|
||||||
prefixes = append(prefixes, netaddr.MustParseIPPrefix("100.64.0.0/10"))
|
prefixes = append(prefixes, netip.MustParsePrefix("100.64.0.0/10"))
|
||||||
log.Warn().
|
log.Warn().
|
||||||
Msgf("'ip_prefixes' not configured, falling back to default: %v", prefixes)
|
Msgf("'ip_prefixes' not configured, falling back to default: %v", prefixes)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue