]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
caresresolver: Use non-deprecated interfaces
authorBen Darnell <ben@bendarnell.com>
Sun, 8 Apr 2018 16:41:15 +0000 (12:41 -0400)
committerBen Darnell <ben@bendarnell.com>
Sun, 8 Apr 2018 19:25:21 +0000 (15:25 -0400)
This code is currently not exercised in CI.

tornado/platform/caresresolver.py

index 38247f7e62b5c9f1ac46e879dcb98936c9e6d144..768cb62499f6166cc2c9ca322f9bc67d87927164 100644 (file)
@@ -2,6 +2,7 @@ from __future__ import absolute_import, division, print_function
 import pycares  # type: ignore
 import socket
 
+from tornado.concurrent import Future
 from tornado import gen
 from tornado.ioloop import IOLoop
 from tornado.netutil import Resolver, is_valid_ip
@@ -55,11 +56,10 @@ class CaresResolver(Resolver):
             addresses = [host]
         else:
             # gethostbyname doesn't take callback as a kwarg
-            self.channel.gethostbyname(host, family, (yield gen.Callback(1)))
-            callback_args = yield gen.Wait(1)
-            assert isinstance(callback_args, gen.Arguments)
-            assert not callback_args.kwargs
-            result, error = callback_args.args
+            fut = Future()
+            self.channel.gethostbyname(host, family,
+                                       lambda result, error: fut.set_result((result, error)))
+            result, error = yield fut
             if error:
                 raise IOError('C-Ares returned error %s: %s while resolving %s' %
                               (error, pycares.errno.strerror(error), host))