htlcswitch: introducing interceptable switch.
In this commit we implement a wrapper arround the switch, called InterceptableSwitch. This kind of wrapper behaves like a proxy which intercepts forwarded packets and allows an external interceptor to signal if it is interested to hold this forward and resolve it manually later or let the switch execute its default behavior. This infrastructure allows the RPC layer to expose interceptor registration API to the user and by that enable the implementation of custom routing behavior.
This commit is contained in:
1 parent
1a6701122c
commit
0f50d8b2ed
5 files changed
+401
-1
No files matched your search
@@ -207,6 +207,8 @@ type server struct {
|
||||
|
||||
htlcSwitch *htlcswitch.Switch
|
||||
|
||||
interceptableSwitch *htlcswitch.InterceptableSwitch
|
||||
|
||||
invoices *invoices.InvoiceRegistry
|
||||
|
||||
channelNotifier *channelnotifier.ChannelNotifier
|
||||
@@ -515,6 +517,7 @@ func newServer(cfg *Config, listenAddrs []net.Addr, chanDB *channeldb.DB,
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
s.interceptableSwitch = htlcswitch.NewInterceptableSwitch(s.htlcSwitch)
|
||||
|
||||
chanStatusMgrCfg := &netann.ChanStatusConfig{
|
||||
ChanStatusSampleInterval: cfg.ChanStatusSampleInterval,
|
||||
|
||||
Reference in new issue
Block a user