Skip to content

Commit aafeacd

Browse files
committed
session: add session get and put helpers
1 parent 6717d9d commit aafeacd

File tree

1 file changed

+29
-47
lines changed

1 file changed

+29
-47
lines changed

session/kvdb_store.go

Lines changed: 29 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -206,10 +206,6 @@ func (db *BoltStore) NewSession(id ID, localPrivKey *btcec.PrivateKey,
206206
//
207207
// NOTE: this is part of the Store interface.
208208
func (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

Comments
 (0)