summaryrefslogtreecommitdiff
path: root/addons/document_webdav/webdav_server.py
diff options
context:
space:
mode:
authordle@openerp.com <>2012-12-13 10:56:51 +0100
committerdle@openerp.com <>2012-12-13 10:56:51 +0100
commit8256b41f0a440660895f3157b417ef20d3615961 (patch)
treed4eb2667b83951525023b59237b4edb607852524 /addons/document_webdav/webdav_server.py
parentd2cc57ffb6ac20be79e856a21e939eef756f9153 (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.py58
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