diff --git a/discovery/chan_series.go b/discovery/chan_series.go index 0fe819d4e..18f806316 100644 --- a/discovery/chan_series.go +++ b/discovery/chan_series.go @@ -163,6 +163,8 @@ func (c *ChanSeries) UpdatesInHorizon(chain chainhash.Hash, return nil, err } for _, nodeAnn := range nodeAnnsInHorizon { + nodeAnn := nodeAnn + // Ensure we only forward nodes that are publicly advertised to // prevent leaking information about nodes. isNodePublic, err := c.graph.IsPublicNode(nodeAnn.PubKeyBytes) diff --git a/discovery/syncer_test.go b/discovery/syncer_test.go index 70920f9f4..a7b514db8 100644 --- a/discovery/syncer_test.go +++ b/discovery/syncer_test.go @@ -2134,18 +2134,33 @@ func TestGossipSyncerSyncTransitions(t *testing.T) { name: "active to passive", entrySyncType: ActiveSync, finalSyncType: PassiveSync, - assert: func(t *testing.T, msgChan chan []lnwire.Message, + assert: func(t *testing.T, mChan chan []lnwire.Message, g *GossipSyncer) { + // When we first boot up, we expect that we + // send out a message that indicates we want + // all the updates from here on. + firstTimestamp := uint32(time.Now().Unix()) + assertMsgSent( + t, mChan, &lnwire.GossipTimestampRange{ + FirstTimestamp: firstTimestamp, + TimestampRange: math.MaxUint32, + }, + ) + // When transitioning from active to passive, we // should expect to see a new local update // horizon sent to the remote peer indicating // that it would not like to receive any future // updates. - assertMsgSent(t, msgChan, &lnwire.GossipTimestampRange{ - FirstTimestamp: uint32(zeroTimestamp.Unix()), - TimestampRange: 0, - }) + assertMsgSent( + t, mChan, &lnwire.GossipTimestampRange{ + FirstTimestamp: uint32( + zeroTimestamp.Unix(), + ), + TimestampRange: 0, + }, + ) syncState := g.syncState() if syncState != chansSynced { @@ -2182,6 +2197,8 @@ func TestGossipSyncerSyncTransitions(t *testing.T) { } for _, test := range tests { + test := test + t.Run(test.name, func(t *testing.T) { t.Parallel()