fix bug: session id undecoded when destroy and sesssion memory provider push wrong

This commit is contained in:
iexploree
2016-03-01 10:51:47 +08:00
parent 67fbafb380
commit 477de9a3f3
2 changed files with 7 additions and 3 deletions

View File

@@ -102,7 +102,8 @@ func (pder *MemProvider) SessionRead(sid string) (Store, error) {
pder.lock.RUnlock()
pder.lock.Lock()
newsess := &MemSessionStore{sid: sid, timeAccessed: time.Now(), value: make(map[interface{}]interface{})}
element := pder.list.PushBack(newsess)
// fix bug: new session should be pushed into the head of list(more fresh)
element := pder.list.PushFront(newsess)
pder.sessions[sid] = element
pder.lock.Unlock()
return newsess, nil
@@ -134,7 +135,8 @@ func (pder *MemProvider) SessionRegenerate(oldsid, sid string) (Store, error) {
pder.lock.RUnlock()
pder.lock.Lock()
newsess := &MemSessionStore{sid: sid, timeAccessed: time.Now(), value: make(map[interface{}]interface{})}
element := pder.list.PushBack(newsess)
// fix bug: new session should be pushed into the head of list(more fresh)
element := pder.list.PushFront(newsess)
pder.sessions[sid] = element
pder.lock.Unlock()
return newsess, nil