@@ -216,14 +216,14 @@ type LightningTerminal struct {
216
216
middleware * mid.Manager
217
217
middlewareStarted bool
218
218
219
- accountsStore accounts.Store
220
219
accountService * accounts.InterceptorService
221
220
accountServiceStarted bool
222
221
223
222
accountRpcServer * accounts.RPCServer
224
223
224
+ stores * stores
225
+
225
226
firewallDB * firewalldb.DB
226
- sessionDB * session.BoltStore
227
227
228
228
restHandler http.Handler
229
229
restCancel func ()
@@ -236,6 +236,15 @@ func New() *LightningTerminal {
236
236
}
237
237
}
238
238
239
+ // stores holds a collection of the DB stores that are used by LiT.
240
+ type stores struct {
241
+ accounts accounts.Store
242
+ sessions session.Store
243
+
244
+ // close is a callback that can be used to close all the stores in the
245
+ close func () error
246
+ }
247
+
239
248
// Run starts everything and then blocks until either the application is shut
240
249
// down or a critical error happens.
241
250
func (g * LightningTerminal ) Run (ctx context.Context ) error {
@@ -421,14 +430,13 @@ func (g *LightningTerminal) start(ctx context.Context) error {
421
430
return fmt .Errorf ("could not create network directory: %v" , err )
422
431
}
423
432
424
- clock := clock .NewDefaultClock ()
425
- g .accountsStore , err = NewAccountStore (g .cfg , clock )
433
+ g .stores , err = NewStores (g .cfg , clock .NewDefaultClock ())
426
434
if err != nil {
427
- return fmt .Errorf ("error creating accounts store : %w " , err )
435
+ return fmt .Errorf ("could not create stores : %v " , err )
428
436
}
429
437
430
438
g .accountService , err = accounts .NewService (
431
- g .accountsStore , accountServiceErrCallback ,
439
+ g .stores . accounts , accountServiceErrCallback ,
432
440
)
433
441
if err != nil {
434
442
return fmt .Errorf ("error creating account service: %v" , err )
@@ -448,16 +456,8 @@ func (g *LightningTerminal) start(ctx context.Context) error {
448
456
449
457
g .ruleMgrs = rules .NewRuleManagerSet ()
450
458
451
- // Create an instance of the local Terminal Connect session store DB.
452
- g .sessionDB , err = session .NewDB (
453
- networkDir , session .DBFilename , clock , g .accountsStore ,
454
- )
455
- if err != nil {
456
- return fmt .Errorf ("error creating session DB: %v" , err )
457
- }
458
-
459
459
g .firewallDB , err = firewalldb .NewDB (
460
- networkDir , firewalldb .DBFilename , g .sessionDB ,
460
+ networkDir , firewalldb .DBFilename , g .stores . sessions ,
461
461
)
462
462
if err != nil {
463
463
return fmt .Errorf ("error creating firewall DB: %v" , err )
@@ -493,7 +493,7 @@ func (g *LightningTerminal) start(ctx context.Context) error {
493
493
}
494
494
495
495
g .sessionRpcServer , err = newSessionRPCServer (& sessionRpcServerConfig {
496
- db : g .sessionDB ,
496
+ db : g .stores . sessions ,
497
497
basicAuth : g .rpcProxy .basicAuth ,
498
498
grpcOptions : []grpc.ServerOption {
499
499
grpc .CustomCodec (grpcProxy .Codec ()), // nolint: staticcheck,
@@ -1086,7 +1086,7 @@ func (g *LightningTerminal) startInternalSubServers(ctx context.Context,
1086
1086
1087
1087
privacyMapper := firewall .NewPrivacyMapper (
1088
1088
g .firewallDB .PrivacyDB , firewall .CryptoRandIntn ,
1089
- g .sessionDB ,
1089
+ g .stores . sessions ,
1090
1090
)
1091
1091
1092
1092
mw := []mid.RequestInterceptor {
@@ -1097,7 +1097,7 @@ func (g *LightningTerminal) startInternalSubServers(ctx context.Context,
1097
1097
1098
1098
if ! g .cfg .Autopilot .Disable {
1099
1099
ruleEnforcer := firewall .NewRuleEnforcer (
1100
- g .firewallDB , g .firewallDB , g .sessionDB ,
1100
+ g .firewallDB , g .firewallDB , g .stores . sessions ,
1101
1101
g .autopilotClient .ListFeaturePerms ,
1102
1102
g .permsMgr , g .lndClient .NodePubkey ,
1103
1103
g .lndClient .Router ,
@@ -1436,14 +1436,6 @@ func (g *LightningTerminal) shutdownSubServers() error {
1436
1436
}
1437
1437
}
1438
1438
1439
- if g .accountsStore != nil {
1440
- err = g .accountsStore .Close ()
1441
- if err != nil {
1442
- log .Errorf ("Error closing accounts store: %v" , err )
1443
- returnErr = err
1444
- }
1445
- }
1446
-
1447
1439
if g .middlewareStarted {
1448
1440
g .middleware .Stop ()
1449
1441
}
@@ -1462,9 +1454,10 @@ func (g *LightningTerminal) shutdownSubServers() error {
1462
1454
}
1463
1455
}
1464
1456
1465
- if g .sessionDB != nil {
1466
- if err := g .sessionDB .Close (); err != nil {
1467
- log .Errorf ("Error closing session DB: %v" , err )
1457
+ if g .stores != nil {
1458
+ err = g .stores .close ()
1459
+ if err != nil {
1460
+ log .Errorf ("Error closing stores: %v" , err )
1468
1461
returnErr = err
1469
1462
}
1470
1463
}
0 commit comments