From: Thierry Parmentelat Date: Sat, 9 Nov 2013 08:34:28 +0000 (+0100) Subject: attempt to make api-creation code more robust and leak-proof X-Git-Tag: sfa-3.1-1~42^2~11 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=96fe7aa30534062ef30bfb4bbe30adc6fafbfda6 attempt to make api-creation code more robust and leak-proof --- 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