Skip to content

Commit

Permalink
Merge pull request kataras#1064 from akiraho/master
Browse files Browse the repository at this point in the history
various fixes on redis as sessions db
  • Loading branch information
kataras authored Aug 18, 2018
2 parents 9ecdfe2 + 62f5b5b commit 1efa53e
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 5 deletions.
1 change: 1 addition & 0 deletions sessions/lifetime.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func (lt *LifeTime) Revive(onExpire func()) {
// Shift resets the lifetime based on "d".
func (lt *LifeTime) Shift(d time.Duration) {
if d > 0 && lt.timer != nil {
lt.Time = time.Now().Add(d)
lt.timer.Reset(d)
}
}
Expand Down
10 changes: 5 additions & 5 deletions sessions/sessiondb/redis/service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package service
import (
"fmt"
"time"

"github.com/gomodule/redigo/redis"
"github.com/kataras/iris/core/errors"
)
Expand Down Expand Up @@ -84,7 +83,7 @@ func (r *Service) Get(key string) (interface{}, error) {

// TTL returns the seconds to expire, if the key has expiration and error if action failed.
// Read more at: https://redis.io/commands/ttl
func (r *Service) TTL(key string) (seconds int64, hasExpiration bool, ok bool) {
func (r *Service) TTL(key string) (seconds int64, hasExpiration bool, found bool) {
c := r.pool.Get()
defer c.Close()
redisVal, err := c.Do("TTL", r.Config.Prefix+key)
Expand All @@ -93,14 +92,15 @@ func (r *Service) TTL(key string) (seconds int64, hasExpiration bool, ok bool) {
}
seconds = redisVal.(int64)
// if -1 means the key has unlimited life time.
hasExpiration = seconds == -1
hasExpiration = seconds > -1
// if -2 means key does not exist.
ok = (c.Err() != nil || seconds == -2)
found = ! (c.Err() != nil || seconds == -2)
return
}

func (r *Service) updateTTLConn(c redis.Conn, key string, newSecondsLifeTime int64) error {
reply, err := c.Do("EXPIRE", r.Config.Prefix+key, newSecondsLifeTime)

if err != nil {
return err
}
Expand Down Expand Up @@ -201,7 +201,7 @@ func (r *Service) getKeysConn(c redis.Conn, prefix string) ([]string, error) {
if keysSliceAsBytes, ok := keysInterface[1].([]interface{}); ok {
keys := make([]string, len(keysSliceAsBytes), len(keysSliceAsBytes))
for i, k := range keysSliceAsBytes {
keys[i] = fmt.Sprintf("%s", k)
keys[i] = fmt.Sprintf("%s", k)[len(r.Config.Prefix):]
}

return keys, nil
Expand Down

0 comments on commit 1efa53e

Please sign in to comment.