| Index: net/tools/testserver/testserver.py
|
| diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
|
| index f9177897cc6e17b64a3fa075498365b96f0a7b81..12882b5dcd9cf6dca05a1e0d4516a518d84067da 100755
|
| --- a/net/tools/testserver/testserver.py
|
| +++ b/net/tools/testserver/testserver.py
|
| @@ -378,6 +378,7 @@ class TestPageHandler(BasePageHandler):
|
| self.MultipartHandler,
|
| self.MultipartSlowHandler,
|
| self.GetSSLSessionCacheHandler,
|
| + self.CloseSocketHandler,
|
| self.DefaultResponseHandler]
|
| post_handlers = [
|
| self.EchoTitleHandler,
|
| @@ -922,6 +923,7 @@ class TestPageHandler(BasePageHandler):
|
| return self._FileHandlerHelper(prefix)
|
|
|
| def _FileHandlerHelper(self, prefix):
|
| + old_protocol_version = self.protocol_version
|
| _, _, url_path, _, query, _ = urlparse.urlparse(self.path)
|
| sub_path = url_path[len(prefix):]
|
| entries = sub_path.split('/')
|
| @@ -948,7 +950,9 @@ class TestPageHandler(BasePageHandler):
|
|
|
| # "HTTP/1.1 200 OK"
|
| response = f.readline()
|
| - status_code = re.findall('HTTP/\d+.\d+ (\d+)', response)[0]
|
| + http_major, http_minor, status_code = re.findall(
|
| + 'HTTP/(\d+).(\d+) (\d+)', response)[0]
|
| + self.protocol_version = "HTTP/%s.%s" % (http_major, http_minor)
|
| self.send_response(int(status_code))
|
|
|
| for line in f:
|
| @@ -990,6 +994,7 @@ class TestPageHandler(BasePageHandler):
|
| if (self.command != 'HEAD'):
|
| self.wfile.write(data)
|
|
|
| + self.protocol_version = old_protocol_version
|
| return True
|
|
|
| def SetCookieHandler(self):
|
| @@ -1427,6 +1432,15 @@ class TestPageHandler(BasePageHandler):
|
| ' this request')
|
| return True
|
|
|
| + def CloseSocketHandler(self):
|
| + """Closes the socket without sending anything."""
|
| +
|
| + if not self._ShouldHandleRequest('/close-socket'):
|
| + return False
|
| +
|
| + self.wfile.close()
|
| + return True
|
| +
|
| def DefaultResponseHandler(self):
|
| """This is the catch-all response handler for requests that aren't handled
|
| by one of the special handlers above.
|
|
|