| Index: util/net/http_transport_test_server.py
|
| diff --git a/util/net/http_transport_test_server.py b/util/net/http_transport_test_server.py
|
| index 51d722e13299ed17d4c0eff1cfbef2f6bc3cc158..ecf71d702fe7922ef1bef3269f22a40838662bba 100755
|
| --- a/util/net/http_transport_test_server.py
|
| +++ b/util/net/http_transport_test_server.py
|
| @@ -17,10 +17,13 @@
|
|
|
| """A one-shot testing webserver.
|
|
|
| -When invoked, this server will write an integer to stdout, indiciating on which
|
| -port the server is listening. It will then read one integer from stdin,
|
| -indiciating the response code to set for a request. The server will process
|
| -one HTTP request, writing it out entirely to stdout, and will then terminate.
|
| +When invoked, this server will write a short integer to stdout, indiciating on
|
| +which port the server is listening. It will then read one integer from stdin,
|
| +indiciating the response code to be sent in response to a request. It also reads
|
| +8 characters from stdin, which, after having "\r\n" appended, will form the
|
| +response body in a successful response (one with code 200). The server will
|
| +process one HTTP request, deliver the prearranged response to the client, and
|
| +write the entire request to stdout. It will then terminate.
|
|
|
| This server is written in Python since it provides a simple HTTP stack, and
|
| because parsing Chunked encoding is safer and easier in a memory-safe language.
|
| @@ -57,6 +60,7 @@ class BufferedReadFile(object):
|
|
|
| class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
| response_code = 500
|
| + response_body = ''
|
|
|
| def handle_one_request(self):
|
| # Wrap the rfile in the buffering file object so that the raw header block
|
| @@ -78,6 +82,9 @@ class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
|
|
|
| self.send_response(self.response_code)
|
| self.end_headers()
|
| + if self.response_code == 200:
|
| + self.wfile.write(self.response_body)
|
| + self.wfile.write('\r\n')
|
|
|
| writer.write(body)
|
| writer.flush()
|
| @@ -131,10 +138,10 @@ def Main():
|
| sys.stdout.write(struct.pack('=H', server.server_address[1]))
|
| sys.stdout.flush()
|
|
|
| - # Read the desired test response code as an unsigned short from the parent
|
| - # process.
|
| - RequestHandler.response_code = \
|
| - struct.unpack('=H', sys.stdin.read(struct.calcsize('=H')))[0]
|
| + # Read the desired test response code as an unsigned short and the desired
|
| + # response body as an 8-byte string from the parent process.
|
| + RequestHandler.response_code, RequestHandler.response_body = \
|
| + struct.unpack('=H8s', sys.stdin.read(struct.calcsize('=H8s')))
|
|
|
| # Handle the request.
|
| server.handle_request()
|
|
|