mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-28 22:42:29 +02:00
routing: Call the function to update routing config on main cfg
NewMissionControl propagate the callback function defined on server.go and SetConfig call it to update the infos on main cfg.
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
"github.com/btcsuite/btcd/btcutil"
|
"github.com/btcsuite/btcd/btcutil"
|
||||||
"github.com/lightningnetwork/lnd/channeldb"
|
"github.com/lightningnetwork/lnd/channeldb"
|
||||||
|
"github.com/lightningnetwork/lnd/fn"
|
||||||
"github.com/lightningnetwork/lnd/kvdb"
|
"github.com/lightningnetwork/lnd/kvdb"
|
||||||
"github.com/lightningnetwork/lnd/lnwire"
|
"github.com/lightningnetwork/lnd/lnwire"
|
||||||
"github.com/lightningnetwork/lnd/routing/route"
|
"github.com/lightningnetwork/lnd/routing/route"
|
||||||
@@ -110,6 +111,10 @@ type MissionControl struct {
|
|||||||
// results that mission control collects.
|
// results that mission control collects.
|
||||||
estimator Estimator
|
estimator Estimator
|
||||||
|
|
||||||
|
// onConfigUpdate is a function that is called whenever the
|
||||||
|
// mission control state is updated.
|
||||||
|
onConfigUpdate fn.Option[func(cfg *MissionControlConfig)]
|
||||||
|
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
|
|
||||||
// TODO(roasbeef): further counters, if vertex continually unavailable,
|
// TODO(roasbeef): further counters, if vertex continually unavailable,
|
||||||
@@ -124,6 +129,10 @@ type MissionControlConfig struct {
|
|||||||
// Estimator gives probability estimates for node pairs.
|
// Estimator gives probability estimates for node pairs.
|
||||||
Estimator Estimator
|
Estimator Estimator
|
||||||
|
|
||||||
|
// OnConfigUpdate is function that is called whenever the
|
||||||
|
// mission control state is updated.
|
||||||
|
OnConfigUpdate fn.Option[func(cfg *MissionControlConfig)]
|
||||||
|
|
||||||
// MaxMcHistory defines the maximum number of payment results that are
|
// MaxMcHistory defines the maximum number of payment results that are
|
||||||
// held on disk.
|
// held on disk.
|
||||||
MaxMcHistory int
|
MaxMcHistory int
|
||||||
@@ -224,11 +233,14 @@ func NewMissionControl(db kvdb.Backend, self route.Vertex,
|
|||||||
}
|
}
|
||||||
|
|
||||||
mc := &MissionControl{
|
mc := &MissionControl{
|
||||||
state: newMissionControlState(cfg.MinFailureRelaxInterval),
|
state: newMissionControlState(
|
||||||
now: time.Now,
|
cfg.MinFailureRelaxInterval,
|
||||||
selfNode: self,
|
),
|
||||||
store: store,
|
now: time.Now,
|
||||||
estimator: cfg.Estimator,
|
selfNode: self,
|
||||||
|
store: store,
|
||||||
|
estimator: cfg.Estimator,
|
||||||
|
onConfigUpdate: cfg.OnConfigUpdate,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := mc.init(); err != nil {
|
if err := mc.init(); err != nil {
|
||||||
@@ -308,6 +320,11 @@ func (m *MissionControl) SetConfig(cfg *MissionControlConfig) error {
|
|||||||
m.state.minFailureRelaxInterval = cfg.MinFailureRelaxInterval
|
m.state.minFailureRelaxInterval = cfg.MinFailureRelaxInterval
|
||||||
m.estimator = cfg.Estimator
|
m.estimator = cfg.Estimator
|
||||||
|
|
||||||
|
// Execute the callback function if it is set.
|
||||||
|
m.onConfigUpdate.WhenSome(func(f func(cfg *MissionControlConfig)) {
|
||||||
|
f(cfg)
|
||||||
|
})
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user