404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.35.4: ~ $
from __future__ import absolute_import

import socket
from sentry_sdk import Hub
from sentry_sdk._types import MYPY
from sentry_sdk.consts import OP
from sentry_sdk.integrations import Integration

if MYPY:
    from socket import AddressFamily, SocketKind
    from typing import Tuple, Optional, Union, List

__all__ = ["SocketIntegration"]


class SocketIntegration(Integration):
    identifier = "socket"

    @staticmethod
    def setup_once():
        # type: () -> None
        """
        patches two of the most used functions of socket: create_connection and getaddrinfo(dns resolver)
        """
        _patch_create_connection()
        _patch_getaddrinfo()


def _get_span_description(host, port):
    # type: (Union[bytes, str, None], Union[str, int, None]) -> str

    try:
        host = host.decode()  # type: ignore
    except (UnicodeDecodeError, AttributeError):
        pass

    description = "%s:%s" % (host, port)  # type: ignore

    return description


def _patch_create_connection():
    # type: () -> None
    real_create_connection = socket.create_connection

    def create_connection(
        address,
        timeout=socket._GLOBAL_DEFAULT_TIMEOUT,  # type: ignore
        source_address=None,
    ):
        # type: (Tuple[Optional[str], int], Optional[float], Optional[Tuple[Union[bytearray, bytes, str], int]])-> socket.socket
        hub = Hub.current
        if hub.get_integration(SocketIntegration) is None:
            return real_create_connection(
                address=address, timeout=timeout, source_address=source_address
            )

        with hub.start_span(
            op=OP.SOCKET_CONNECTION,
            description=_get_span_description(address[0], address[1]),
        ) as span:
            span.set_data("address", address)
            span.set_data("timeout", timeout)
            span.set_data("source_address", source_address)

            return real_create_connection(
                address=address, timeout=timeout, source_address=source_address
            )

    socket.create_connection = create_connection  # type: ignore


def _patch_getaddrinfo():
    # type: () -> None
    real_getaddrinfo = socket.getaddrinfo

    def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
        # type: (Union[bytes, str, None], Union[str, int, None], int, int, int, int) -> List[Tuple[AddressFamily, SocketKind, int, str, Union[Tuple[str, int], Tuple[str, int, int, int]]]]
        hub = Hub.current
        if hub.get_integration(SocketIntegration) is None:
            return real_getaddrinfo(host, port, family, type, proto, flags)

        with hub.start_span(
            op=OP.SOCKET_DNS, description=_get_span_description(host, port)
        ) as span:
            span.set_data("host", host)
            span.set_data("port", port)

            return real_getaddrinfo(host, port, family, type, proto, flags)

    socket.getaddrinfo = getaddrinfo  # type: ignore

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
django Folder 0755
grpc Folder 0755
opentelemetry Folder 0755
redis Folder 0755
spark Folder 0755
__init__.py File 6.67 KB 0644
_wsgi_common.py File 4.43 KB 0644
aiohttp.py File 11.28 KB 0644
argv.py File 963 B 0644
arq.py File 6.58 KB 0644
asgi.py File 11.54 KB 0644
asyncio.py File 2.98 KB 0644
atexit.py File 1.8 KB 0644
aws_lambda.py File 15.44 KB 0644
beam.py File 5.56 KB 0644
boto3.py File 4.44 KB 0644
bottle.py File 6.32 KB 0644
celery.py File 18.65 KB 0644
chalice.py File 4.66 KB 0644
cloud_resource_context.py File 6.6 KB 0644
dedupe.py File 1.16 KB 0644
excepthook.py File 2.21 KB 0644
executing.py File 1.99 KB 0644
falcon.py File 7.8 KB 0644
fastapi.py File 4.39 KB 0644
flask.py File 7.72 KB 0644
gcp.py File 8.02 KB 0644
gnu_backtrace.py File 2.86 KB 0644
httpx.py File 4.89 KB 0644
huey.py File 4.59 KB 0644
logging.py File 8.97 KB 0644
loguru.py File 2.98 KB 0644
modules.py File 2.06 KB 0644
pure_eval.py File 4.45 KB 0644
pymongo.py File 5.87 KB 0644
pyramid.py File 7.27 KB 0644
quart.py File 7.2 KB 0644
rq.py File 5.28 KB 0644
sanic.py File 11.06 KB 0644
serverless.py File 1.93 KB 0644
socket.py File 2.88 KB 0644
sqlalchemy.py File 4.14 KB 0644
starlette.py File 22.67 KB 0644
starlite.py File 9.85 KB 0644
stdlib.py File 8.06 KB 0644
threading.py File 2.87 KB 0644
tornado.py File 7.17 KB 0644
trytond.py File 1.7 KB 0644
wsgi.py File 9.36 KB 0644