diff --git a/machine.go b/machine.go index 4399029c..9fe450a7 100644 --- a/machine.go +++ b/machine.go @@ -4,6 +4,7 @@ import ( "database/sql/driver" "errors" "fmt" + "net/netip" "sort" "strconv" "strings" @@ -12,7 +13,6 @@ import ( v1 "github.com/juanfont/headscale/gen/go/headscale/v1" "github.com/rs/zerolog/log" "google.golang.org/protobuf/types/known/timestamppb" - "inet.af/netaddr" "tailscale.com/tailcfg" "tailscale.com/types/key" ) @@ -83,7 +83,7 @@ type ( MachinesP []*Machine ) -type MachineAddresses []netaddr.IP +type MachineAddresses []netip.Addr func (ma MachineAddresses) ToStringSlice() []string { strSlice := make([]string, 0, len(ma)) @@ -103,7 +103,7 @@ func (ma *MachineAddresses) Scan(destination interface{}) error { if len(addr) < 1 { continue } - parsed, err := netaddr.ParseIP(addr) + parsed, err := netip.ParseAddr(addr) if err != nil { return err } @@ -623,14 +623,14 @@ func (machine Machine) toNode( discoKey = key.DiscoPublic{} } - addrs := []netaddr.IPPrefix{} + addrs := []netip.Prefix{} for _, machineAddress := range machine.IPAddresses { - ip := netaddr.IPPrefixFrom(machineAddress, machineAddress.BitLen()) + ip := netip.PrefixFrom(machineAddress, machineAddress.BitLen()) addrs = append(addrs, ip) } allowedIPs := append( - []netaddr.IPPrefix{}, + []netip.Prefix{}, addrs...) // we append the node own IP, as it is required by the clients // TODO(kradalby): Needs investigation, We probably dont need this condition @@ -873,16 +873,16 @@ func (h *Headscale) RegisterMachine(machine Machine, return &machine, nil } -func (machine *Machine) GetAdvertisedRoutes() []netaddr.IPPrefix { +func (machine *Machine) GetAdvertisedRoutes() []netip.Prefix { return machine.HostInfo.RoutableIPs } -func (machine *Machine) GetEnabledRoutes() []netaddr.IPPrefix { +func (machine *Machine) GetEnabledRoutes() []netip.Prefix { return machine.EnabledRoutes } func (machine *Machine) IsRoutesEnabled(routeStr string) bool { - route, err := netaddr.ParseIPPrefix(routeStr) + route, err := netip.ParsePrefix(routeStr) if err != nil { return false } @@ -901,9 +901,9 @@ func (machine *Machine) IsRoutesEnabled(routeStr string) bool { // EnableNodeRoute enables new routes based on a list of new routes. It will _replace_ the // previous list of routes. func (h *Headscale) EnableRoutes(machine *Machine, routeStrs ...string) error { - newRoutes := make([]netaddr.IPPrefix, len(routeStrs)) + newRoutes := make([]netip.Prefix, len(routeStrs)) for index, routeStr := range routeStrs { - route, err := netaddr.ParseIPPrefix(routeStr) + route, err := netip.ParsePrefix(routeStr) if err != nil { return err } diff --git a/machine_test.go b/machine_test.go index 5da0906f..cadd0df8 100644 --- a/machine_test.go +++ b/machine_test.go @@ -2,6 +2,7 @@ package headscale import ( "fmt" + "net/netip" "reflect" "strconv" "strings" @@ -9,7 +10,6 @@ import ( "time" "gopkg.in/check.v1" - "inet.af/netaddr" "tailscale.com/tailcfg" "tailscale.com/types/key" ) @@ -229,7 +229,7 @@ func (s *Suite) TestGetACLFilteredPeers(c *check.C) { NodeKey: "bar" + strconv.Itoa(index), DiscoKey: "faa" + strconv.Itoa(index), IPAddresses: MachineAddresses{ - netaddr.MustParseIP(fmt.Sprintf("100.64.0.%v", strconv.Itoa(index+1))), + netip.MustParseAddr(fmt.Sprintf("100.64.0.%v", strconv.Itoa(index+1))), }, Hostname: "testmachine" + strconv.Itoa(index), NamespaceID: stor[index%2].namespace.ID, @@ -243,7 +243,7 @@ func (s *Suite) TestGetACLFilteredPeers(c *check.C) { Groups: map[string][]string{ "group:test": {"admin"}, }, - Hosts: map[string]netaddr.IPPrefix{}, + Hosts: map[string]netip.Prefix{}, TagOwners: map[string][]string{}, ACLs: []ACL{ { @@ -326,9 +326,9 @@ func (s *Suite) TestExpireMachine(c *check.C) { } func (s *Suite) TestSerdeAddressStrignSlice(c *check.C) { - input := MachineAddresses([]netaddr.IP{ - netaddr.MustParseIP("192.0.2.1"), - netaddr.MustParseIP("2001:db8::1"), + input := MachineAddresses([]netip.Addr{ + netip.MustParseAddr("192.0.2.1"), + netip.MustParseAddr("2001:db8::1"), }) serialized, err := input.Value() c.Assert(err, check.IsNil) @@ -559,21 +559,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -588,19 +588,19 @@ func Test_getFilteredByACLPeers(t *testing.T) { }, machine: &Machine{ // current machine ID: 1, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.1")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.1")}, Namespace: Namespace{Name: "joe"}, }, }, want: Machines{ { ID: 2, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.2")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.2")}, Namespace: Namespace{Name: "marc"}, }, { ID: 3, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.3")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.3")}, Namespace: Namespace{Name: "mickael"}, }, }, @@ -612,21 +612,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -641,14 +641,14 @@ func Test_getFilteredByACLPeers(t *testing.T) { }, machine: &Machine{ // current machine ID: 1, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.1")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.1")}, Namespace: Namespace{Name: "joe"}, }, }, want: Machines{ { ID: 2, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.2")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.2")}, Namespace: Namespace{Name: "marc"}, }, }, @@ -660,21 +660,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -689,14 +689,14 @@ func Test_getFilteredByACLPeers(t *testing.T) { }, machine: &Machine{ // current machine ID: 2, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.2")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.2")}, Namespace: Namespace{Name: "marc"}, }, }, want: Machines{ { ID: 3, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.3")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.3")}, Namespace: Namespace{Name: "mickael"}, }, }, @@ -708,21 +708,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -738,7 +738,7 @@ func Test_getFilteredByACLPeers(t *testing.T) { machine: &Machine{ // current machine ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, @@ -747,7 +747,7 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, @@ -760,21 +760,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -790,7 +790,7 @@ func Test_getFilteredByACLPeers(t *testing.T) { machine: &Machine{ // current machine ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, @@ -799,14 +799,14 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -819,21 +819,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -848,7 +848,7 @@ func Test_getFilteredByACLPeers(t *testing.T) { }, machine: &Machine{ // current machine ID: 2, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.2")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.2")}, Namespace: Namespace{Name: "marc"}, }, }, @@ -856,13 +856,13 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 3, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.3")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.3")}, Namespace: Namespace{Name: "mickael"}, }, }, @@ -874,21 +874,21 @@ func Test_getFilteredByACLPeers(t *testing.T) { { ID: 1, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.1"), + netip.MustParseAddr("100.64.0.1"), }, Namespace: Namespace{Name: "joe"}, }, { ID: 2, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.2"), + netip.MustParseAddr("100.64.0.2"), }, Namespace: Namespace{Name: "marc"}, }, { ID: 3, IPAddresses: MachineAddresses{ - netaddr.MustParseIP("100.64.0.3"), + netip.MustParseAddr("100.64.0.3"), }, Namespace: Namespace{Name: "mickael"}, }, @@ -897,7 +897,7 @@ func Test_getFilteredByACLPeers(t *testing.T) { }, machine: &Machine{ // current machine ID: 2, - IPAddresses: MachineAddresses{netaddr.MustParseIP("100.64.0.2")}, + IPAddresses: MachineAddresses{netip.MustParseAddr("100.64.0.2")}, Namespace: Namespace{Name: "marc"}, }, },