From 78bf74835b5495bd65cbee838bbdb988d897c8f6 Mon Sep 17 00:00:00 2001 From: ludo Date: Thu, 5 Jan 2012 22:06:21 +0800 Subject: [PATCH 1/2] Change in pymongo API (uri_parse) --- sleepymongoose/handlers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sleepymongoose/handlers.py b/sleepymongoose/handlers.py index 3a420f4..7895bb2 100644 --- a/sleepymongoose/handlers.py +++ b/sleepymongoose/handlers.py @@ -157,7 +157,7 @@ def _connect(self, args, out, name = None, db = None, collection = None): if "server" in args: try: uri = args.getvalue('server') - info = connection._parse_uri(uri) + info = connection.uri_parser.parse_uri(uri) except Exception, e: print uri print e From 40f335d904ae1e6d34c354cda27dbb4f4c0609bb Mon Sep 17 00:00:00 2001 From: ludo Date: Thu, 5 Jan 2012 22:07:30 +0800 Subject: [PATCH 2/2] Fix to send http headers even in error responses (for Control-Access-Allow-Origin) --- sleepymongoose/httpd.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/sleepymongoose/httpd.py b/sleepymongoose/httpd.py index 53629d5..4f7961f 100644 --- a/sleepymongoose/httpd.py +++ b/sleepymongoose/httpd.py @@ -95,13 +95,20 @@ def _parse_call(self, uri): else: return (parts[0], ".".join(parts[1:-1]), parts[-1]) + def end_headers(self): + for header in self.response_headers: + self.send_header(header[0], header[1]) + BaseHTTPRequestHandler.end_headers(self) + + def send_404(self, uri): + self.send_error(404, 'Script Not Found: '+uri) def call_handler(self, uri, args): """ execute something """ (db, collection, func_name) = self._parse_call(uri) if db == None or func_name == None: - self.send_error(404, 'Script Not Found: '+uri) + self.send_404(uri) return name = None @@ -122,8 +129,6 @@ def call_handler(self, uri, args): if callable(func): self.send_response(200, 'OK') self.send_header('Content-type', MongoHTTPRequest.mimetypes['json']) - for header in self.response_headers: - self.send_header(header[0], header[1]) self.end_headers() if self.jsonp_callback: @@ -133,7 +138,7 @@ def call_handler(self, uri, args): return else: - self.send_error(404, 'Script Not Found: '+uri) + self.send_404(uri) return def prependJSONPCallback(self, str): @@ -153,8 +158,6 @@ def process_uri(self, method): else: self.send_response(100, "Continue") self.send_header('Content-type', MongoHTTPRequest.mimetypes['json']) - for header in self.response_headers: - self.send_header(header[0], header[1]) self.end_headers() self.wfile.write('{"ok" : 0, "errmsg" : "100-continue msgs not handled yet"}') @@ -187,8 +190,6 @@ def do_GET(self): self.send_response(200, 'OK') self.send_header('Content-type', MongoHTTPRequest.mimetypes[type]) - for header in self.response_headers: - self.send_header(header[0], header[1]) self.end_headers() self.wfile.write(fh.read()) @@ -197,7 +198,7 @@ def do_GET(self): return else: - self.send_error(404, 'File Not Found: '+uri) + self.send_404(uri) return