From: Ben Darnell Date: Sun, 26 Mar 2017 16:17:12 +0000 (-0400) Subject: Merge pull request #1864 from leynos/master X-Git-Tag: v4.5.0~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d1a07581bf001e92f197cedfd69d78aacb623cd;p=thirdparty%2Ftornado.git Merge pull request #1864 from leynos/master Allow specificion of trusted downstream proxies for xheaders --- 5d1a07581bf001e92f197cedfd69d78aacb623cd diff --cc tornado/httpserver.py index e76342f9d,76edef2f9..cde37d5d3 --- a/tornado/httpserver.py +++ b/tornado/httpserver.py @@@ -194,33 -195,8 +204,33 @@@ class HTTPServer(TCPServer, Configurabl self._connections.remove(server_conn) +class _CallableAdapter(httputil.HTTPMessageDelegate): + def __init__(self, request_callback, request_conn): + self.connection = request_conn + self.request_callback = request_callback + self.request = None + self.delegate = None + self._chunks = [] + + def headers_received(self, start_line, headers): + self.request = httputil.HTTPServerRequest( + connection=self.connection, start_line=start_line, + headers=headers) + + def data_received(self, chunk): + self._chunks.append(chunk) + + def finish(self): + self.request.body = b''.join(self._chunks) + self.request._parse_body() + self.request_callback(self.request) + + def on_connection_close(self): + self._chunks = None + + class _HTTPRequestContext(object): - def __init__(self, stream, address, protocol): + def __init__(self, stream, address, protocol, trusted_downstream=None): self.address = address # Save the socket's address family now so we know how to # interpret self.address even after the stream is closed