From 80802d8e84b21ff86fc3466adc9c06d9053fb61f Mon Sep 17 00:00:00 2001 From: Conner Fromknecht Date: Wed, 18 Dec 2019 23:53:05 -0800 Subject: [PATCH] channeldb/graph: always populate LightningNode features Previously we would return nil features when we didn't have a node announcement or a given node. With this change, we can always assume the feature vector is populated during pathfinding. --- channeldb/graph.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/channeldb/graph.go b/channeldb/graph.go index c3887655..abfc5d49 100644 --- a/channeldb/graph.go +++ b/channeldb/graph.go @@ -3461,6 +3461,10 @@ func deserializeLightningNode(r io.Reader) (LightningNode, error) { err error ) + // Always populate a feature vector, even if we don't have a node + // announcement and short circuit below. + node.Features = lnwire.EmptyFeatureVector() + if _, err := r.Read(scratch[:]); err != nil { return LightningNode{}, err } @@ -3506,12 +3510,10 @@ func deserializeLightningNode(r io.Reader) (LightningNode, error) { return LightningNode{}, err } - fv := lnwire.NewFeatureVector(nil, lnwire.Features) - err = fv.Decode(r) + err = node.Features.Decode(r) if err != nil { return LightningNode{}, err } - node.Features = fv if _, err := r.Read(scratch[:2]); err != nil { return LightningNode{}, err