From 96fe7aa30534062ef30bfb4bbe30adc6fafbfda6 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Sat, 9 Nov 2013 09:34:28 +0100 Subject: [PATCH] attempt to make api-creation code more robust and leak-proof --- sfa/server/threadedserver.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/sfa/server/threadedserver.py b/sfa/server/threadedserver.py index 9332c5b3..dbdde3f2 100644 --- a/sfa/server/threadedserver.py +++ b/sfa/server/threadedserver.py @@ -127,17 +127,18 @@ class SecureXMLRpcRequestHandler(SimpleXMLRPCServer.SimpleXMLRPCRequestHandler): #self.send_response(500) #self.end_headers() - # got a valid response - self.send_response(200) - self.send_header("Content-type", "text/xml") - self.send_header("Content-length", str(len(response))) - self.end_headers() - self.wfile.write(response) - self.wfile.flush() - # close db connection - self.api.close_dbsession() - # shut down the connection - self.connection.shutdown() # Modified here! + # avoid session/connection leaks : do this no matter what + finally: + self.send_response(200) + self.send_header("Content-type", "text/xml") + self.send_header("Content-length", str(len(response))) + self.end_headers() + self.wfile.write(response) + self.wfile.flush() + # close db connection + self.api.close_dbsession() + # shut down the connection + self.connection.shutdown() # Modified here! ## # Taken from the web (XXX find reference). Implements an HTTPS xmlrpc server -- 2.43.0