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:
1 parent
466c079bbe
commit
dd6f0ba931
6 files changed
+108
-74
No files matched your search
+17
-15
@@ -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