From 29f6db7de6fe79e6bc4e1fb05d1fd67b10be3e3d Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Sun, 9 Feb 2025 07:12:06 +0200 Subject: [PATCH] lit: use db.Store interface instead of raw DB pointer Give the sessionRpcServer access to the session store via the session.Store interface instead of the raw DB pointer. This will make it possible to swop out the implementation (which is currently bbolt) with something else such as a SQL implementation. We move the responsibility of closing the DB to the main LiT server. --- session_rpcserver.go | 6 +----- terminal.go | 7 +++++++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/session_rpcserver.go b/session_rpcserver.go index 2b4e7fa5..a9264b9b 100644 --- a/session_rpcserver.go +++ b/session_rpcserver.go @@ -58,7 +58,7 @@ type sessionRpcServer struct { // sessionRpcServerConfig holds the values used to configure the // sessionRpcServer. type sessionRpcServerConfig struct { - db *session.BoltStore + db session.Store basicAuth string grpcOptions []grpc.ServerOption registerGrpcServers func(server *grpc.Server) @@ -175,10 +175,6 @@ func (s *sessionRpcServer) start(ctx context.Context) error { func (s *sessionRpcServer) stop() error { var returnErr error s.stopOnce.Do(func() { - if err := s.cfg.db.Close(); err != nil { - log.Errorf("Error closing session DB: %v", err) - returnErr = err - } s.sessionServer.Stop() close(s.quit) diff --git a/terminal.go b/terminal.go index 0c84844d..e184faee 100644 --- a/terminal.go +++ b/terminal.go @@ -1457,6 +1457,13 @@ func (g *LightningTerminal) shutdownSubServers() error { } } + if g.sessionDB != nil { + if err := g.sessionDB.Close(); err != nil { + log.Errorf("Error closing session DB: %v", err) + returnErr = err + } + } + if g.lndClient != nil { g.lndClient.Close() }