@@ -206,10 +206,6 @@ func (db *BoltStore) NewSession(id ID, localPrivKey *btcec.PrivateKey,
206
206
//
207
207
// NOTE: this is part of the Store interface.
208
208
func (db * BoltStore ) CreateSession (session * Session ) error {
209
- var buf bytes.Buffer
210
- if err := SerializeSession (& buf , session ); err != nil {
211
- return err
212
- }
213
209
sessionKey := getSessionKey (session )
214
210
215
211
return db .Update (func (tx * bbolt.Tx ) error {
@@ -246,21 +242,7 @@ func (db *BoltStore) CreateSession(session *Session) error {
246
242
}
247
243
248
244
for _ , id := range sessionIDs {
249
- keyBytes , err := getKeyForID (
250
- sessionBucket , id ,
251
- )
252
- if err != nil {
253
- return err
254
- }
255
-
256
- v := sessionBucket .Get (keyBytes )
257
- if len (v ) == 0 {
258
- return ErrSessionNotFound
259
- }
260
-
261
- sess , err := DeserializeSession (
262
- bytes .NewReader (v ),
263
- )
245
+ sess , err := getSessionByID (sessionBucket , id )
264
246
if err != nil {
265
247
return err
266
248
}
@@ -291,7 +273,7 @@ func (db *BoltStore) CreateSession(session *Session) error {
291
273
return err
292
274
}
293
275
294
- return sessionBucket . Put ( sessionKey , buf . Bytes () )
276
+ return putSession ( sessionBucket , session )
295
277
})
296
278
}
297
279
@@ -325,12 +307,7 @@ func (db *BoltStore) UpdateSessionRemotePubKey(localPubKey,
325
307
326
308
session .RemotePublicKey = remotePubKey
327
309
328
- var buf bytes.Buffer
329
- if err := SerializeSession (& buf , session ); err != nil {
330
- return err
331
- }
332
-
333
- return sessionBucket .Put (key , buf .Bytes ())
310
+ return putSession (sessionBucket , session )
334
311
})
335
312
}
336
313
@@ -562,12 +539,7 @@ func (db *BoltStore) RevokeSession(key *btcec.PublicKey) error {
562
539
session .State = StateRevoked
563
540
session .RevokedAt = db .clock .Now ().UTC ()
564
541
565
- var buf bytes.Buffer
566
- if err := SerializeSession (& buf , session ); err != nil {
567
- return err
568
- }
569
-
570
- return sessionBucket .Put (key .SerializeCompressed (), buf .Bytes ())
542
+ return putSession (sessionBucket , session )
571
543
})
572
544
}
573
545
@@ -582,22 +554,9 @@ func (db *BoltStore) GetSessionByID(id ID) (*Session, error) {
582
554
return err
583
555
}
584
556
585
- keyBytes , err := getKeyForID (sessionBucket , id )
586
- if err != nil {
587
- return err
588
- }
589
-
590
- v := sessionBucket .Get (keyBytes )
591
- if len (v ) == 0 {
592
- return ErrSessionNotFound
593
- }
557
+ session , err = getSessionByID (sessionBucket , id )
594
558
595
- session , err = DeserializeSession (bytes .NewReader (v ))
596
- if err != nil {
597
- return err
598
- }
599
-
600
- return nil
559
+ return err
601
560
})
602
561
if err != nil {
603
562
return nil , err
@@ -904,3 +863,26 @@ func addIDToGroupIDPair(sessionBkt *bbolt.Bucket, id, groupID ID) error {
904
863
905
864
return sessionIDsBkt .Put (seqNoBytes [:], id [:])
906
865
}
866
+
867
+ func getSessionByID (bucket * bbolt.Bucket , id ID ) (* Session , error ) {
868
+ keyBytes , err := getKeyForID (bucket , id )
869
+ if err != nil {
870
+ return nil , err
871
+ }
872
+
873
+ v := bucket .Get (keyBytes )
874
+ if len (v ) == 0 {
875
+ return nil , ErrSessionNotFound
876
+ }
877
+
878
+ return DeserializeSession (bytes .NewReader (v ))
879
+ }
880
+
881
+ func putSession (bucket * bbolt.Bucket , session * Session ) error {
882
+ var buf bytes.Buffer
883
+ if err := SerializeSession (& buf , session ); err != nil {
884
+ return err
885
+ }
886
+
887
+ return bucket .Put (getSessionKey (session ), buf .Bytes ())
888
+ }
0 commit comments