GRAYBYTE WORDPRESS FILE MANAGER5338

Server IP : 198.54.121.189 / Your IP : 216.73.216.224
System : Linux premium69.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp//resolver.py
import asyncio
import socket
from typing import Any, Dict, List, Optional, Type, Union

from .abc import AbstractResolver
from .helpers import get_running_loop

__all__ = ("ThreadedResolver", "AsyncResolver", "DefaultResolver")

try:
    import aiodns

    # aiodns_default = hasattr(aiodns.DNSResolver, 'gethostbyname')
except ImportError:  # pragma: no cover
    aiodns = None

aiodns_default = False


class ThreadedResolver(AbstractResolver):
    """Threaded resolver.

    Uses an Executor for synchronous getaddrinfo() calls.
    concurrent.futures.ThreadPoolExecutor is used by default.
    """

    def __init__(self, loop: Optional[asyncio.AbstractEventLoop] = None) -> None:
        self._loop = get_running_loop(loop)

    async def resolve(
        self, hostname: str, port: int = 0, family: int = socket.AF_INET
    ) -> List[Dict[str, Any]]:
        infos = await self._loop.getaddrinfo(
            hostname,
            port,
            type=socket.SOCK_STREAM,
            family=family,
            flags=socket.AI_ADDRCONFIG,
        )

        hosts = []
        for family, _, proto, _, address in infos:
            if family == socket.AF_INET6:
                if len(address) < 3:
                    # IPv6 is not supported by Python build,
                    # or IPv6 is not enabled in the host
                    continue
                if address[3]:
                    # This is essential for link-local IPv6 addresses.
                    # LL IPv6 is a VERY rare case. Strictly speaking, we should use
                    # getnameinfo() unconditionally, but performance makes sense.
                    host, _port = socket.getnameinfo(
                        address, socket.NI_NUMERICHOST | socket.NI_NUMERICSERV
                    )
                    port = int(_port)
                else:
                    host, port = address[:2]
            else:  # IPv4
                assert family == socket.AF_INET
                host, port = address  # type: ignore[misc]
            hosts.append(
                {
                    "hostname": hostname,
                    "host": host,
                    "port": port,
                    "family": family,
                    "proto": proto,
                    "flags": socket.AI_NUMERICHOST | socket.AI_NUMERICSERV,
                }
            )

        return hosts

    async def close(self) -> None:
        pass


class AsyncResolver(AbstractResolver):
    """Use the `aiodns` package to make asynchronous DNS lookups"""

    def __init__(
        self,
        loop: Optional[asyncio.AbstractEventLoop] = None,
        *args: Any,
        **kwargs: Any
    ) -> None:
        if aiodns is None:
            raise RuntimeError("Resolver requires aiodns library")

        self._loop = get_running_loop(loop)
        self._resolver = aiodns.DNSResolver(*args, loop=loop, **kwargs)

        if not hasattr(self._resolver, "gethostbyname"):
            # aiodns 1.1 is not available, fallback to DNSResolver.query
            self.resolve = self._resolve_with_query  # type: ignore

    async def resolve(
        self, host: str, port: int = 0, family: int = socket.AF_INET
    ) -> List[Dict[str, Any]]:
        try:
            resp = await self._resolver.gethostbyname(host, family)
        except aiodns.error.DNSError as exc:
            msg = exc.args[1] if len(exc.args) >= 1 else "DNS lookup failed"
            raise OSError(msg) from exc
        hosts = []
        for address in resp.addresses:
            hosts.append(
                {
                    "hostname": host,
                    "host": address,
                    "port": port,
                    "family": family,
                    "proto": 0,
                    "flags": socket.AI_NUMERICHOST | socket.AI_NUMERICSERV,
                }
            )

        if not hosts:
            raise OSError("DNS lookup failed")

        return hosts

    async def _resolve_with_query(
        self, host: str, port: int = 0, family: int = socket.AF_INET
    ) -> List[Dict[str, Any]]:
        if family == socket.AF_INET6:
            qtype = "AAAA"
        else:
            qtype = "A"

        try:
            resp = await self._resolver.query(host, qtype)
        except aiodns.error.DNSError as exc:
            msg = exc.args[1] if len(exc.args) >= 1 else "DNS lookup failed"
            raise OSError(msg) from exc

        hosts = []
        for rr in resp:
            hosts.append(
                {
                    "hostname": host,
                    "host": rr.host,
                    "port": port,
                    "family": family,
                    "proto": 0,
                    "flags": socket.AI_NUMERICHOST,
                }
            )

        if not hosts:
            raise OSError("DNS lookup failed")

        return hosts

    async def close(self) -> None:
        self._resolver.cancel()


