diff options
author | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2009-06-28 21:04:17 (GMT) |
---|---|---|
committer | Kristján Valur Jónsson <kristjan@ccpgames.com> | 2009-06-28 21:04:17 (GMT) |
commit | e007860b8b3609ce0bc62b1780efaa06241520bd (patch) | |
tree | 687961d29bff1d936ed949cf591bbe8285d9e54d /Lib/BaseHTTPServer.py | |
parent | 552e7a7e2f526fa0637a3e14f47354c567dfe26e (diff) | |
download | cpython-e007860b8b3609ce0bc62b1780efaa06241520bd.zip cpython-e007860b8b3609ce0bc62b1780efaa06241520bd.tar.gz cpython-e007860b8b3609ce0bc62b1780efaa06241520bd.tar.bz2 |
http://bugs.python.org/issue6267
Cumulative patch to http and xmlrpc
Diffstat (limited to 'Lib/BaseHTTPServer.py')
-rw-r--r-- | Lib/BaseHTTPServer.py | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/Lib/BaseHTTPServer.py b/Lib/BaseHTTPServer.py index acd8394..9bb3ba4 100644 --- a/Lib/BaseHTTPServer.py +++ b/Lib/BaseHTTPServer.py @@ -309,18 +309,26 @@ class BaseHTTPRequestHandler(SocketServer.StreamRequestHandler): commands such as GET and POST. """ - self.raw_requestline = self.rfile.readline() - if not self.raw_requestline: + try: + self.raw_requestline = self.rfile.readline() + 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 socket.timeout, e: + #a read or a write timed out. Discard this connection + self.log_error("Request timed out: %r", e) 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() def handle(self): """Handle multiple requests if necessary.""" |