diff --git a/terminal.go b/terminal.go index 09737709..8f84d5db 100644 --- a/terminal.go +++ b/terminal.go @@ -23,6 +23,7 @@ import ( "github.com/lightninglabs/faraday/frdrpc" "github.com/lightninglabs/faraday/frdrpcserver" "github.com/lightninglabs/lightning-terminal/litrpc" + mid "github.com/lightninglabs/lightning-terminal/rpcmiddleware" "github.com/lightninglabs/lightning-terminal/session" "github.com/lightninglabs/lndclient" "github.com/lightninglabs/loop" @@ -165,6 +166,9 @@ type LightningTerminal struct { macaroonService *lndclient.MacaroonService macaroonServiceStarted bool + middleware *mid.Manager + middlewareStarted bool + restHandler http.Handler restCancel func() } @@ -592,6 +596,19 @@ func (g *LightningTerminal) startSubservers() error { } g.sessionRpcServerStarted = true + if !g.cfg.RPCMiddleware.Disabled { + // Start the middleware manager. + g.middleware = mid.NewManager( + g.cfg.RPCMiddleware.InterceptTimeout, + g.lndClient.Client, + ) + + if err = g.middleware.Start(); err != nil { + return err + } + g.middlewareStarted = true + } + return nil } @@ -880,6 +897,10 @@ func (g *LightningTerminal) shutdown() error { } } + if g.middlewareStarted { + g.middleware.Stop() + } + if g.lndClient != nil { g.lndClient.Close() }