Skip to content

Commit e725f9d

Browse files
authored
chore: stop passing addresses on configMaps constructor (#11634)
moving this out of the constructor so that setting this when creating a new `tailnet.Conn` triggers configuring the engine.
1 parent a514df7 commit e725f9d

File tree

2 files changed

+22
-16
lines changed

2 files changed

+22
-16
lines changed

tailnet/configmaps.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ type configMaps struct {
7272
clock clock.Clock
7373
}
7474

75-
func newConfigMaps(logger slog.Logger, engine engineConfigurable, nodeID tailcfg.NodeID, nodeKey key.NodePrivate, discoKey key.DiscoPublic, addresses []netip.Prefix) *configMaps {
75+
func newConfigMaps(logger slog.Logger, engine engineConfigurable, nodeID tailcfg.NodeID, nodeKey key.NodePrivate, discoKey key.DiscoPublic) *configMaps {
7676
pubKey := nodeKey.Public()
7777
c := &configMaps{
7878
phased: phased{Cond: *(sync.NewCond(&sync.Mutex{}))},
@@ -114,9 +114,8 @@ func newConfigMaps(logger slog.Logger, engine engineConfigurable, nodeID tailcfg
114114
Caps: []filter.CapMatch{},
115115
}},
116116
},
117-
peers: make(map[uuid.UUID]*peerLifecycle),
118-
addresses: addresses,
119-
clock: clock.New(),
117+
peers: make(map[uuid.UUID]*peerLifecycle),
118+
clock: clock.New(),
120119
}
121120
go c.configLoop()
122121
return c

tailnet/configmaps_internal_test.go

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func TestConfigMaps_setAddresses_different(t *testing.T) {
3434
nodePrivateKey := key.NewNode()
3535
nodeID := tailcfg.NodeID(5)
3636
discoKey := key.NewDisco()
37-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
37+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
3838
defer uut.close()
3939

4040
addrs := []netip.Prefix{netip.MustParsePrefix("192.168.0.200/32")}
@@ -93,11 +93,18 @@ func TestConfigMaps_setAddresses_same(t *testing.T) {
9393
nodeID := tailcfg.NodeID(5)
9494
discoKey := key.NewDisco()
9595
addrs := []netip.Prefix{netip.MustParsePrefix("192.168.0.200/32")}
96-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), addrs)
96+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
9797
defer uut.close()
9898

99+
// Given: addresses already set
100+
uut.L.Lock()
101+
uut.addresses = addrs
102+
uut.L.Unlock()
103+
104+
// Then: it doesn't configure
99105
requireNeverConfigures(ctx, t, &uut.phased)
100106

107+
// When: we set addresses
101108
uut.setAddresses(addrs)
102109

103110
done := make(chan struct{})
@@ -116,7 +123,7 @@ func TestConfigMaps_updatePeers_new(t *testing.T) {
116123
nodePrivateKey := key.NewNode()
117124
nodeID := tailcfg.NodeID(5)
118125
discoKey := key.NewDisco()
119-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
126+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
120127
defer uut.close()
121128

122129
p1ID := uuid.UUID{1}
@@ -186,7 +193,7 @@ func TestConfigMaps_updatePeers_same(t *testing.T) {
186193
nodePrivateKey := key.NewNode()
187194
nodeID := tailcfg.NodeID(5)
188195
discoKey := key.NewDisco()
189-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
196+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
190197
defer uut.close()
191198

192199
// Then: we don't configure
@@ -245,7 +252,7 @@ func TestConfigMaps_updatePeers_disconnect(t *testing.T) {
245252
nodePrivateKey := key.NewNode()
246253
nodeID := tailcfg.NodeID(5)
247254
discoKey := key.NewDisco()
248-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
255+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
249256
defer uut.close()
250257

251258
p1ID := uuid.UUID{1}
@@ -313,7 +320,7 @@ func TestConfigMaps_updatePeers_lost(t *testing.T) {
313320
nodePrivateKey := key.NewNode()
314321
nodeID := tailcfg.NodeID(5)
315322
discoKey := key.NewDisco()
316-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
323+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
317324
defer uut.close()
318325
start := time.Date(2024, time.January, 1, 8, 0, 0, 0, time.UTC)
319326
mClock := clock.NewMock()
@@ -406,7 +413,7 @@ func TestConfigMaps_updatePeers_lost_and_found(t *testing.T) {
406413
nodePrivateKey := key.NewNode()
407414
nodeID := tailcfg.NodeID(5)
408415
discoKey := key.NewDisco()
409-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
416+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
410417
defer uut.close()
411418
start := time.Date(2024, time.January, 1, 8, 0, 0, 0, time.UTC)
412419
mClock := clock.NewMock()
@@ -492,7 +499,7 @@ func TestConfigMaps_setBlockEndpoints_different(t *testing.T) {
492499
nodePrivateKey := key.NewNode()
493500
nodeID := tailcfg.NodeID(5)
494501
discoKey := key.NewDisco()
495-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
502+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
496503
defer uut.close()
497504

498505
p1ID := uuid.MustParse("10000000-0000-0000-0000-000000000000")
@@ -536,7 +543,7 @@ func TestConfigMaps_setBlockEndpoints_same(t *testing.T) {
536543
nodePrivateKey := key.NewNode()
537544
nodeID := tailcfg.NodeID(5)
538545
discoKey := key.NewDisco()
539-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
546+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
540547
defer uut.close()
541548

542549
p1ID := uuid.MustParse("10000000-0000-0000-0000-000000000000")
@@ -579,7 +586,7 @@ func TestConfigMaps_setDERPMap_different(t *testing.T) {
579586
nodePrivateKey := key.NewNode()
580587
nodeID := tailcfg.NodeID(5)
581588
discoKey := key.NewDisco()
582-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
589+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
583590
defer uut.close()
584591

585592
derpMap := &proto.DERPMap{
@@ -620,7 +627,7 @@ func TestConfigMaps_setDERPMap_same(t *testing.T) {
620627
nodePrivateKey := key.NewNode()
621628
nodeID := tailcfg.NodeID(5)
622629
discoKey := key.NewDisco()
623-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
630+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
624631
defer uut.close()
625632

626633
// Given: DERP Map already set
@@ -697,7 +704,7 @@ func TestConfigMaps_updatePeers_nonexist(t *testing.T) {
697704
nodePrivateKey := key.NewNode()
698705
nodeID := tailcfg.NodeID(5)
699706
discoKey := key.NewDisco()
700-
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public(), nil)
707+
uut := newConfigMaps(logger, fEng, nodeID, nodePrivateKey, discoKey.Public())
701708
defer uut.close()
702709

703710
// Then: we don't configure

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy