CasperSecurity

Current Path : /lib/python3/dist-packages/twisted/internet/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/twisted/internet/__pycache__/_resolver.cpython-310.pyc

o

�b!�@s`dZddlmZmZmZmZmZmZmZddl	m
Z
ddlmZddl
mZmZddlmZddlmZddlmZmZmZmZdd	lmZdd
lmZddlmZe
e�Gdd
�d
��Ze eeg�Z!e eg�ee eg�ee!eiZ"eeeeiZ#eed�Z$edediZ%e
e�Gdd�d��Z&e
e�Gdd�d��Z'e
e�Gdd�d��Z(e
e�Gdd�d��Z)dS)z=
IPv6-aware hostname resolution.

@see: L{IHostnameResolver}
�)�AF_INET�AF_INET6�	AF_UNSPEC�
SOCK_DGRAM�SOCK_STREAM�gaierror�getaddrinfo)�implementer)�
_idnaBytes)�IPv4Address�IPv6Address)�Deferred)�DNSLookupError)�IHostnameResolver�IHostResolution�IResolutionReceiver�IResolverSimple)�deferToThreadPool)�Logger)�nativeStringc@s eZdZdZdd�Zdd�ZdS)�HostResolutionz9
    The in-progress resolution of a given hostname.
    cC�
||_dS)zA
        Create a L{HostResolution} with the given name.
        N)�name)�selfr�r�</usr/lib/python3/dist-packages/twisted/internet/_resolver.py�__init__-�
zHostResolution.__init__cCst���N)�NotImplementedError�rrrr�cancel3szHostResolution.cancelN)�__name__�
__module__�__qualname__�__doc__rr!rrrrr'sr)�TCP�UDPr&r'c@s.eZdZdZdefdd�Z			d	dd�ZdS)
�GAIResolverzp
    L{IHostnameResolver} implementation that resolves hostnames by calling
    L{getaddrinfo} in a thread.
    NcCs$||_|dur
|jn||_||_dS)a�
        Create a L{GAIResolver}.

        @param reactor: the reactor to schedule result-delivery on
        @type reactor: L{IReactorThreads}

        @param getThreadPool: a function to retrieve the thread pool to use for
            scheduling name resolutions.  If not supplied, the use the given
            C{reactor}'s thread pool.
        @type getThreadPool: 0-argument callable returning a
            L{twisted.python.threadpool.ThreadPool}

        @param getaddrinfo: a reference to the L{getaddrinfo} to use - mainly
            parameterized for testing.
        @type getaddrinfo: callable with the same signature as L{getaddrinfo}
        N)�_reactor�
getThreadPool�_getThreadPool�_getaddrinfo)r�reactorr*rrrrrWs�
zGAIResolver.__init__rr&csr���}t|durtnt|��t|������fdd�}t�j||�}t��}	��|	�|j	�fdd��}
|	S)�<
        See L{IHostnameResolver.resolveHostName}

        @param resolutionReceiver: see interface

        @param hostName: see interface

        @param portNumber: see interface

        @param addressTypes: see interface

        @param transportSemantics: see interface

        @return: see interface
        Ncs*z	�������WStygYSwr)r,rr)�
addressFamily�hostName�
portNumberr�
socketTyperr�get�s��z(GAIResolver.resolveHostName.<locals>.getcsF|D]\}}}}}t|}��|t�|d�g|�R��q���dS�Nr&)�	_afToType�addressResolved�_socktypeToTyper3�resolutionComplete)�result�family�socktype�proto�	cannoname�sockaddr�addrType��resolutionReceiverrr�deliverResults�s�z3GAIResolver.resolveHostName.<locals>.deliverResults)
r+�
_typesToAF�_any�	frozenset�_transportToSocketrr)r�resolutionBegan�addCallback)rrAr0r1�addressTypes�transportSemantics�poolr3�d�
resolutionrBr)r/r0r1rArr2r�resolveHostNamens�
zGAIResolver.resolveHostName�rNr&)r"r#r$r%rrrNrrrrr(Ps�r(c@s.eZdZdZe�Zdd�Z			d	dd�ZdS)
�SimpleResolverComplexifierzF
    A converter from L{IResolverSimple} to L{IHostnameResolver}.
    cCr)zW
        Construct a L{SimpleResolverComplexifier} with an L{IResolverSimple}.
        N)�_simpleResolver)r�simpleResolverrrrr�rz#SimpleResolverComplexifier.__init__rNr&cs�z��d��Wn
tyt���Ynwt���t��}��|��j���}��fdd�}��fdd�}	|�||	��fdd�}
|�	|
�|S)r.�asciics��td|���dSr4)r6r)�address)r1rArr�addressReceived�szCSimpleResolverComplexifier.resolveHostName.<locals>.addressReceivedcs(|�t�s�jjd|��jd�dSdS)Nz'while looking up {name} with {resolver})r�resolver)�checkr�_log�failurerQ)�error)r0rrr�
errorReceived�s

��zASimpleResolverComplexifier.resolveHostName.<locals>.errorReceivedcs���dSr)r8)r9r@rr�finish�sz:SimpleResolverComplexifier.resolveHostName.<locals>.finish)
�encode�UnicodeEncodeErrorr
rrrGrQ�
getHostByName�addCallbacksrH)rrAr0r1rIrJrM�	onAddressrUr[r\r)r0r1rArrrN�s�
	
z*SimpleResolverComplexifier.resolveHostNamerO)r"r#r$r%rrXrrNrrrrrP�s
�rPc@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�FirstOneWinszT
    An L{IResolutionReceiver} which fires a L{Deferred} with its first result.
    cCs||_d|_dS)zp
        @param deferred: The L{Deferred} to fire when the first resolution
            result arrives.
        FN)�	_deferred�	_resolved)r�deferredrrrr�s
zFirstOneWins.__init__cCr)z�
        See L{IResolutionReceiver.resolutionBegan}

        @param resolution: See L{IResolutionReceiver.resolutionBegan}
        N)�_resolution)rrMrrrrG��
zFirstOneWins.resolutionBegancCs"|jrdSd|_|j�|j�dS)z�
        See L{IResolutionReceiver.addressResolved}

        @param address: See L{IResolutionReceiver.addressResolved}
        NT)rdrc�callback�host)rrTrrrr6szFirstOneWins.addressResolvedcCs"|jrdS|j�t|jj��dS)z?
        See L{IResolutionReceiver.resolutionComplete}
        N)rdrc�errbackrrfrr rrrr8szFirstOneWins.resolutionCompleteN)r"r#r$r%rrGr6r8rrrrrb�srbc@s"eZdZdZdd�Zddd�ZdS)	�ComplexResolverSimplifierzE
    A converter from L{IHostnameResolver} to L{IResolverSimple}
    cCr)z�
        Create a L{ComplexResolverSimplifier} with an L{IHostnameResolver}.

        @param nameResolver: The L{IHostnameResolver} to use.
        N)�
_nameResolver)r�nameResolverrrrrrgz"ComplexResolverSimplifier.__init__rcCs"t�}|j�t|�|dtg�|S)z�
        See L{IResolverSimple.getHostByName}

        @param name: see L{IResolverSimple.getHostByName}

        @param timeouts: see L{IResolverSimple.getHostByName}

        @return: see L{IResolverSimple.getHostByName}
        r)r
rlrNrbr)rr�timeoutsr9rrrr_&s
z'ComplexResolverSimplifier.getHostByNameN)r)r"r#r$r%rr_rrrrrksrkN)*r%�socketrrrrrrr�zope.interfacer	�twisted.internet._idnar
�twisted.internet.addressrr�twisted.internet.deferr
�twisted.internet.errorr�twisted.internet.interfacesrrrr�twisted.internet.threadsr�twisted.loggerr�twisted.python.compatrrrErDrCr5rFr7r(rPrbrkrrrr�<module>sF$


����RJ)
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY