From e0c4d59af4693f76fca74412596890f459c1c23d Mon Sep 17 00:00:00 2001 From: Ben Busby Date: Wed, 17 Nov 2021 19:04:48 -0700 Subject: [PATCH] Move section for clearing out old sessions --- app/routes.py | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/app/routes.py b/app/routes.py index 43db0e3..2e066fc 100644 --- a/app/routes.py +++ b/app/routes.py @@ -66,26 +66,28 @@ def session_required(f): 'cookies_disabled' not in request.args): g.session_key = session['key'] else: - invalid_sessions = [] session.pop('_permanent', None) - for user_session in os.listdir(app.config['SESSION_FILE_DIR']): - session_path = os.path.join( - app.config['SESSION_FILE_DIR'], - user_session) - try: - with open(session_path, 'rb') as session_file: - _ = pickle.load(session_file) - data = pickle.load(session_file) - if isinstance(data, dict) and 'valid' in data: - continue - invalid_sessions.append(session_path) - except FileNotFoundError: - pass - - for invalid_session in invalid_sessions: - os.remove(invalid_session) g.session_key = app.default_key + # Clear out old sessions + invalid_sessions = [] + for user_session in os.listdir(app.config['SESSION_FILE_DIR']): + session_path = os.path.join( + app.config['SESSION_FILE_DIR'], + user_session) + try: + with open(session_path, 'rb') as session_file: + _ = pickle.load(session_file) + data = pickle.load(session_file) + if isinstance(data, dict) and 'valid' in data: + continue + invalid_sessions.append(session_path) + except (EOFError, FileNotFoundError): + pass + + for invalid_session in invalid_sessions: + os.remove(invalid_session) + return f(*args, **kwargs) return decorated