X7ROOT File Manager
Current Path:
/opt/hc_python/lib/python3.12/site-packages/dns
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
dns
/
ðŸ“
..
📄
__init__.py
(1.62 KB)
ðŸ“
__pycache__
📄
_asyncbackend.py
(2.34 KB)
📄
_asyncio_backend.py
(8.84 KB)
📄
_ddr.py
(5.12 KB)
📄
_features.py
(2.43 KB)
📄
_immutable_ctx.py
(2.4 KB)
📄
_trio_backend.py
(8.27 KB)
📄
asyncbackend.py
(2.73 KB)
📄
asyncquery.py
(30.1 KB)
📄
asyncresolver.py
(17.43 KB)
📄
dnssec.py
(40.74 KB)
ðŸ“
dnssecalgs
📄
dnssectypes.py
(1.76 KB)
📄
e164.py
(3.88 KB)
📄
edns.py
(16.69 KB)
📄
entropy.py
(4.14 KB)
📄
enum.py
(3.6 KB)
📄
exception.py
(5.81 KB)
📄
flags.py
(2.69 KB)
📄
grange.py
(2.09 KB)
📄
immutable.py
(1.97 KB)
📄
inet.py
(5.64 KB)
📄
ipv4.py
(2.49 KB)
📄
ipv6.py
(6.4 KB)
📄
message.py
(66.59 KB)
📄
name.py
(41.78 KB)
📄
namedict.py
(3.91 KB)
📄
nameserver.py
(9.88 KB)
📄
node.py
(12.37 KB)
📄
opcode.py
(2.67 KB)
📄
py.typed
(0 B)
📄
query.py
(54.98 KB)
ðŸ“
quic
📄
rcode.py
(4.06 KB)
📄
rdata.py
(30.29 KB)
📄
rdataclass.py
(2.91 KB)
📄
rdataset.py
(16.27 KB)
📄
rdatatype.py
(7.27 KB)
ðŸ“
rdtypes
📄
renderer.py
(10.99 KB)
📄
resolver.py
(72 KB)
📄
reversename.py
(3.74 KB)
📄
rrset.py
(8.96 KB)
📄
serial.py
(3.52 KB)
📄
set.py
(9 KB)
📄
tokenizer.py
(23.03 KB)
📄
transaction.py
(22.06 KB)
📄
tsig.py
(11.15 KB)
📄
tsigkeyring.py
(2.57 KB)
📄
ttl.py
(2.91 KB)
📄
update.py
(11.96 KB)
📄
version.py
(1.88 KB)
📄
versioned.py
(11.49 KB)
📄
win32util.py
(8.67 KB)
📄
wire.py
(2.76 KB)
📄
xfr.py
(12.96 KB)
📄
zone.py
(50.87 KB)
📄
zonefile.py
(27.27 KB)
📄
zonetypes.py
(690 B)
Editing: _trio_backend.py
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license """trio async I/O library query support""" import socket import trio import trio.socket # type: ignore import dns._asyncbackend import dns._features import dns.exception import dns.inet if not dns._features.have("trio"): raise ImportError("trio not found or too old") def _maybe_timeout(timeout): if timeout is not None: return trio.move_on_after(timeout) else: return dns._asyncbackend.NullContext() # for brevity _lltuple = dns.inet.low_level_address_tuple # pylint: disable=redefined-outer-name class DatagramSocket(dns._asyncbackend.DatagramSocket): def __init__(self, sock): super().__init__(sock.family, socket.SOCK_DGRAM) self.socket = sock async def sendto(self, what, destination, timeout): with _maybe_timeout(timeout): if destination is None: return await self.socket.send(what) else: return await self.socket.sendto(what, destination) raise dns.exception.Timeout( timeout=timeout ) # pragma: no cover lgtm[py/unreachable-statement] async def recvfrom(self, size, timeout): with _maybe_timeout(timeout): return await self.socket.recvfrom(size) raise dns.exception.Timeout(timeout=timeout) # lgtm[py/unreachable-statement] async def close(self): self.socket.close() async def getpeername(self): return self.socket.getpeername() async def getsockname(self): return self.socket.getsockname() async def getpeercert(self, timeout): raise NotImplementedError class StreamSocket(dns._asyncbackend.StreamSocket): def __init__(self, family, stream, tls=False): super().__init__(family, socket.SOCK_STREAM) self.stream = stream self.tls = tls async def sendall(self, what, timeout): with _maybe_timeout(timeout): return await self.stream.send_all(what) raise dns.exception.Timeout(timeout=timeout) # lgtm[py/unreachable-statement] async def recv(self, size, timeout): with _maybe_timeout(timeout): return await self.stream.receive_some(size) raise dns.exception.Timeout(timeout=timeout) # lgtm[py/unreachable-statement] async def close(self): await self.stream.aclose() async def getpeername(self): if self.tls: return self.stream.transport_stream.socket.getpeername() else: return self.stream.socket.getpeername() async def getsockname(self): if self.tls: return self.stream.transport_stream.socket.getsockname() else: return self.stream.socket.getsockname() async def getpeercert(self, timeout): if self.tls: with _maybe_timeout(timeout): await self.stream.do_handshake() return self.stream.getpeercert() else: raise NotImplementedError if dns._features.have("doh"): import httpcore import httpcore._backends.trio import httpx _CoreAsyncNetworkBackend = httpcore.AsyncNetworkBackend _CoreTrioStream = httpcore._backends.trio.TrioStream from dns.query import _compute_times, _expiration_for_this_attempt, _remaining class _NetworkBackend(_CoreAsyncNetworkBackend): def __init__(self, resolver, local_port, bootstrap_address, family): super().__init__() self._local_port = local_port self._resolver = resolver self._bootstrap_address = bootstrap_address self._family = family async def connect_tcp( self, host, port, timeout, local_address, socket_options=None ): # pylint: disable=signature-differs addresses = [] _, expiration = _compute_times(timeout) if dns.inet.is_address(host): addresses.append(host) elif self._bootstrap_address is not None: addresses.append(self._bootstrap_address) else: timeout = _remaining(expiration) family = self._family if local_address: family = dns.inet.af_for_address(local_address) answers = await self._resolver.resolve_name( host, family=family, lifetime=timeout ) addresses = answers.addresses() for address in addresses: try: af = dns.inet.af_for_address(address) if local_address is not None or self._local_port != 0: source = (local_address, self._local_port) else: source = None destination = (address, port) attempt_expiration = _expiration_for_this_attempt(2.0, expiration) timeout = _remaining(attempt_expiration) sock = await Backend().make_socket( af, socket.SOCK_STREAM, 0, source, destination, timeout ) return _CoreTrioStream(sock.stream) except Exception: continue raise httpcore.ConnectError async def connect_unix_socket( self, path, timeout, socket_options=None ): # pylint: disable=signature-differs raise NotImplementedError async def sleep(self, seconds): # pylint: disable=signature-differs await trio.sleep(seconds) class _HTTPTransport(httpx.AsyncHTTPTransport): def __init__( self, *args, local_port=0, bootstrap_address=None, resolver=None, family=socket.AF_UNSPEC, **kwargs, ): if resolver is None and bootstrap_address is None: # pylint: disable=import-outside-toplevel,redefined-outer-name import dns.asyncresolver resolver = dns.asyncresolver.Resolver() super().__init__(*args, **kwargs) self._pool._network_backend = _NetworkBackend( resolver, local_port, bootstrap_address, family ) else: _HTTPTransport = dns._asyncbackend.NullTransport # type: ignore class Backend(dns._asyncbackend.Backend): def name(self): return "trio" async def make_socket( self, af, socktype, proto=0, source=None, destination=None, timeout=None, ssl_context=None, server_hostname=None, ): s = trio.socket.socket(af, socktype, proto) stream = None try: if source: await s.bind(_lltuple(source, af)) if socktype == socket.SOCK_STREAM or destination is not None: connected = False with _maybe_timeout(timeout): await s.connect(_lltuple(destination, af)) connected = True if not connected: raise dns.exception.Timeout( timeout=timeout ) # lgtm[py/unreachable-statement] except Exception: # pragma: no cover s.close() raise if socktype == socket.SOCK_DGRAM: return DatagramSocket(s) elif socktype == socket.SOCK_STREAM: stream = trio.SocketStream(s) tls = False if ssl_context: tls = True try: stream = trio.SSLStream( stream, ssl_context, server_hostname=server_hostname ) except Exception: # pragma: no cover await stream.aclose() raise return StreamSocket(af, stream, tls) raise NotImplementedError( "unsupported socket " + f"type {socktype}" ) # pragma: no cover async def sleep(self, interval): await trio.sleep(interval) def get_transport_class(self): return _HTTPTransport async def wait_for(self, awaitable, timeout): with _maybe_timeout(timeout): return await awaitable raise dns.exception.Timeout( timeout=timeout ) # pragma: no cover lgtm[py/unreachable-statement]
Upload File
Create Folder