@@ -206,10 +206,6 @@ func (db *BoltStore) NewSession(id ID, localPrivKey *btcec.PrivateKey,
206206//
207207// NOTE: this is part of the Store interface.
208208func (db * BoltStore ) CreateSession (session * Session ) error {
209- var buf bytes.Buffer
210- if err := SerializeSession (& buf , session ); err != nil {
211- return err
212- }
213209 sessionKey := getSessionKey (session )
214210
215211 return db .Update (func (tx * bbolt.Tx ) error {
@@ -246,21 +242,7 @@ func (db *BoltStore) CreateSession(session *Session) error {
246242 }
247243
248244 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 )
264246 if err != nil {
265247 return err
266248 }
@@ -291,7 +273,7 @@ func (db *BoltStore) CreateSession(session *Session) error {
291273 return err
292274 }
293275
294- return sessionBucket . Put ( sessionKey , buf . Bytes () )
276+ return putSession ( sessionBucket , session )
295277 })
296278}
297279
@@ -325,12 +307,7 @@ func (db *BoltStore) UpdateSessionRemotePubKey(localPubKey,
325307
326308 session .RemotePublicKey = remotePubKey
327309
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 )
334311 })
335312}
336313
@@ -441,7 +418,7 @@ func (db *BoltStore) listSessions(filterFn func(s *Session) bool) ([]*Session, e
441418// state.
442419//
443420// NOTE: this is part of the Store interface.
444- func (db * DB ) DeleteReservedSessions () error {
421+ func (db * BoltStore ) DeleteReservedSessions () error {
445422 return db .Update (func (tx * bbolt.Tx ) error {
446423 sessionBucket , err := getBucket (tx , sessionBucketKey )
447424 if err != nil {
@@ -555,12 +532,7 @@ func (db *BoltStore) RevokeSession(key *btcec.PublicKey) error {
555532 session .State = StateRevoked
556533 session .RevokedAt = db .clock .Now ().UTC ()
557534
558- var buf bytes.Buffer
559- if err := SerializeSession (& buf , session ); err != nil {
560- return err
561- }
562-
563- return sessionBucket .Put (key .SerializeCompressed (), buf .Bytes ())
535+ return putSession (sessionBucket , session )
564536 })
565537}
566538
@@ -575,22 +547,9 @@ func (db *BoltStore) GetSessionByID(id ID) (*Session, error) {
575547 return err
576548 }
577549
578- keyBytes , err := getKeyForID (sessionBucket , id )
579- if err != nil {
580- return err
581- }
582-
583- v := sessionBucket .Get (keyBytes )
584- if len (v ) == 0 {
585- return ErrSessionNotFound
586- }
550+ session , err = getSessionByID (sessionBucket , id )
587551
588- session , err = DeserializeSession (bytes .NewReader (v ))
589- if err != nil {
590- return err
591- }
592-
593- return nil
552+ return err
594553 })
595554 if err != nil {
596555 return nil , err
@@ -897,3 +856,26 @@ func addIDToGroupIDPair(sessionBkt *bbolt.Bucket, id, groupID ID) error {
897856
898857 return sessionIDsBkt .Put (seqNoBytes [:], id [:])
899858}
859+
860+ func getSessionByID (bucket * bbolt.Bucket , id ID ) (* Session , error ) {
861+ keyBytes , err := getKeyForID (bucket , id )
862+ if err != nil {
863+ return nil , err
864+ }
865+
866+ v := bucket .Get (keyBytes )
867+ if len (v ) == 0 {
868+ return nil , ErrSessionNotFound
869+ }
870+
871+ return DeserializeSession (bytes .NewReader (v ))
872+ }
873+
874+ func putSession (bucket * bbolt.Bucket , session * Session ) error {
875+ var buf bytes.Buffer
876+ if err := SerializeSession (& buf , session ); err != nil {
877+ return err
878+ }
879+
880+ return bucket .Put (getSessionKey (session ), buf .Bytes ())
881+ }
0 commit comments