mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-29 15:11:09 +02:00
discovery+lnwire: remove embedding within ReplyChannelRange
In order to prep for allowing TLV extensions for the `ReplyChannelRange` and `QueryChannelRange` messages, we'll need to remove the struct embedding as is. If we don't remove this, then we'll attempt to decode TLV extensions from both the embedded and outer struct. All relevant call sites have been updated to reflect this minor change.
This commit is contained in:
committed by
Johan T. Halseth
parent
466c079bbe
commit
dd6f0ba931
@@ -753,7 +753,9 @@ func (g *GossipSyncer) synchronizeChanIDs() (bool, error) {
|
||||
func isLegacyReplyChannelRange(query *lnwire.QueryChannelRange,
|
||||
reply *lnwire.ReplyChannelRange) bool {
|
||||
|
||||
return reply.QueryChannelRange == *query
|
||||
return (reply.ChainHash == query.ChainHash &&
|
||||
reply.FirstBlockHeight == query.FirstBlockHeight &&
|
||||
reply.NumBlocks == query.NumBlocks)
|
||||
}
|
||||
|
||||
// processChanRangeReply is called each time the GossipSyncer receives a new
|
||||
@@ -773,7 +775,7 @@ func (g *GossipSyncer) processChanRangeReply(msg *lnwire.ReplyChannelRange) erro
|
||||
// The last block should also be. We don't need to check the
|
||||
// intermediate ones because they should already be in sorted
|
||||
// order.
|
||||
replyLastHeight := msg.QueryChannelRange.LastBlockHeight()
|
||||
replyLastHeight := msg.LastBlockHeight()
|
||||
queryLastHeight := g.curQueryRangeMsg.LastBlockHeight()
|
||||
if replyLastHeight > queryLastHeight {
|
||||
return fmt.Errorf("reply includes channels for height "+
|
||||
@@ -832,7 +834,7 @@ func (g *GossipSyncer) processChanRangeReply(msg *lnwire.ReplyChannelRange) erro
|
||||
|
||||
// Otherwise, we'll look at the reply's height range.
|
||||
default:
|
||||
replyLastHeight := msg.QueryChannelRange.LastBlockHeight()
|
||||
replyLastHeight := msg.LastBlockHeight()
|
||||
queryLastHeight := g.curQueryRangeMsg.LastBlockHeight()
|
||||
|
||||
// TODO(wilmer): This might require some padding if the remote
|
||||
@@ -997,10 +999,12 @@ func (g *GossipSyncer) replyChanRangeQuery(query *lnwire.QueryChannelRange) erro
|
||||
g.cfg.chainHash)
|
||||
|
||||
return g.cfg.sendToPeerSync(&lnwire.ReplyChannelRange{
|
||||
QueryChannelRange: *query,
|
||||
Complete: 0,
|
||||
EncodingType: g.cfg.encodingType,
|
||||
ShortChanIDs: nil,
|
||||
ChainHash: query.ChainHash,
|
||||
FirstBlockHeight: query.FirstBlockHeight,
|
||||
NumBlocks: query.NumBlocks,
|
||||
Complete: 0,
|
||||
EncodingType: g.cfg.encodingType,
|
||||
ShortChanIDs: nil,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1040,14 +1044,12 @@ func (g *GossipSyncer) replyChanRangeQuery(query *lnwire.QueryChannelRange) erro
|
||||
}
|
||||
|
||||
return g.cfg.sendToPeerSync(&lnwire.ReplyChannelRange{
|
||||
QueryChannelRange: lnwire.QueryChannelRange{
|
||||
ChainHash: query.ChainHash,
|
||||
NumBlocks: numBlocks,
|
||||
FirstBlockHeight: firstHeight,
|
||||
},
|
||||
Complete: complete,
|
||||
EncodingType: g.cfg.encodingType,
|
||||
ShortChanIDs: channelChunk,
|
||||
ChainHash: query.ChainHash,
|
||||
NumBlocks: numBlocks,
|
||||
FirstBlockHeight: firstHeight,
|
||||
Complete: complete,
|
||||
EncodingType: g.cfg.encodingType,
|
||||
ShortChanIDs: channelChunk,
|
||||
})
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user