mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-10-10 04:13:04 +02:00
feature: if a bit is unset, then all other features that dep it should be
This fixes an issue where if one tries to unset a feature like anchors, and other feature depend on it, then `lnd` fails to start as it realizes that its dependnacy set is inconsistent. Fixes https://github.com/lightningnetwork/lnd/issues/6002
This commit is contained in:
committed by
Oliver Gugger
parent
80720cb63f
commit
31ae48c59c
@@ -91,6 +91,21 @@ func newManager(cfg Config, desc setDesc) (*Manager, error) {
|
||||
if cfg.NoAnchors {
|
||||
raw.Unset(lnwire.AnchorsZeroFeeHtlcTxOptional)
|
||||
raw.Unset(lnwire.AnchorsZeroFeeHtlcTxRequired)
|
||||
|
||||
// If anchors are disabled, then we also need to
|
||||
// disable all other features that depend on it as
|
||||
// well, as otherwise we may create an invalid feature
|
||||
// bit set.
|
||||
for bit, depFeatures := range deps {
|
||||
for depFeature := range depFeatures {
|
||||
switch {
|
||||
case depFeature == lnwire.AnchorsZeroFeeHtlcTxRequired:
|
||||
fallthrough
|
||||
case depFeature == lnwire.AnchorsZeroFeeHtlcTxOptional:
|
||||
raw.Unset(bit)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if cfg.NoWumbo {
|
||||
raw.Unset(lnwire.WumboChannelsOptional)
|
||||
|
Reference in New Issue
Block a user