]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Add a couple of private subclsasing hooks in simple_httpclient.
authorBen Darnell <ben@bendarnell.com>
Mon, 9 Mar 2015 00:18:15 +0000 (20:18 -0400)
committerBen Darnell <ben@bendarnell.com>
Mon, 9 Mar 2015 00:18:15 +0000 (20:18 -0400)
tornado/simple_httpclient.py

index f3cb1b8666f47b8504c7e5e12975bb19040a1332..beb55f239ffed66c2c5e91372d330056108eddf7 100644 (file)
@@ -135,10 +135,14 @@ class SimpleAsyncHTTPClient(AsyncHTTPClient):
                 release_callback = functools.partial(self._release_fetch, key)
                 self._handle_request(request, release_callback, callback)
 
+    def _connection_class(self):
+        return _HTTPConnection
+
     def _handle_request(self, request, release_callback, final_callback):
-        _HTTPConnection(self.io_loop, self, request, release_callback,
-                        final_callback, self.max_buffer_size, self.tcp_client,
-                        self.max_header_size)
+        self._connection_class()(
+            self.io_loop, self, request, release_callback,
+            final_callback, self.max_buffer_size, self.tcp_client,
+            self.max_header_size)
 
     def _release_fetch(self, key):
         del self.active[key]
@@ -348,14 +352,7 @@ class _HTTPConnection(httputil.HTTPMessageDelegate):
             self.request.headers["Accept-Encoding"] = "gzip"
         req_path = ((self.parsed.path or '/') +
                     (('?' + self.parsed.query) if self.parsed.query else ''))
-        self.stream.set_nodelay(True)
-        self.connection = HTTP1Connection(
-            self.stream, True,
-            HTTP1ConnectionParameters(
-                no_keep_alive=True,
-                max_header_size=self.max_header_size,
-                decompress=self.request.decompress_response),
-            self._sockaddr)
+        self.connection = self._create_connection(stream)
         start_line = httputil.RequestStartLine(self.request.method,
                                                req_path, '')
         self.connection.write_headers(start_line, self.request.headers)
@@ -364,6 +361,17 @@ class _HTTPConnection(httputil.HTTPMessageDelegate):
         else:
             self._write_body(True)
 
+    def _create_connection(self, stream):
+        stream.set_nodelay(True)
+        connection = HTTP1Connection(
+            stream, True,
+            HTTP1ConnectionParameters(
+                no_keep_alive=True,
+                max_header_size=self.max_header_size,
+                decompress=self.request.decompress_response),
+            self._sockaddr)
+        return connection
+
     def _write_body(self, start_read):
         if self.request.body is not None:
             self.connection.write(self.request.body)