diff --git a/terminal.go b/terminal.go index 8b06da10..ee1c46a9 100644 --- a/terminal.go +++ b/terminal.go @@ -23,6 +23,7 @@ import ( "github.com/lightninglabs/faraday/frdrpcserver" "github.com/lightninglabs/lightning-terminal/accounts" "github.com/lightninglabs/lightning-terminal/firewall" + "github.com/lightninglabs/lightning-terminal/firewalldb" "github.com/lightninglabs/lightning-terminal/litrpc" "github.com/lightninglabs/lightning-terminal/perms" "github.com/lightninglabs/lightning-terminal/queue" @@ -180,6 +181,8 @@ type LightningTerminal struct { accountRpcServer *accounts.RPCServer + firewallDB *firewalldb.DB + restHandler http.Handler restCancel func() } @@ -252,6 +255,12 @@ func (g *LightningTerminal) Run() error { g.ruleMgrs = rules.NewRuleManagerSet() + networkDir := filepath.Join(g.cfg.LitDir, g.cfg.Network) + g.firewallDB, err = firewalldb.NewDB(networkDir, firewalldb.DBFilename) + if err != nil { + return fmt.Errorf("error creating session DB: %v", err) + } + g.sessionRpcServer, err = newSessionRPCServer(&sessionRpcServerConfig{ basicAuth: g.rpcProxy.basicAuth, dbDir: filepath.Join(g.cfg.LitDir, g.cfg.Network), @@ -981,6 +990,13 @@ func (g *LightningTerminal) shutdown() error { g.middleware.Stop() } + if g.firewallDB != nil { + if err := g.firewallDB.Close(); err != nil { + log.Errorf("Error closing rules DB: %v", err) + returnErr = err + } + } + if g.ruleMgrs != nil { if err := g.ruleMgrs.Stop(); err != nil { log.Errorf("Error stopping rule manager set: %v", err)