From 33d1caf67061df654da87ca8834c847d752b496a Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie <jimmyzelinskie@gmail.com> Date: Tue, 13 Aug 2013 16:06:22 -0400 Subject: [PATCH] initiateRead helper --- storage/redis/redis.go | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/storage/redis/redis.go b/storage/redis/redis.go index 05481cb..4adffd2 100644 --- a/storage/redis/redis.go +++ b/storage/redis/redis.go @@ -123,6 +123,16 @@ func (tx *Tx) initiateWrite() error { return nil } +func (tx *Tx) initiateRead() error { + if tx.done { + return storage.ErrTxDone + } + if tx.multi == true { + return errors.New("Tried to read during MULTI") + } + return nil +} + func (tx *Tx) Commit() error { if tx.done { return storage.ErrTxDone @@ -147,15 +157,13 @@ func (tx *Tx) Rollback() error { } func (tx *Tx) FindUser(passkey string) (*storage.User, bool, error) { - if tx.done { - return nil, false, storage.ErrTxDone - } - if tx.multi == true { - return nil, false, errors.New("Tried to read during MULTI") + err := tx.initiateRead() + if err != nil { + return nil, false, err } key := tx.conf.Prefix + "user:" + passkey - _, err := tx.Do("WATCH", key) + _, err = tx.Do("WATCH", key) if err != nil { return nil, false, err } @@ -176,15 +184,13 @@ func (tx *Tx) FindUser(passkey string) (*storage.User, bool, error) { } func (tx *Tx) FindTorrent(infohash string) (*storage.Torrent, bool, error) { - if tx.done { - return nil, false, storage.ErrTxDone - } - if tx.multi == true { - return nil, false, errors.New("Tried to read during MULTI") + err := tx.initiateRead() + if err != nil { + return nil, false, err } key := tx.conf.Prefix + "torrent:" + infohash - _, err := tx.Do("WATCH", key) + _, err = tx.Do("WATCH", key) if err != nil { return nil, false, err } @@ -205,11 +211,9 @@ func (tx *Tx) FindTorrent(infohash string) (*storage.Torrent, bool, error) { } func (tx *Tx) ClientWhitelisted(peerID string) (exists bool, err error) { - if tx.done { - return false, storage.ErrTxDone - } - if tx.multi == true { - return false, errors.New("Tried to read during MULTI") + err = tx.initiateRead() + if err != nil { + return false, err } key := tx.conf.Prefix + "whitelist"