Merge branch 'newinterface' of ssh://bakers@git.planet-lab.org/git/plcapi into newint...
[plcapi.git] / ModPython.py
index 79d8fde..07a0fda 100644 (file)
@@ -5,10 +5,10 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 #
 # Copyright (C) 2004-2006 The Trustees of Princeton University
-# $Id: ModPython.py,v 1.1 2006/09/06 15:33:59 mlhuang Exp $
 #
 
 import sys
+import time
 import traceback
 import xmlrpclib
 from mod_python import apache
@@ -45,16 +45,19 @@ def handler(req):
         # Handle request
         response = api.handle(remote_addr, request)
 
+        # Shut down database connection, otherwise up to MaxClients DB
+        # connections will remain open.
+        api.db.close()
+
         # Write response
-        req.content_type = "text/xml"
-        req.headers_out.add("Content-type", "text/xml")
-        req.headers_out.add("Content-length", str(len(response)))
+        req.content_type = "text/xml; charset=" + api.encoding
         req.send_http_header()
         req.write(response)
 
         return apache.OK
 
-    except:
+    except Exception, err:
         # Log error in /var/log/httpd/(ssl_)?error_log
-        print >> log, traceback.format_exc()
+        t = "[" + time.ctime() + "] [error]"
+        print >> log, t, err, traceback.format_exc()
         return apache.HTTP_INTERNAL_SERVER_ERROR