@@ -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
@@ -562,12 +539,7 @@ func (db *BoltStore) RevokeSession(key *btcec.PublicKey) error {
562539 session .State = StateRevoked
563540 session .RevokedAt = db .clock .Now ().UTC ()
564541
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 )
571543 })
572544}
573545
@@ -582,22 +554,9 @@ func (db *BoltStore) GetSessionByID(id ID) (*Session, error) {
582554 return err
583555 }
584556
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 )
594558
595- session , err = DeserializeSession (bytes .NewReader (v ))
596- if err != nil {
597- return err
598- }
599-
600- return nil
559+ return err
601560 })
602561 if err != nil {
603562 return nil , err
@@ -904,3 +863,26 @@ func addIDToGroupIDPair(sessionBkt *bbolt.Bucket, id, groupID ID) error {
904863
905864 return sessionIDsBkt .Put (seqNoBytes [:], id [:])
906865}
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