Merge pull request #3219 from wpaulino/node-ann-broadcast

discovery: set source of node announcement broadcast to belonging node
This commit is contained in:
Olaoluwa Osuntokun 2019-06-20 17:26:23 -07:00 committed by GitHub
commit 3cf7c3a7b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2382,29 +2382,39 @@ func (d *AuthenticatedGossiper) processNetworkAnnouncement(
} }
// We'll also send along the node announcements for each channel // We'll also send along the node announcements for each channel
// participant if we know of them. // participant if we know of them. To ensure our node
// announcement propagates to our channel counterparty, we'll
// set the source for each announcement to the node it belongs
// to, otherwise we won't send it since the source gets skipped.
// This isn't necessary for channel updates and announcement
// signatures since we send those directly to our channel
// counterparty through the gossiper's reliable sender.
node1Ann, err := d.fetchNodeAnn(chanInfo.NodeKey1Bytes) node1Ann, err := d.fetchNodeAnn(chanInfo.NodeKey1Bytes)
if err != nil { if err != nil {
log.Debugf("Unable to fetch node announcement for "+ log.Debugf("Unable to fetch node announcement for "+
"%x: %v", chanInfo.NodeKey1Bytes, err) "%x: %v", chanInfo.NodeKey1Bytes, err)
} else { } else {
if nodeKey1, err := chanInfo.NodeKey1(); err == nil {
announcements = append(announcements, networkMsg{ announcements = append(announcements, networkMsg{
peer: nMsg.peer, peer: nMsg.peer,
source: nMsg.source, source: nodeKey1,
msg: node1Ann, msg: node1Ann,
}) })
} }
}
node2Ann, err := d.fetchNodeAnn(chanInfo.NodeKey2Bytes) node2Ann, err := d.fetchNodeAnn(chanInfo.NodeKey2Bytes)
if err != nil { if err != nil {
log.Debugf("Unable to fetch node announcement for "+ log.Debugf("Unable to fetch node announcement for "+
"%x: %v", chanInfo.NodeKey2Bytes, err) "%x: %v", chanInfo.NodeKey2Bytes, err)
} else { } else {
if nodeKey2, err := chanInfo.NodeKey2(); err == nil {
announcements = append(announcements, networkMsg{ announcements = append(announcements, networkMsg{
peer: nMsg.peer, peer: nMsg.peer,
source: nMsg.source, source: nodeKey2,
msg: node2Ann, msg: node2Ann,
}) })
} }
}
nMsg.err <- nil nMsg.err <- nil
return announcements return announcements