diff options
| author | dle@openerp.com <> | 2012-12-13 10:56:51 +0100 |
|---|---|---|
| committer | dle@openerp.com <> | 2012-12-13 10:56:51 +0100 |
| commit | 8256b41f0a440660895f3157b417ef20d3615961 (patch) | |
| tree | d4eb2667b83951525023b59237b4edb607852524 /addons/document_webdav/webdav_server.py | |
| parent | d2cc57ffb6ac20be79e856a21e939eef756f9153 (diff) | |
[FIX]Try to make things work on runbot
bzr revid: dle@openerp.com-20121213095651-be2skhlkh0i4dlnz
Diffstat (limited to 'addons/document_webdav/webdav_server.py')
| -rw-r--r-- | addons/document_webdav/webdav_server.py | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py index 887c0bc1d03..3d517f9e665 100644 --- a/addons/document_webdav/webdav_server.py +++ b/addons/document_webdav/webdav_server.py @@ -101,40 +101,44 @@ class DAVHandler(HttpOptions, FixSendError, DAVRequestHandler): commands such as GET and POST. """ - try: - self.raw_requestline = self.rfile.readline(65537) - if len(self.raw_requestline) > 65536: - self.requestline = '' - self.request_version = '' - self.command = '' - self.send_error(414) - return - if not self.raw_requestline: - self.close_connection = 1 - return - if not self.parse_request(): - # An error code has been sent, just exit - return - mname = 'do_' + self.command - if not hasattr(self, mname): - self.send_error(501, "Unsupported method (%r)" % self.command) - return - method = getattr(self, mname) - method() - self.wfile.flush() #actually send the response if not already done. - except Exception as e: - #a read or a write timed out. Discard this connection - self.log_error("Request timed out: %r", e) + self.raw_requestline = self.rfile.readline(65537) + if len(self.raw_requestline) > 65536: + self.requestline = '' + self.request_version = '' + self.command = '' + self.send_error(414) + return + if not self.raw_requestline: self.close_connection = 1 return + if not self.parse_request(): + # An error code has been sent, just exit + return + mname = 'do_' + self.command + if not hasattr(self, mname): + self.send_error(501, "Unsupported method (%r)" % self.command) + return + method = getattr(self, mname) + method() + self.wfile.flush() #actually send the response if not already done. + + return def handle(self): """Handle multiple requests if necessary.""" self.close_connection = 1 - - self.handle_one_request() - while not self.close_connection: + try: self.handle_one_request() + while not self.close_connection: + self.handle_one_request() + except Exception as e: + try: + self.log_error("Request timed out: %r \n Trying old version of HTTPServer", e) + self._init_buffer() + except Exception as e: + #a read or a write timed out. Discard this connection + self.log_error("Not working neither, closing connection\n %r", e) + self.close_connection = 1 def finish(self): pass |
