|
@@ -32,7 +32,8 @@ func New(w http.ResponseWriter, r *http.Request, tmpdir string) *Session {
|
|
|
if err == nil && len(cookie.Value) == 40 {
|
|
|
// Load from file
|
|
|
sess.i = cookie.Value
|
|
|
- f, err := os.Open(sess.d + string(os.PathSeparator) + sess.i)
|
|
|
+ fname := sess.d + string(os.PathSeparator) + sess.i
|
|
|
+ f, err := os.Open(fname)
|
|
|
if err == nil {
|
|
|
defer f.Close()
|
|
|
dec := json.NewDecoder(f)
|
|
@@ -40,6 +41,13 @@ func New(w http.ResponseWriter, r *http.Request, tmpdir string) *Session {
|
|
|
if err == nil {
|
|
|
return &sess
|
|
|
}
|
|
|
+
|
|
|
+ // Update file last modify time if needs
|
|
|
+ if info, err := os.Stat(fname); err == nil {
|
|
|
+ if time.Now().Sub(info.ModTime()) > 30*time.Minute {
|
|
|
+ _ = os.Chtimes(fname, time.Now(), time.Now())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
// Create new
|
|
@@ -63,7 +71,6 @@ func New(w http.ResponseWriter, r *http.Request, tmpdir string) *Session {
|
|
|
Int: map[string]int{},
|
|
|
String: map[string]string{},
|
|
|
}
|
|
|
- sess.c = true
|
|
|
|
|
|
return &sess
|
|
|
}
|