mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-23 11:27:29 +00:00
all: convert more code to use net/netip directly
perl -i -npe 's,netaddr.IPPrefixFrom,netip.PrefixFrom,' $(git grep -l -F netaddr.) perl -i -npe 's,netaddr.IPPortFrom,netip.AddrPortFrom,' $(git grep -l -F netaddr. ) perl -i -npe 's,netaddr.IPPrefix,netip.Prefix,g' $(git grep -l -F netaddr. ) perl -i -npe 's,netaddr.IPPort,netip.AddrPort,g' $(git grep -l -F netaddr. ) perl -i -npe 's,netaddr.IP\b,netip.Addr,g' $(git grep -l -F netaddr. ) perl -i -npe 's,netaddr.IPv6Raw\b,netip.AddrFrom16,g' $(git grep -l -F netaddr. ) goimports -w . Then delete some stuff from the net/netaddr shim package which is no longer neeed. Updates #5162 Change-Id: Ia7a86893fe21c7e3ee1ec823e8aba288d4566cd8 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:

committed by
Brad Fitzpatrick

parent
6a396731eb
commit
a12aad6b47
@@ -9,8 +9,6 @@ package dnstype
|
||||
|
||||
import (
|
||||
"net/netip"
|
||||
|
||||
"tailscale.com/net/netaddr"
|
||||
)
|
||||
|
||||
// Resolver is the configuration for one DNS resolver.
|
||||
@@ -29,20 +27,20 @@ type Resolver struct {
|
||||
// BootstrapResolution may be empty, in which case clients should
|
||||
// look up the DoT/DoH server using their local "classic" DNS
|
||||
// resolver.
|
||||
BootstrapResolution []netaddr.IP `json:",omitempty"`
|
||||
BootstrapResolution []netip.Addr `json:",omitempty"`
|
||||
}
|
||||
|
||||
// IPPort returns r.Addr as an IP address and port if either
|
||||
// r.Addr is an IP address (the common case) or if r.Addr
|
||||
// is an IP:port (as done in tests).
|
||||
func (r *Resolver) IPPort() (ipp netaddr.IPPort, ok bool) {
|
||||
func (r *Resolver) IPPort() (ipp netip.AddrPort, ok bool) {
|
||||
if r.Addr == "" || r.Addr[0] == 'h' || r.Addr[0] == 't' {
|
||||
// Fast path to avoid ParseIP error allocation for obviously not IP
|
||||
// cases.
|
||||
return
|
||||
}
|
||||
if ip, err := netip.ParseAddr(r.Addr); err == nil {
|
||||
return netaddr.IPPortFrom(ip, 53), true
|
||||
return netip.AddrPortFrom(ip, 53), true
|
||||
}
|
||||
if ipp, err := netip.ParseAddrPort(r.Addr); err == nil {
|
||||
return ipp, true
|
||||
|
@@ -9,8 +9,8 @@ package dnstype
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"net/netip"
|
||||
|
||||
"tailscale.com/net/netaddr"
|
||||
"tailscale.com/types/views"
|
||||
)
|
||||
|
||||
@@ -58,12 +58,12 @@ func (v *ResolverView) UnmarshalJSON(b []byte) error {
|
||||
}
|
||||
|
||||
func (v ResolverView) Addr() string { return v.ж.Addr }
|
||||
func (v ResolverView) BootstrapResolution() views.Slice[netaddr.IP] {
|
||||
func (v ResolverView) BootstrapResolution() views.Slice[netip.Addr] {
|
||||
return views.SliceOf(v.ж.BootstrapResolution)
|
||||
}
|
||||
|
||||
// A compilation failure here means this code must be regenerated, with the command at the top of this file.
|
||||
var _ResolverViewNeedsRegeneration = Resolver(struct {
|
||||
Addr string
|
||||
BootstrapResolution []netaddr.IP
|
||||
BootstrapResolution []netip.Addr
|
||||
}{})
|
||||
|
@@ -8,11 +8,11 @@ package netmap
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/netip"
|
||||
"reflect"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"tailscale.com/net/netaddr"
|
||||
"tailscale.com/tailcfg"
|
||||
"tailscale.com/types/key"
|
||||
"tailscale.com/wgengine/filter"
|
||||
@@ -31,7 +31,7 @@ type NetworkMap struct {
|
||||
Expiry time.Time
|
||||
// Name is the DNS name assigned to this node.
|
||||
Name string
|
||||
Addresses []netaddr.IPPrefix // same as tailcfg.Node.Addresses (IP addresses of this Node directly)
|
||||
Addresses []netip.Prefix // same as tailcfg.Node.Addresses (IP addresses of this Node directly)
|
||||
MachineStatus tailcfg.MachineStatus
|
||||
MachineKey key.MachinePublic
|
||||
Peers []*tailcfg.Node // sorted by Node.ID
|
||||
@@ -74,7 +74,7 @@ type NetworkMap struct {
|
||||
// PeerByTailscaleIP returns a peer's Node based on its Tailscale IP.
|
||||
//
|
||||
// If nm is nil or no peer is found, ok is false.
|
||||
func (nm *NetworkMap) PeerByTailscaleIP(ip netaddr.IP) (peer *tailcfg.Node, ok bool) {
|
||||
func (nm *NetworkMap) PeerByTailscaleIP(ip netip.Addr) (peer *tailcfg.Node, ok bool) {
|
||||
// TODO(bradfitz):
|
||||
if nm == nil {
|
||||
return nil, false
|
||||
@@ -305,7 +305,7 @@ func eqStringsIgnoreNil(a, b []string) bool {
|
||||
|
||||
// eqCIDRsIgnoreNil reports whether a and b have the same length and
|
||||
// contents, but ignore whether a or b are nil.
|
||||
func eqCIDRsIgnoreNil(a, b []netaddr.IPPrefix) bool {
|
||||
func eqCIDRsIgnoreNil(a, b []netip.Prefix) bool {
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
|
@@ -6,6 +6,7 @@ package netmap
|
||||
|
||||
import (
|
||||
"encoding/hex"
|
||||
"net/netip"
|
||||
"testing"
|
||||
|
||||
"go4.org/mem"
|
||||
@@ -256,7 +257,7 @@ func TestConciseDiffFrom(t *testing.T) {
|
||||
DERP: "127.3.3.40:2",
|
||||
Endpoints: []string{"192.168.0.100:41641", "1.1.1.1:41641"},
|
||||
DiscoKey: testDiscoKey("f00f00f00f"),
|
||||
AllowedIPs: []netaddr.IPPrefix{netaddr.IPPrefixFrom(netaddr.IPv4(100, 102, 103, 104), 32)},
|
||||
AllowedIPs: []netip.Prefix{netip.PrefixFrom(netaddr.IPv4(100, 102, 103, 104), 32)},
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -269,7 +270,7 @@ func TestConciseDiffFrom(t *testing.T) {
|
||||
DERP: "127.3.3.40:2",
|
||||
Endpoints: []string{"192.168.0.100:41641", "1.1.1.1:41641"},
|
||||
DiscoKey: testDiscoKey("ba4ba4ba4b"),
|
||||
AllowedIPs: []netaddr.IPPrefix{netaddr.IPPrefixFrom(netaddr.IPv4(100, 102, 103, 104), 32)},
|
||||
AllowedIPs: []netip.Prefix{netip.PrefixFrom(netaddr.IPv4(100, 102, 103, 104), 32)},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@@ -9,8 +9,8 @@ package views
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"net/netip"
|
||||
|
||||
"tailscale.com/net/netaddr"
|
||||
"tailscale.com/net/tsaddr"
|
||||
)
|
||||
|
||||
@@ -169,13 +169,13 @@ func SliceContains[T comparable](v Slice[T], e T) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// IPPrefixSlice is a read-only accessor for a slice of netaddr.IPPrefix.
|
||||
// IPPrefixSlice is a read-only accessor for a slice of netip.Prefix.
|
||||
type IPPrefixSlice struct {
|
||||
ж Slice[netaddr.IPPrefix]
|
||||
ж Slice[netip.Prefix]
|
||||
}
|
||||
|
||||
// IPPrefixSliceOf returns a IPPrefixSlice for the provided slice.
|
||||
func IPPrefixSliceOf(x []netaddr.IPPrefix) IPPrefixSlice { return IPPrefixSlice{SliceOf(x)} }
|
||||
func IPPrefixSliceOf(x []netip.Prefix) IPPrefixSlice { return IPPrefixSlice{SliceOf(x)} }
|
||||
|
||||
// IsNil reports whether the underlying slice is nil.
|
||||
func (v IPPrefixSlice) IsNil() bool { return v.ж.IsNil() }
|
||||
@@ -184,30 +184,30 @@ func (v IPPrefixSlice) IsNil() bool { return v.ж.IsNil() }
|
||||
func (v IPPrefixSlice) Len() int { return v.ж.Len() }
|
||||
|
||||
// At returns the IPPrefix at index `i` of the slice.
|
||||
func (v IPPrefixSlice) At(i int) netaddr.IPPrefix { return v.ж.At(i) }
|
||||
func (v IPPrefixSlice) At(i int) netip.Prefix { return v.ж.At(i) }
|
||||
|
||||
// AppendTo appends the underlying slice values to dst.
|
||||
func (v IPPrefixSlice) AppendTo(dst []netaddr.IPPrefix) []netaddr.IPPrefix {
|
||||
func (v IPPrefixSlice) AppendTo(dst []netip.Prefix) []netip.Prefix {
|
||||
return v.ж.AppendTo(dst)
|
||||
}
|
||||
|
||||
// Unwrap returns the underlying Slice[netaddr.IPPrefix].
|
||||
func (v IPPrefixSlice) Unwrap() Slice[netaddr.IPPrefix] {
|
||||
// Unwrap returns the underlying Slice[netip.Prefix].
|
||||
func (v IPPrefixSlice) Unwrap() Slice[netip.Prefix] {
|
||||
return v.ж
|
||||
}
|
||||
|
||||
// AsSlice returns a copy of underlying slice.
|
||||
func (v IPPrefixSlice) AsSlice() []netaddr.IPPrefix {
|
||||
func (v IPPrefixSlice) AsSlice() []netip.Prefix {
|
||||
return v.ж.AsSlice()
|
||||
}
|
||||
|
||||
// PrefixesContainsIP reports whether any IPPrefix contains IP.
|
||||
func (v IPPrefixSlice) ContainsIP(ip netaddr.IP) bool {
|
||||
func (v IPPrefixSlice) ContainsIP(ip netip.Addr) bool {
|
||||
return tsaddr.PrefixesContainsIP(v.ж.ж, ip)
|
||||
}
|
||||
|
||||
// PrefixesContainsFunc reports whether f is true for any IPPrefix in the slice.
|
||||
func (v IPPrefixSlice) ContainsFunc(f func(netaddr.IPPrefix) bool) bool {
|
||||
func (v IPPrefixSlice) ContainsFunc(f func(netip.Prefix) bool) bool {
|
||||
return tsaddr.PrefixesContainsFunc(v.ж.ж, f)
|
||||
}
|
||||
|
||||
|
@@ -13,11 +13,10 @@ import (
|
||||
"testing"
|
||||
|
||||
qt "github.com/frankban/quicktest"
|
||||
"tailscale.com/net/netaddr"
|
||||
)
|
||||
|
||||
func TestViewsJSON(t *testing.T) {
|
||||
mustCIDR := func(cidrs ...string) (out []netaddr.IPPrefix) {
|
||||
mustCIDR := func(cidrs ...string) (out []netip.Prefix) {
|
||||
for _, cidr := range cidrs {
|
||||
out = append(out, netip.MustParsePrefix(cidr))
|
||||
}
|
||||
|
Reference in New Issue
Block a user