mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-24 12:44:34 +02:00
discovery+gossip: make sure we dont advertise node anns with bad DNS
We may have already persisted node announcements that have multiple DNS addresses since we may have received them before updating our code to check for this. So here we just make sure not to send these on to our peers.
This commit is contained in:
committed by
Mohamed Awnallah
parent
a7ae21d685
commit
5844bb0477
@@ -192,6 +192,13 @@ func (c *ChanSeries) UpdatesInHorizon(chain chainhash.Hash,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := netann.ValidateNodeAnnFields(nodeUpdate); err != nil {
|
||||
log.Debugf("Skipping forwarding invalid node "+
|
||||
"announcement %x: %v", nodeAnn.PubKeyBytes, err)
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
updates = append(updates, nodeUpdate)
|
||||
}
|
||||
|
||||
@@ -296,8 +303,11 @@ func (c *ChanSeries) FetchChanAnns(chain chainhash.Hash,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
chanAnns = append(chanAnns, nodeAnn)
|
||||
nodePubsSent[nodePub] = struct{}{}
|
||||
err = netann.ValidateNodeAnnFields(nodeAnn)
|
||||
if err == nil {
|
||||
chanAnns = append(chanAnns, nodeAnn)
|
||||
nodePubsSent[nodePub] = struct{}{}
|
||||
}
|
||||
}
|
||||
}
|
||||
if edge2 != nil {
|
||||
@@ -315,8 +325,11 @@ func (c *ChanSeries) FetchChanAnns(chain chainhash.Hash,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
chanAnns = append(chanAnns, nodeAnn)
|
||||
nodePubsSent[nodePub] = struct{}{}
|
||||
err = netann.ValidateNodeAnnFields(nodeAnn)
|
||||
if err == nil {
|
||||
chanAnns = append(chanAnns, nodeAnn)
|
||||
nodePubsSent[nodePub] = struct{}{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2229,7 +2229,12 @@ func (d *AuthenticatedGossiper) fetchNodeAnn(ctx context.Context,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return node.NodeAnnouncement(true)
|
||||
nodeAnn, err := node.NodeAnnouncement(true)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return nodeAnn, netann.ValidateNodeAnnFields(nodeAnn)
|
||||
}
|
||||
|
||||
// isMsgStale determines whether a message retrieved from the backing
|
||||
|
Reference in New Issue
Block a user