_DefaultType = Type[Union[AsyncResolver, ThreadedResolver]]
DefaultResolver: _DefaultType = AsyncResolver if aiodns_default else ThreadedResolver

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
June 25 2025 08:31:36
root / root
0755
.hash
--
May 15 2025 08:30:33
root / root
0755
__pycache__
--
May 15 2025 08:31:38
root / root
0755
__init__.py
7.58 KB
April 17 2025 13:10:59
root / root
0644
_cparser.pxd
4.217 KB
April 17 2025 13:10:59
root / root
0644
_find_header.pxd
0.066 KB
April 17 2025 13:10:59
root / root
0644
_headers.pxi
1.96 KB
April 17 2025 13:10:59
root / root
0644
_helpers.cpython-311-x86_64-linux-gnu.so
86.008 KB
April 17 2025 13:11:30
root / root
0755
_helpers.pyi
0.197 KB
April 17 2025 13:10:59
root / root
0644
_helpers.pyx
1.024 KB
April 17 2025 13:10:59
root / root
0644
_http_parser.cpython-311-x86_64-linux-gnu.so
569.594 KB
April 17 2025 13:11:30
root / root
0755
_http_parser.pyx
27.4 KB
April 17 2025 13:10:59
root / root
0644
_http_writer.cpython-311-x86_64-linux-gnu.so
75.008 KB
April 17 2025 13:11:30
root / root
0755
_http_writer.pyx
4.468 KB
April 17 2025 13:10:59
root / root
0644
_websocket.cpython-311-x86_64-linux-gnu.so
53.367 KB
April 17 2025 13:11:30
root / root
0755
_websocket.pyx
1.524 KB
April 17 2025 13:10:59
root / root
0644
abc.py
5.371 KB
April 17 2025 13:10:59
root / root
0644
base_protocol.py
2.677 KB
April 17 2025 13:10:59
root / root
0644
client.py
46.168 KB
April 17 2025 13:10:59
root / root
0644
client_exceptions.py
9.19 KB
April 17 2025 13:10:59
root / root
0644
client_proto.py
8.448 KB
April 17 2025 13:10:59
root / root
0644
client_reqrep.py
38.75 KB
April 17 2025 13:10:59
root / root
0644
client_ws.py
10.752 KB
April 17 2025 13:10:59
root / root
0644
compression_utils.py
4.897 KB
April 17 2025 13:10:59
root / root
0644
connector.py
51.561 KB
April 17 2025 13:10:59
root / root
0644
cookiejar.py
13.687 KB
April 17 2025 13:10:59
root / root
0644
formdata.py
5.963 KB
April 17 2025 13:10:59
root / root
0644
hdrs.py
4.505 KB
April 17 2025 13:10:59
root / root
0644
helpers.py
29.546 KB
April 17 2025 13:10:59
root / root
0644
http.py
1.799 KB
April 17 2025 13:10:59
root / root
0644
http_exceptions.py
2.652 KB
April 17 2025 13:10:59
root / root
0644
http_parser.py
34.664 KB
April 17 2025 13:10:59
root / root
0644
http_websocket.py
26.09 KB
April 17 2025 13:10:59
root / root
0644
http_writer.py
5.794 KB
April 17 2025 13:10:59
root / root
0644
locks.py
1.109 KB
April 17 2025 13:10:59
root / root
0644
log.py
0.317 KB
April 17 2025 13:10:59
root / root
0644
multipart.py
31.711 KB
April 17 2025 13:10:59
root / root
0644
payload.py
13.225 KB
April 17 2025 13:10:59
root / root
0644
payload_streamer.py
2.038 KB
April 17 2025 13:10:59
root / root
0644
py.typed
0.007 KB
April 17 2025 13:10:59
root / root
0644
pytest_plugin.py
11.333 KB
April 17 2025 13:10:59
root / root
0644
resolver.py
4.951 KB
April 17 2025 13:10:59
root / root
0644
streams.py
20.348 KB
April 17 2025 13:10:59
root / root
0644
tcp_helpers.py
0.938 KB
April 17 2025 13:10:59
root / root
0644
test_utils.py
19.712 KB
April 17 2025 13:10:59
root / root
0644
tracing.py
14.777 KB
April 17 2025 13:10:59
root / root
0644
typedefs.py
1.437 KB
April 17 2025 13:10:59
root / root
0644
web.py
18.812 KB
April 17 2025 13:10:59
root / root
0644
web_app.py
17.882 KB
April 17 2025 13:10:59
root / root
0644
web_exceptions.py
10.117 KB
April 17 2025 13:10:59
root / root
0644
web_fileresponse.py
11.148 KB
April 17 2025 13:10:59
root / root
0644
web_log.py
7.618 KB
April 17 2025 13:10:59
root / root
0644
web_middlewares.py
3.938 KB
April 17 2025 13:10:59
root / root
0644
web_protocol.py
22.504 KB
April 17 2025 13:10:59
root / root
0644
web_request.py
28.082 KB
April 17 2025 13:10:59
root / root
0644
web_response.py
27.079 KB
April 17 2025 13:10:59
root / root
0644
web_routedef.py
5.988 KB
April 17 2025 13:10:59
root / root
0644
web_runner.py
11.461 KB
April 17 2025 13:10:59
root / root
0644
web_server.py
2.526 KB
April 17 2025 13:10:59
root / root
0644
web_urldispatcher.py
39.118 KB
April 17 2025 13:10:59
root / root
0644
web_ws.py
18.21 KB
April 17 2025 13:10:59
root / root
0644
worker.py
7.778 KB
April 17 2025 13:10:59
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF