]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Fix an erroneous return of None in IOStream.connect.
authorBen Darnell <ben@bendarnell.com>
Mon, 1 Sep 2014 03:33:28 +0000 (23:33 -0400)
committerBen Darnell <ben@bendarnell.com>
Mon, 1 Sep 2014 14:45:13 +0000 (10:45 -0400)
This causes AttributeErrors in TCPClient, although I can only
reproduce this case reliably on freebsd.

Closes #1168.

tornado/iostream.py

index 99c681d8033032bd5015ec3556146f34bf29560a..1cc39d9faed85ac9270a4c61c9993f6d415c8994 100644 (file)
@@ -993,6 +993,11 @@ class IOStream(BaseIOStream):
 
         """
         self._connecting = True
+        if callback is not None:
+            self._connect_callback = stack_context.wrap(callback)
+            future = None
+        else:
+            future = self._connect_future = TracebackFuture()
         try:
             self.socket.connect(address)
         except socket.error as e:
@@ -1008,12 +1013,7 @@ class IOStream(BaseIOStream):
                 gen_log.warning("Connect error on fd %s: %s",
                                 self.socket.fileno(), e)
                 self.close(exc_info=True)
-                return
-        if callback is not None:
-            self._connect_callback = stack_context.wrap(callback)
-            future = None
-        else:
-            future = self._connect_future = TracebackFuture()
+                return future
         self._add_io_state(self.io_loop.WRITE)
         return future