]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
simple_httpclient._HTTPConnection now takes a resolver directly.
authorBen Darnell <ben@bendarnell.com>
Mon, 18 Feb 2013 00:16:14 +0000 (19:16 -0500)
committerBen Darnell <ben@bendarnell.com>
Mon, 18 Feb 2013 00:16:14 +0000 (19:16 -0500)
This makes the "client" parameter optional for websocket connections.

tornado/simple_httpclient.py
tornado/test/httpserver_test.py
tornado/websocket.py

index f4d05dbdcb356dbaf457b3eb2f9c745fcee92f7d..01f290c2c02a9e155af88c6799028d03a8b0fa22 100644 (file)
@@ -95,7 +95,7 @@ class SimpleAsyncHTTPClient(AsyncHTTPClient):
                 _HTTPConnection(self.io_loop, self, request,
                                 functools.partial(self._release_fetch, key),
                                 callback,
-                                self.max_buffer_size)
+                                self.max_buffer_size, self.resolver)
 
     def _release_fetch(self, key):
         del self.active[key]
@@ -106,7 +106,7 @@ class _HTTPConnection(object):
     _SUPPORTED_METHODS = set(["GET", "HEAD", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"])
 
     def __init__(self, io_loop, client, request, release_callback,
-                 final_callback, max_buffer_size):
+                 final_callback, max_buffer_size, resolver):
         self.start_time = io_loop.time()
         self.io_loop = io_loop
         self.client = client
@@ -114,6 +114,7 @@ class _HTTPConnection(object):
         self.release_callback = release_callback
         self.final_callback = final_callback
         self.max_buffer_size = max_buffer_size
+        self.resolver = resolver
         self.code = None
         self.headers = None
         self.chunks = None
@@ -149,7 +150,7 @@ class _HTTPConnection(object):
                 # so restrict to ipv4 by default.
                 af = socket.AF_INET
 
-            self.client.resolver.getaddrinfo(
+            self.resolver.getaddrinfo(
                 host, port, af, socket.SOCK_STREAM, 0, 0,
                 callback=self._on_resolve)
 
index 814d54e14d37a56d33d666c213b0ef4152f95b7b..87a3e3e83d850f238e332cf0c61efcfc6afa0e8a 100644 (file)
@@ -8,7 +8,7 @@ from tornado.httpserver import HTTPServer
 from tornado.httputil import HTTPHeaders
 from tornado.iostream import IOStream
 from tornado.log import gen_log
-from tornado.netutil import ssl_options_to_context
+from tornado.netutil import ssl_options_to_context, Resolver
 from tornado.simple_httpclient import SimpleAsyncHTTPClient
 from tornado.testing import AsyncHTTPTestCase, AsyncHTTPSTestCase, AsyncTestCase, ExpectLog
 from tornado.test.util import unittest
@@ -190,7 +190,7 @@ class HTTPConnectionTest(AsyncHTTPTestCase):
                 httpclient.HTTPRequest(self.get_url("/")),
                 dict(httpclient.HTTPRequest._DEFAULTS)),
             None, self.stop,
-            1024 * 1024)
+            1024 * 1024, Resolver(self.io_loop))
         conn.set_request(
             b"\r\n".join(headers +
                          [utf8("Content-Length: %d\r\n" % len(body))]) +
index beffc9705969e47181da7ca4f3511a85a24652ef..3c914d99b242b75a5f3d0dc9c2f06e74d15e27b8 100644 (file)
@@ -40,6 +40,7 @@ from tornado.httputil import HTTPHeaders
 from tornado.ioloop import IOLoop
 from tornado.iostream import IOStream, SSLIOStream
 from tornado.log import gen_log, app_log
+from tornado.netutil import Resolver
 from tornado import simple_httpclient
 from tornado.util import bytes_type
 
@@ -727,7 +728,7 @@ class WebSocketProtocol13(WebSocketProtocol):
 
 
 class _WebSocketClientConnection(simple_httpclient._HTTPConnection):
-    def __init__(self, io_loop, client, request):
+    def __init__(self, io_loop, request):
         self.connect_future = Future()
         self.read_future = None
         self.read_queue = collections.deque()
@@ -744,8 +745,8 @@ class _WebSocketClientConnection(simple_httpclient._HTTPConnection):
                 })
 
         super(_WebSocketClientConnection, self).__init__(
-            io_loop, client, request, lambda: None, lambda response: None,
-            104857600)
+            io_loop, None, request, lambda: None, lambda response: None,
+            104857600, Resolver(io_loop))
 
     def _on_close(self):
         self.on_message(None)
@@ -798,11 +799,7 @@ def WebSocketConnect(url, io_loop=None, callback=None):
     request = simple_httpclient.HTTPRequest(url)
     request = simple_httpclient._RequestProxy(
         request, simple_httpclient.HTTPRequest._DEFAULTS)
-    from tornado.util import ObjectDict
-    from tornado.netutil import Resolver
-    # TODO: refactor _HTTPConnection's client parameter
-    client = ObjectDict(resolver=Resolver(io_loop), hostname_mapping=None)
-    conn = _WebSocketClientConnection(io_loop, client, request)
+    conn = _WebSocketClientConnection(io_loop, request)
     if callback is not None:
         io_loop.add_future(conn.connect_future, callback)
     return conn.connect_future