Browse Source

Fix db connection leak

master
NGnius 5 years ago
parent
commit
3e2f612f43
1 changed files with 10 additions and 1 deletions
  1. +10
    -1
      rxsmserver/__init__.py

+ 10
- 1
rxsmserver/__init__.py View File

@@ -19,6 +19,12 @@ def get_or_create_connection():
database_connections[thread_id] = dblib.connect(database_path)
return database_connections[thread_id]

def close_connection():
thread_id = get_ident()
if thread_id in database_connections:
database_connections[thread_id].close()
del(database_connections[thread_id])

@app.route('/release', methods=['POST'])
def create_or_modify_release():
try:
@@ -47,6 +53,7 @@ def create_or_modify_release():
cursor.execute('UPDATE releases SET url=?, created_date=? WHERE version=? and platform=?', (url, int(time()), version, platform))
operation = 'update'
db_connection.commit()
close_connection()

return jsonify({'status':200, 'reason':'Version %s %sd successfully' % (version, operation)}), 200

@@ -78,9 +85,11 @@ def check_for_update():
current_version = req_json['version']
platform = req_json['platform']
except:
close_connection()
return jsonify({'status':400, 'reason':'Invalid request; missing parameter or invalid JSON'}), 400
cursor.execute('SELECT version, url FROM releases WHERE platform=? ORDER BY created_date DESC', (platform,))
result = cursor.fetchone()
close_connection()
if result is None:
return jsonify({'status':404, 'reason':'Platform not found (%ss)' % (time()-start), 'url':'', 'out-of-date':False}), 404
elif result[0] != current_version:
@@ -94,7 +103,7 @@ cursor = conn.cursor()
cursor.execute(\
'''CREATE TABLE IF NOT EXISTS releases (
id INTEGER PRIMARY KEY,
version TEXT UNIQUE NOT NULL,
version TEXT NOT NULL,
url TEXT NOT NULL,
platform TEXT NOT NULL,
created_date INTEGER NOT NULL