mirror of
https://github.com/lightninglabs/lightning-terminal.git
synced 2026-08-13 12:33:36 +02:00
rules+rpcserver: handle unknown rules
This is to tolerate unknown rules sent from the autopilot for the `autopilot features` command. Otherwise, when trying to register a feature that requires an upgrade, a more user friendly error is returned.
This commit is contained in:
parent
9e20dc4078
commit
5129b95fd5
2 changed files with 12 additions and 6 deletions
|
|
@ -31,7 +31,8 @@ func (m ManagerSet) InitEnforcer(cfg Config, name string,
|
|||
|
||||
mgr, ok := m[name]
|
||||
if !ok {
|
||||
return nil, ErrUnknownRule
|
||||
return nil, fmt.Errorf("%w %s, please upgrade", ErrUnknownRule,
|
||||
name)
|
||||
}
|
||||
|
||||
return mgr.NewEnforcer(cfg, values)
|
||||
|
|
@ -54,7 +55,8 @@ func (m ManagerSet) UnmarshalRuleValues(name string, proto *litrpc.RuleValue) (
|
|||
|
||||
mgr, ok := m[name]
|
||||
if !ok {
|
||||
return nil, ErrUnknownRule
|
||||
return nil, fmt.Errorf("%w %s, please upgrade", ErrUnknownRule,
|
||||
name)
|
||||
}
|
||||
|
||||
return mgr.NewValueFromProto(proto)
|
||||
|
|
@ -67,7 +69,8 @@ func (m ManagerSet) InitRuleValues(name string, valueBytes []byte) (Values,
|
|||
|
||||
mgr, ok := m[name]
|
||||
if !ok {
|
||||
return nil, ErrUnknownRule
|
||||
return nil, fmt.Errorf("%w %s, please upgrade", ErrUnknownRule,
|
||||
name)
|
||||
}
|
||||
|
||||
v := mgr.EmptyValue()
|
||||
|
|
|
|||
|
|
@ -1348,10 +1348,13 @@ func convertRules(ruleMgr rules.ManagerSet,
|
|||
knownRules = ruleMgr.GetAllRules()
|
||||
)
|
||||
for name, rule := range ruleList {
|
||||
known := true
|
||||
if !knownRules[name] {
|
||||
upgrade = true
|
||||
known = false
|
||||
res[name] = &litrpc.RuleValues{
|
||||
Known: false,
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
defaultVals, err := ruleMgr.InitRuleValues(name, rule.Default)
|
||||
|
|
@ -1370,7 +1373,7 @@ func convertRules(ruleMgr rules.ManagerSet,
|
|||
}
|
||||
|
||||
res[name] = &litrpc.RuleValues{
|
||||
Known: known,
|
||||
Known: true,
|
||||
Defaults: defaultVals.ToProto(),
|
||||
MinValue: minVals.ToProto(),
|
||||
MaxValue: maxVals.ToProto(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue