mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-08-31 08:02:25 +02:00
discovery: use lnwire.ChanUpdateFlag masks when examinig ChannelUpdate msgs
In this commit, we now properly examine the Flag field within the ChannelUpdate message as a bitfield. Before this commit we would manually check the flags for zero or one. This was incorrect as a their bit has now been defined. To properly dispatch the messages, we’ll now treat it properly as a bitmask.
This commit is contained in:
@@ -397,7 +397,7 @@ type channelUpdateID struct {
|
||||
// Flags least-significant bit must be set to 0 if the creating node
|
||||
// corresponds to the first node in the previously sent channel
|
||||
// announcement and 1 otherwise.
|
||||
flags uint16
|
||||
flags lnwire.ChanUpdateFlag
|
||||
}
|
||||
|
||||
// deDupedAnnouncements de-duplicates announcements that have been added to the
|
||||
@@ -1058,20 +1058,15 @@ func (d *AuthenticatedGossiper) processNetworkAnnouncement(nMsg *networkMsg) []l
|
||||
return nil
|
||||
}
|
||||
|
||||
// The flag on the channel update announcement tells us "which"
|
||||
// side of the channels directed edge is being updated.
|
||||
// The least-significant bit in the flag on the channel update
|
||||
// announcement tells us "which" side of the channels directed
|
||||
// edge is being updated.
|
||||
var pubKey *btcec.PublicKey
|
||||
switch msg.Flags {
|
||||
case 0:
|
||||
switch {
|
||||
case msg.Flags&lnwire.ChanUpdateDirection == 0:
|
||||
pubKey = chanInfo.NodeKey1
|
||||
case 1:
|
||||
case msg.Flags&lnwire.ChanUpdateDirection == 1:
|
||||
pubKey = chanInfo.NodeKey2
|
||||
default:
|
||||
rErr := errors.Errorf("unknown flags=%v for "+
|
||||
"short_chan_id=%v", msg.Flags, shortChanID)
|
||||
log.Error(rErr)
|
||||
nMsg.err <- rErr
|
||||
return nil
|
||||
}
|
||||
|
||||
// Validate the channel announcement with the expected public
|
||||
|
Reference in New Issue
Block a user