mirror of
https://github.com/astaxie/beego.git
synced 2024-11-26 04:01:29 +00:00
fix session file write bug
This commit is contained in:
parent
98b245c746
commit
6d3486e2a6
@ -32,7 +32,6 @@ func (fs *FileSessionStore) Set(key, value interface{}) error {
|
|||||||
func (fs *FileSessionStore) Get(key interface{}) interface{} {
|
func (fs *FileSessionStore) Get(key interface{}) interface{} {
|
||||||
fs.lock.RLock()
|
fs.lock.RLock()
|
||||||
defer fs.lock.RUnlock()
|
defer fs.lock.RUnlock()
|
||||||
fs.updatecontent()
|
|
||||||
if v, ok := fs.values[key]; ok {
|
if v, ok := fs.values[key]; ok {
|
||||||
return v
|
return v
|
||||||
} else {
|
} else {
|
||||||
@ -58,13 +57,13 @@ func (fs *FileSessionStore) SessionRelease() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (fs *FileSessionStore) updatecontent() {
|
func (fs *FileSessionStore) updatecontent() {
|
||||||
if len(fs.values) > 0 {
|
|
||||||
b, err := encodeGob(fs.values)
|
b, err := encodeGob(fs.values)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fs.f.Truncate(0)
|
||||||
|
fs.f.Seek(0, 0)
|
||||||
fs.f.Write(b)
|
fs.f.Write(b)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type FileProvider struct {
|
type FileProvider struct {
|
||||||
@ -107,7 +106,7 @@ func (fp *FileProvider) SessionRead(sid string) (SessionStore, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
f.Close()
|
f.Close()
|
||||||
f, err = os.Create(path.Join(fp.savePath, string(sid[0]), string(sid[1]), sid))
|
f, err = os.OpenFile(path.Join(fp.savePath, string(sid[0]), string(sid[1]), sid), os.O_WRONLY|os.O_CREATE, 0777)
|
||||||
ss := &FileSessionStore{f: f, sid: sid, values: kv}
|
ss := &FileSessionStore{f: f, sid: sid, values: kv}
|
||||||
return ss, nil
|
return ss, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user