Skip to content

Commit

Permalink
session: add session get and put helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
ellemouton committed Feb 17, 2025
1 parent 9d5e124 commit c661a61
Showing 1 changed file with 29 additions and 47 deletions.
76 changes: 29 additions & 47 deletions session/kvdb_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,6 @@ func (db *BoltStore) NewSession(id ID, localPrivKey *btcec.PrivateKey,
//
// NOTE: this is part of the Store interface.
func (db *BoltStore) CreateSession(session *Session) error {
var buf bytes.Buffer
if err := SerializeSession(&buf, session); err != nil {
return err
}
sessionKey := getSessionKey(session)

return db.Update(func(tx *bbolt.Tx) error {
Expand Down Expand Up @@ -246,21 +242,7 @@ func (db *BoltStore) CreateSession(session *Session) error {
}

for _, id := range sessionIDs {
keyBytes, err := getKeyForID(
sessionBucket, id,
)
if err != nil {
return err
}

v := sessionBucket.Get(keyBytes)
if len(v) == 0 {
return ErrSessionNotFound
}

sess, err := DeserializeSession(
bytes.NewReader(v),
)
sess, err := getSessionByID(sessionBucket, id)
if err != nil {
return err
}
Expand Down Expand Up @@ -291,7 +273,7 @@ func (db *BoltStore) CreateSession(session *Session) error {
return err
}

return sessionBucket.Put(sessionKey, buf.Bytes())
return putSession(sessionBucket, session)
})
}

Expand Down Expand Up @@ -325,12 +307,7 @@ func (db *BoltStore) UpdateSessionRemotePubKey(localPubKey,

session.RemotePublicKey = remotePubKey

var buf bytes.Buffer
if err := SerializeSession(&buf, session); err != nil {
return err
}

return sessionBucket.Put(key, buf.Bytes())
return putSession(sessionBucket, session)
})
}

Expand Down Expand Up @@ -562,12 +539,7 @@ func (db *BoltStore) RevokeSession(key *btcec.PublicKey) error {
session.State = StateRevoked
session.RevokedAt = db.clock.Now().UTC()

var buf bytes.Buffer
if err := SerializeSession(&buf, session); err != nil {
return err
}

return sessionBucket.Put(key.SerializeCompressed(), buf.Bytes())
return putSession(sessionBucket, session)
})
}

Expand All @@ -582,22 +554,9 @@ func (db *BoltStore) GetSessionByID(id ID) (*Session, error) {
return err
}

keyBytes, err := getKeyForID(sessionBucket, id)
if err != nil {
return err
}

v := sessionBucket.Get(keyBytes)
if len(v) == 0 {
return ErrSessionNotFound
}
session, err = getSessionByID(sessionBucket, id)

session, err = DeserializeSession(bytes.NewReader(v))
if err != nil {
return err
}

return nil
return err
})
if err != nil {
return nil, err
Expand Down Expand Up @@ -904,3 +863,26 @@ func addIDToGroupIDPair(sessionBkt *bbolt.Bucket, id, groupID ID) error {

return sessionIDsBkt.Put(seqNoBytes[:], id[:])
}

func getSessionByID(bucket *bbolt.Bucket, id ID) (*Session, error) {
keyBytes, err := getKeyForID(bucket, id)
if err != nil {
return nil, err
}

v := bucket.Get(keyBytes)
if len(v) == 0 {
return nil, ErrSessionNotFound
}

return DeserializeSession(bytes.NewReader(v))
}

func putSession(bucket *bbolt.Bucket, session *Session) error {
var buf bytes.Buffer
if err := SerializeSession(&buf, session); err != nil {
return err
}

return bucket.Put(getSessionKey(session), buf.Bytes())
}

0 comments on commit c661a61

Please sign in to comment.