You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
5 years ago
|
# Copyright (c) 2018 gevent contributors. See LICENSE for details.
|
||
|
|
||
|
import _socket
|
||
|
|
||
|
__all__ = [
|
||
|
'Resolver',
|
||
|
]
|
||
|
|
||
|
class Resolver(object):
|
||
|
"""
|
||
|
A resolver that directly uses the system's resolver functions.
|
||
|
|
||
|
.. caution::
|
||
|
|
||
|
This resolver is *not* cooperative.
|
||
|
|
||
|
This resolver has the lowest overhead of any resolver and
|
||
|
typically approaches the speed of the unmodified :mod:`socket`
|
||
|
functions. However, it is not cooperative, so if name resolution
|
||
|
blocks, the entire thread and all its greenlets will be blocked.
|
||
|
|
||
|
This can be useful during debugging, or it may be a good choice if
|
||
|
your operating system provides a good caching resolver (such as
|
||
|
macOS's Directory Services) that is usually very fast and
|
||
|
functionally non-blocking.
|
||
|
|
||
|
.. versionchanged:: 1.3a2
|
||
|
This was previously undocumented and existed in :mod:`gevent.socket`.
|
||
|
|
||
|
"""
|
||
|
|
||
|
def __init__(self, hub=None):
|
||
|
pass
|
||
|
|
||
|
def close(self):
|
||
|
pass
|
||
|
|
||
|
for method in (
|
||
|
'gethostbyname',
|
||
|
'gethostbyname_ex',
|
||
|
'getaddrinfo',
|
||
|
'gethostbyaddr',
|
||
|
'getnameinfo'
|
||
|
):
|
||
|
locals()[method] = staticmethod(getattr(_socket, method))
|