@@ -41,7 +41,6 @@ type sessionRpcServer struct {
41
41
litrpc.UnimplementedAutopilotServer
42
42
43
43
cfg * sessionRpcServerConfig
44
- db * session.DB
45
44
sessionServer * session.Server
46
45
47
46
// sessRegMu is a mutex that should be held between acquiring an unused
@@ -57,8 +56,8 @@ type sessionRpcServer struct {
57
56
// sessionRpcServerConfig holds the values used to configure the
58
57
// sessionRpcServer.
59
58
type sessionRpcServerConfig struct {
59
+ db * session.DB
60
60
basicAuth string
61
- dbDir string
62
61
grpcOptions []grpc.ServerOption
63
62
registerGrpcServers func (server * grpc.Server )
64
63
superMacBaker session.MacaroonBaker
@@ -74,12 +73,6 @@ type sessionRpcServerConfig struct {
74
73
func newSessionRPCServer (cfg * sessionRpcServerConfig ) (* sessionRpcServer ,
75
74
error ) {
76
75
77
- // Create an instance of the local Terminal Connect session store DB.
78
- db , err := session .NewDB (cfg .dbDir , session .DBFilename )
79
- if err != nil {
80
- return nil , fmt .Errorf ("error creating session DB: %v" , err )
81
- }
82
-
83
76
// Create the gRPC server that handles adding/removing sessions and the
84
77
// actual mailbox server that spins up the Terminal Connect server
85
78
// interface.
@@ -96,7 +89,6 @@ func newSessionRPCServer(cfg *sessionRpcServerConfig) (*sessionRpcServer,
96
89
97
90
return & sessionRpcServer {
98
91
cfg : cfg ,
99
- db : db ,
100
92
sessionServer : server ,
101
93
quit : make (chan struct {}),
102
94
}, nil
@@ -106,7 +98,7 @@ func newSessionRPCServer(cfg *sessionRpcServerConfig) (*sessionRpcServer,
106
98
// requests. This includes resuming all non-revoked sessions.
107
99
func (s * sessionRpcServer ) start () error {
108
100
// Start up all previously created sessions.
109
- sessions , err := s .db .ListSessions (nil )
101
+ sessions , err := s .cfg . db .ListSessions (nil )
110
102
if err != nil {
111
103
return fmt .Errorf ("error listing sessions: %v" , err )
112
104
}
@@ -157,7 +149,7 @@ func (s *sessionRpcServer) start() error {
157
149
err )
158
150
159
151
if perm {
160
- err := s .db .RevokeSession (
152
+ err := s .cfg . db .RevokeSession (
161
153
sess .LocalPublicKey ,
162
154
)
163
155
if err != nil {
@@ -182,7 +174,7 @@ func (s *sessionRpcServer) start() error {
182
174
func (s * sessionRpcServer ) stop () error {
183
175
var returnErr error
184
176
s .stopOnce .Do (func () {
185
- if err := s .db .Close (); err != nil {
177
+ if err := s .cfg . db .Close (); err != nil {
186
178
log .Errorf ("Error closing session DB: %v" , err )
187
179
returnErr = err
188
180
}
@@ -323,7 +315,7 @@ func (s *sessionRpcServer) AddSession(_ context.Context,
323
315
s .sessRegMu .Lock ()
324
316
defer s .sessRegMu .Unlock ()
325
317
326
- id , localPrivKey , err := s .db .GetUnusedIDAndKeyPair ()
318
+ id , localPrivKey , err := s .cfg . db .GetUnusedIDAndKeyPair ()
327
319
if err != nil {
328
320
return nil , err
329
321
}
@@ -336,7 +328,7 @@ func (s *sessionRpcServer) AddSession(_ context.Context,
336
328
return nil , fmt .Errorf ("error creating new session: %v" , err )
337
329
}
338
330
339
- if err := s .db .CreateSession (sess ); err != nil {
331
+ if err := s .cfg . db .CreateSession (sess ); err != nil {
340
332
return nil , fmt .Errorf ("error storing session: %v" , err )
341
333
}
342
334
@@ -375,7 +367,7 @@ func (s *sessionRpcServer) resumeSession(sess *session.Session) error {
375
367
log .Debugf ("Not resuming session %x with expiry %s" ,
376
368
pubKeyBytes , sess .Expiry )
377
369
378
- if err := s .db .RevokeSession (pubKey ); err != nil {
370
+ if err := s .cfg . db .RevokeSession (pubKey ); err != nil {
379
371
return fmt .Errorf ("error revoking session: %v" , err )
380
372
}
381
373
@@ -455,7 +447,7 @@ func (s *sessionRpcServer) resumeSession(sess *session.Session) error {
455
447
log .Debugf ("Deadline for session %x has already " +
456
448
"passed. Revoking session" , pubKeyBytes )
457
449
458
- return s .db .RevokeSession (pubKey )
450
+ return s .cfg . db .RevokeSession (pubKey )
459
451
}
460
452
461
453
// Start the deadline timer.
@@ -490,7 +482,7 @@ func (s *sessionRpcServer) resumeSession(sess *session.Session) error {
490
482
491
483
authData := []byte (fmt .Sprintf ("%s: %s" , HeaderMacaroon , mac ))
492
484
sessionClosedSub , err := s .sessionServer .StartSession (
493
- sess , authData , s .db .UpdateSessionRemotePubKey , onNewStatus ,
485
+ sess , authData , s .cfg . db .UpdateSessionRemotePubKey , onNewStatus ,
494
486
)
495
487
if err != nil {
496
488
return err
@@ -535,7 +527,7 @@ func (s *sessionRpcServer) resumeSession(sess *session.Session) error {
535
527
log .Debugf ("Error stopping session: %v" , err )
536
528
}
537
529
538
- err = s .db .RevokeSession (pubKey )
530
+ err = s .cfg . db .RevokeSession (pubKey )
539
531
if err != nil {
540
532
log .Debugf ("error revoking session: %v" , err )
541
533
}
@@ -548,7 +540,7 @@ func (s *sessionRpcServer) resumeSession(sess *session.Session) error {
548
540
func (s * sessionRpcServer ) ListSessions (_ context.Context ,
549
541
_ * litrpc.ListSessionsRequest ) (* litrpc.ListSessionsResponse , error ) {
550
542
551
- sessions , err := s .db .ListSessions (nil )
543
+ sessions , err := s .cfg . db .ListSessions (nil )
552
544
if err != nil {
553
545
return nil , fmt .Errorf ("error fetching sessions: %v" , err )
554
546
}
@@ -577,7 +569,7 @@ func (s *sessionRpcServer) RevokeSession(ctx context.Context,
577
569
return nil , fmt .Errorf ("error parsing public key: %v" , err )
578
570
}
579
571
580
- if err := s .db .RevokeSession (pubKey ); err != nil {
572
+ if err := s .cfg . db .RevokeSession (pubKey ); err != nil {
581
573
return nil , fmt .Errorf ("error revoking session: %v" , err )
582
574
}
583
575
@@ -995,7 +987,7 @@ func (s *sessionRpcServer) AddAutopilotSession(ctx context.Context,
995
987
s .sessRegMu .Lock ()
996
988
defer s .sessRegMu .Unlock ()
997
989
998
- id , localPrivKey , err := s .db .GetUnusedIDAndKeyPair ()
990
+ id , localPrivKey , err := s .cfg . db .GetUnusedIDAndKeyPair ()
999
991
if err != nil {
1000
992
return nil , err
1001
993
}
@@ -1037,7 +1029,7 @@ func (s *sessionRpcServer) AddAutopilotSession(ctx context.Context,
1037
1029
// We only persist this session if we successfully retrieved the
1038
1030
// autopilot's static key.
1039
1031
sess .RemotePublicKey = remoteKey
1040
- if err := s .db .CreateSession (sess ); err != nil {
1032
+ if err := s .cfg . db .CreateSession (sess ); err != nil {
1041
1033
return nil , fmt .Errorf ("error storing session: %v" , err )
1042
1034
}
1043
1035
@@ -1061,7 +1053,7 @@ func (s *sessionRpcServer) ListAutopilotSessions(_ context.Context,
1061
1053
_ * litrpc.ListAutopilotSessionsRequest ) (
1062
1054
* litrpc.ListAutopilotSessionsResponse , error ) {
1063
1055
1064
- sessions , err := s .db .ListSessions (func (s * session.Session ) bool {
1056
+ sessions , err := s .cfg . db .ListSessions (func (s * session.Session ) bool {
1065
1057
return s .Type == session .TypeAutopilot
1066
1058
})
1067
1059
if err != nil {
@@ -1092,7 +1084,7 @@ func (s *sessionRpcServer) RevokeAutopilotSession(ctx context.Context,
1092
1084
return nil , fmt .Errorf ("error parsing public key: %v" , err )
1093
1085
}
1094
1086
1095
- sess , err := s .db .GetSession (pubKey )
1087
+ sess , err := s .cfg . db .GetSession (pubKey )
1096
1088
if err != nil {
1097
1089
return nil , err
1098
1090
}
0 commit comments