From 65ae66260fe29b08c0ee87a14a79031cc1f79d07 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 18 Dec 2020 00:22:12 -0800 Subject: [PATCH] wgengine/magicsock: unexport AddrSet. Signed-off-by: David Anderson --- wgengine/magicsock/legacy.go | 34 ++++++++++++++-------------- wgengine/magicsock/magicsock.go | 20 ++++++++-------- wgengine/magicsock/magicsock_test.go | 24 ++++++++++---------- 3 files changed, 39 insertions(+), 39 deletions(-) diff --git a/wgengine/magicsock/legacy.go b/wgengine/magicsock/legacy.go index dbb6e4804..e84f81e38 100644 --- a/wgengine/magicsock/legacy.go +++ b/wgengine/magicsock/legacy.go @@ -41,7 +41,7 @@ const sprayPeriod = 3 * time.Second // be fake addrs representing DERP servers. // // It also returns as's current roamAddr, if any. -func (as *AddrSet) appendDests(dsts []netaddr.IPPort, b []byte) (_ []netaddr.IPPort, roamAddr netaddr.IPPort) { +func (as *addrSet) appendDests(dsts []netaddr.IPPort, b []byte) (_ []netaddr.IPPort, roamAddr netaddr.IPPort) { spray := shouldSprayPacket(b) // true for handshakes now := as.timeNow() @@ -127,11 +127,11 @@ func (as *AddrSet) appendDests(dsts []netaddr.IPPort, b []byte) (_ []netaddr.IPP return dsts, roamAddr } -// AddrSet is a set of UDP addresses that implements wireguard/conn.Endpoint. +// addrSet is a set of UDP addresses that implements wireguard/conn.Endpoint. // // This is the legacy endpoint for peers that don't support discovery; // it predates discoEndpoint. -type AddrSet struct { +type addrSet struct { publicKey key.Public // peer public key used for DERP communication // addrs is an ordered priority list provided by wgengine, @@ -180,8 +180,8 @@ type AddrSet struct { loggedLogPriMask uint32 } -// derpID returns this AddrSet's home DERP node, or 0 if none is found. -func (as *AddrSet) derpID() int { +// derpID returns this addrSet's home DERP node, or 0 if none is found. +func (as *addrSet) derpID() int { for _, ua := range as.addrs { if ua.IP.Equal(derpMagicIP) { return ua.Port @@ -190,7 +190,7 @@ func (as *AddrSet) derpID() int { return 0 } -func (as *AddrSet) timeNow() time.Time { +func (as *addrSet) timeNow() time.Time { if as.clock != nil { return as.clock() } @@ -199,7 +199,7 @@ func (as *AddrSet) timeNow() time.Time { var noAddr, _ = netaddr.FromStdAddr(net.ParseIP("127.127.127.127"), 127, "") -func (a *AddrSet) dst() netaddr.IPPort { +func (a *addrSet) dst() netaddr.IPPort { a.mu.Lock() defer a.mu.Unlock() @@ -229,21 +229,21 @@ func packUDPAddr(ua *net.UDPAddr) []byte { return b } -func (a *AddrSet) DstToBytes() []byte { +func (a *addrSet) DstToBytes() []byte { return packIPPort(a.dst()) } -func (a *AddrSet) DstToString() string { +func (a *addrSet) DstToString() string { dst := a.dst() return dst.String() } -func (a *AddrSet) DstIP() net.IP { +func (a *addrSet) DstIP() net.IP { return a.dst().IP.IPAddr().IP // TODO: add netaddr accessor to cut an alloc here? } -func (a *AddrSet) SrcIP() net.IP { return nil } -func (a *AddrSet) SrcToString() string { return "" } -func (a *AddrSet) ClearSrc() {} +func (a *addrSet) SrcIP() net.IP { return nil } +func (a *addrSet) SrcToString() string { return "" } +func (a *addrSet) ClearSrc() {} -func (a *AddrSet) UpdateDst(new *net.UDPAddr) error { +func (a *addrSet) UpdateDst(new *net.UDPAddr) error { if new.IP.Equal(derpMagicIP) { // Never consider DERP addresses as a viable candidate for // either curAddr or roamAddr. It's only ever a last resort @@ -327,7 +327,7 @@ func equalUDPAddr(x, y *net.UDPAddr) bool { return x.Port == y.Port && x.IP.Equal(y.IP) } -func (a *AddrSet) String() string { +func (a *addrSet) String() string { a.mu.Lock() defer a.mu.Unlock() @@ -351,7 +351,7 @@ func (a *AddrSet) String() string { return buf.String() } -func (as *AddrSet) populatePeerStatus(ps *ipnstate.PeerStatus) { +func (as *addrSet) populatePeerStatus(ps *ipnstate.PeerStatus) { as.mu.Lock() defer as.mu.Unlock() @@ -371,7 +371,7 @@ func (as *AddrSet) populatePeerStatus(ps *ipnstate.PeerStatus) { } } -func (a *AddrSet) Addrs() []wgcfg.Endpoint { +func (a *addrSet) Addrs() []wgcfg.Endpoint { var eps []wgcfg.Endpoint for _, addr := range a.addrs { eps = append(eps, wgcfg.Endpoint{ diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 97d58ecdd..d6feee522 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -222,13 +222,13 @@ type Conn struct { // // Used only to communicate with legacy, pre-active-discovery // clients. - addrsByUDP map[netaddr.IPPort]*AddrSet + addrsByUDP map[netaddr.IPPort]*addrSet // addrsByKey maps from public keys (as seen by incoming DERP - // packets) to its AddrSet (the same values as in addrsByUDP). + // packets) to its addrSet (the same values as in addrsByUDP). // // Used only to communicate with legacy, pre-active-discovery // clients. - addrsByKey map[key.Public]*AddrSet + addrsByKey map[key.Public]*addrSet // netInfoFunc is a callback that provides a tailcfg.NetInfo when // discovered network conditions change. @@ -411,8 +411,8 @@ func (o *Options) derpActiveFunc() func() { func newConn() *Conn { c := &Conn{ sendLogLimit: rate.NewLimiter(rate.Every(1*time.Minute), 1), - addrsByUDP: make(map[netaddr.IPPort]*AddrSet), - addrsByKey: make(map[key.Public]*AddrSet), + addrsByUDP: make(map[netaddr.IPPort]*addrSet), + addrsByKey: make(map[key.Public]*addrSet), derpRecvCh: make(chan derpReadResult), udpRecvCh: make(chan udpReadResult), derpStarted: make(chan struct{}), @@ -973,7 +973,7 @@ func (c *Conn) Send(b []byte, ep conn.Endpoint) error { return errNetworkDown } - var as *AddrSet + var as *addrSet switch v := ep.(type) { default: panic(fmt.Sprintf("[unexpected] Endpoint type %T", v)) @@ -987,7 +987,7 @@ func (c *Conn) Send(b []byte, ep conn.Endpoint) error { } _, err := c.sendUDPStd(addr, b) return err - case *AddrSet: + case *addrSet: as = v } @@ -1430,7 +1430,7 @@ func (c *Conn) findEndpoint(ipp netaddr.IPPort, addr *net.UDPAddr) conn.Endpoint } } - // Pre-disco: look up their AddrSet. + // Pre-disco: look up their addrSet. if as, ok := c.addrsByUDP[ipp]; ok { return as } @@ -1533,7 +1533,7 @@ Top: // to udpRecvCh. The code below must not access b until it's // completed a successful receive on udpRecvCh. - var addrSet *AddrSet + var addrSet *addrSet var discoEp *discoEndpoint var ipp netaddr.IPPort var didNoteRecvActivity bool @@ -2588,7 +2588,7 @@ func (c *Conn) CreateEndpoint(pubKey [32]byte, addrs string) (conn.Endpoint, err return de, nil } - a := &AddrSet{ + a := &addrSet{ Logf: c.logf, publicKey: pk, curAddr: -1, diff --git a/wgengine/magicsock/magicsock_test.go b/wgengine/magicsock/magicsock_test.go index a308e8dd7..93e8ee83f 100644 --- a/wgengine/magicsock/magicsock_test.go +++ b/wgengine/magicsock/magicsock_test.go @@ -442,8 +442,8 @@ func TestPickDERPFallback(t *testing.T) { // But move if peers are elsewhere. const otherNode = 789 - c.addrsByKey = map[key.Public]*AddrSet{ - key.Public{1}: &AddrSet{addrs: []net.UDPAddr{{IP: derpMagicIP, Port: otherNode}}}, + c.addrsByKey = map[key.Public]*addrSet{ + key.Public{1}: &addrSet{addrs: []net.UDPAddr{{IP: derpMagicIP, Port: otherNode}}}, } if got := c.pickDERPFallback(); got != otherNode { t.Errorf("didn't join peers: got %v; want %v", got, someNode) @@ -1075,7 +1075,7 @@ func testTwoDevicePing(t *testing.T, d *devices) { }) } -// TestAddrSet tests AddrSet appendDests and UpdateDst. +// TestAddrSet tests addrSet appendDests and UpdateDst. func TestAddrSet(t *testing.T) { tstest.PanicOnLog() rc := tstest.NewResourceCheck() @@ -1134,13 +1134,13 @@ func TestAddrSet(t *testing.T) { } tests := []struct { name string - as *AddrSet + as *addrSet steps []step logCheck func(t *testing.T, logged []byte) }{ { name: "reg_packet_no_curaddr", - as: &AddrSet{ + as: &addrSet{ addrs: udpAddrs("127.3.3.40:1", "123.45.67.89:123", "10.0.0.1:123"), curAddr: -1, // unknown roamAddr: nil, @@ -1151,7 +1151,7 @@ func TestAddrSet(t *testing.T) { }, { name: "reg_packet_have_curaddr", - as: &AddrSet{ + as: &addrSet{ addrs: udpAddrs("127.3.3.40:1", "123.45.67.89:123", "10.0.0.1:123"), curAddr: 1, // global IP roamAddr: nil, @@ -1162,7 +1162,7 @@ func TestAddrSet(t *testing.T) { }, { name: "reg_packet_have_roamaddr", - as: &AddrSet{ + as: &addrSet{ addrs: udpAddrs("127.3.3.40:1", "123.45.67.89:123", "10.0.0.1:123"), curAddr: 2, // should be ignored roamAddr: mustIPPortPtr("5.6.7.8:123"), @@ -1175,7 +1175,7 @@ func TestAddrSet(t *testing.T) { }, { name: "start_roaming", - as: &AddrSet{ + as: &addrSet{ addrs: udpAddrs("127.3.3.40:1", "123.45.67.89:123", "10.0.0.1:123"), curAddr: 2, }, @@ -1191,7 +1191,7 @@ func TestAddrSet(t *testing.T) { }, { name: "spray_packet", - as: &AddrSet{ + as: &addrSet{ addrs: udpAddrs("127.3.3.40:1", "123.45.67.89:123", "10.0.0.1:123"), curAddr: 2, // should be ignored roamAddr: mustIPPortPtr("5.6.7.8:123"), @@ -1207,7 +1207,7 @@ func TestAddrSet(t *testing.T) { }, { name: "low_pri", - as: &AddrSet{ + as: &addrSet{ addrs: udpAddrs("127.3.3.40:1", "123.45.67.89:123", "10.0.0.1:123"), curAddr: 2, }, @@ -1254,9 +1254,9 @@ func TestAddrSet(t *testing.T) { } } -// initAddrSet initializes fields in the provided incomplete AddrSet +// initAddrSet initializes fields in the provided incomplete addrSet // to satisfying invariants within magicsock. -func initAddrSet(as *AddrSet) { +func initAddrSet(as *addrSet) { if as.roamAddr != nil && as.roamAddrStd == nil { as.roamAddrStd = as.roamAddr.UDPAddr() }