Merge pull request #1464 from niphlod/fix/1309

fixes #1309 (and sessions2trash.py, too)
This commit is contained in:
mdipierro
2016-09-23 13:51:22 -05:00
committed by GitHub
2 changed files with 27 additions and 24 deletions
+16 -9
View File
@@ -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)