Merge pull request #1464 from niphlod/fix/1309
fixes #1309 (and sessions2trash.py, too)
This commit is contained in:
@@ -1,17 +1,20 @@
|
||||
EXPIRATION_MINUTES=60
|
||||
DIGITS=('0','1','2','3','4','5','6','7','8','9')
|
||||
import os, time, stat, cPickle, logging
|
||||
path = os.path.join(request.folder,'sessions')
|
||||
|
||||
import os, time, stat, logging
|
||||
from gluon._compat import pickle
|
||||
|
||||
EXPIRATION_MINUTES = 60
|
||||
|
||||
path = os.path.join(request.folder, 'sessions')
|
||||
if not os.path.exists(path):
|
||||
os.mkdir(path)
|
||||
now = time.time()
|
||||
for filename in os.listdir(path):
|
||||
fullpath=os.path.join(path,filename)
|
||||
if os.path.isfile(fullpath) and filename.startswith(DIGITS):
|
||||
for path, dirs, files in os.walk(path, topdown=False):
|
||||
for x in files:
|
||||
fullpath = os.path.join(path, x)
|
||||
try:
|
||||
filetime = os.stat(fullpath)[stat.ST_MTIME] # get it before our io
|
||||
filetime = os.stat(fullpath)[stat.ST_MTIME] # get it before our io
|
||||
try:
|
||||
session_data = cPickle.load(open(fullpath, 'rb+'))
|
||||
session_data = pickle.load(open(fullpath, 'rb+'))
|
||||
expiration = session_data['auth']['expiration']
|
||||
except:
|
||||
expiration = EXPIRATION_MINUTES * 60
|
||||
@@ -19,3 +22,7 @@ for filename in os.listdir(path):
|
||||
os.unlink(fullpath)
|
||||
except:
|
||||
logging.exception('failure to check %s' % fullpath)
|
||||
for d in dirs:
|
||||
dd = os.path.join(path, d)
|
||||
if not os.listdir(dd):
|
||||
os.rmdir(dd)
|
||||
|
||||
Reference in New Issue
Block a user