From b0931f49b0f34efb14debf27e4ea34fbbc35f548 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Wed, 19 Jul 2023 13:34:40 +0200 Subject: [PATCH] multi: let subserver manager handle disabled sub-server Modify the sub-server Manager's AddServer method to take an `enabled` boolean so that it can handle what to do with a disabled sub-server. This will come into play in a future commit which adds a status server. --- subservers/manager.go | 10 +++++++++- terminal.go | 14 +++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/subservers/manager.go b/subservers/manager.go index 9b39d29a..577df968 100644 --- a/subservers/manager.go +++ b/subservers/manager.go @@ -45,15 +45,23 @@ func NewManager(permsMgr *perms.Manager) *Manager { } // AddServer adds a new subServer to the manager's set. -func (s *Manager) AddServer(ss SubServer) { +func (s *Manager) AddServer(ss SubServer, enable bool) { + // If the sub-server has explicitly been disabled, then we don't add it + // to the set of servers tracked by the Manager. + if !enable { + return + } + s.mu.Lock() defer s.mu.Unlock() + // Add the enabled server to the set of servers tracked by the Manager. s.servers = append(s.servers, &subServerWrapper{ SubServer: ss, quit: make(chan struct{}), }) + // Register the sub-server's permissions with the permission manager. s.permsMgr.RegisterSubServer( ss.Name(), ss.Permissions(), ss.WhiteListedURLs(), ) diff --git a/terminal.go b/terminal.go index 66f5c35f..732eb734 100644 --- a/terminal.go +++ b/terminal.go @@ -1471,22 +1471,22 @@ func (g *LightningTerminal) initSubServers() { g.subServerMgr.AddServer(subservers.NewFaradaySubServer( g.cfg.Faraday, g.cfg.faradayRpcConfig, g.cfg.Remote.Faraday, g.cfg.faradayRemote, - )) + ), true) g.subServerMgr.AddServer(subservers.NewLoopSubServer( g.cfg.Loop, g.cfg.Remote.Loop, g.cfg.loopRemote, - )) + ), true) g.subServerMgr.AddServer(subservers.NewPoolSubServer( g.cfg.Pool, g.cfg.Remote.Pool, g.cfg.poolRemote, - )) + ), true) - if g.cfg.TaprootAssetsMode != ModeDisable { - g.subServerMgr.AddServer(subservers.NewTaprootAssetsSubServer( + g.subServerMgr.AddServer( + subservers.NewTaprootAssetsSubServer( g.cfg.TaprootAssets, g.cfg.Remote.TaprootAssets, g.cfg.tapRemote, - )) - } + ), g.cfg.TaprootAssetsMode != ModeDisable, + ) } // BakeSuperMacaroon uses the lnd client to bake a macaroon that can include