CasperSecurity

Current Path : /lib/python3.10/multiprocessing/__pycache__/
Upload File :
Current File : //lib/python3.10/multiprocessing/__pycache__/connection.cpython-310.pyc

o

`�wi�{�@s�gd�ZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddl
mZm
Z
ddlmZejZzddlZddlmZmZmZmZWneybejdkr^�dZYnwd	Zd
Ze��ZdZdgZeed�r|dZedg7Zejdkr�d
Zed
g7Zefdd�Z dd�Z!dd�Z"dd�Z#dd�Z$Gdd�d�Z%er�Gdd�de%�Z&Gdd�de%�Z'Gdd�de(�Z)dPd d!�Z*ejdkr�dQd#d$�Z+ndQd%d$�Z+Gd&d'�d'e(�Z,d(d)�Z-ejdkr�Gd*d+�d+e(�Z.d,d-�Z/d.Z0d/Z1d0Z2d1Z3d2d3�Z4d4d5�Z5Gd6d7�d7e(�Z6d8d9�Z7d:d;�Z8Gd<d=�d=e)�Z9d>d?�Z:ejdk�r3d@dA�Z;ej<ej=hZ>dRdBdC�Z?nddl@Z@ee@dD��rAe@jAZBne@jCZBdRdEdC�Z?ejdk�rmdFdG�ZDdHdI�ZEe�Fe'eD�dJdK�ZGdLdM�ZHe�Fe&eG�dSdNdG�ZDdOdI�ZEe�Fe'eD�dS)S)�Client�Listener�Pipe�wait�N�)�util)�AuthenticationError�BufferTooShort)�	reduction)�
WAIT_OBJECT_0�WAIT_ABANDONED_0�WAIT_TIMEOUT�INFINITE�win32i g4@�AF_INET�AF_UNIX�AF_PIPEcCst��|S�N��time�	monotonic)�timeout�r�1/usr/lib/python3.10/multiprocessing/connection.py�
_init_timeout;�rcCst��|kSrr)�trrr�_check_timeout>rrcCsT|dkrdS|dkrtjdt��d�S|dkr&tjdt��tt�fdd�Std	��)
z?
    Return an arbitrary free address for the given family
    r)�	localhostrrz	listener-)�prefix�dirrz\\.\pipe\pyc-%d-%d-�zunrecognized family)	�tempfile�mktempr�get_temp_dir�os�getpid�next�
_mmap_counter�
ValueError��familyrrr�arbitrary_addressEs��r,cCsRtjdkr|dkrtd|��tjdkr#|dkr%tt|�s'td|��dSdSdS)zD
    Checks if the family is valid for the current environment.
    rrzFamily %s is not recognized.rN)�sys�platformr)�hasattr�socketr*rrr�_validate_familySs
�r1cCsPt|�tkrdSt|�tur|�d�rdSt|�tus t�|�r"dStd|��)z]
    Return the types of the address

    This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE'
    rz\\rrzaddress type of %r unrecognized)�type�tuple�str�
startswithr�is_abstract_socket_namespacer))�addressrrr�address_type_sr8c@s�eZdZdZd+dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
dd��Ze
dd��Ze
dd��Z
dd�Zdd�Zd,dd�Zdd�Zd-dd�Zd.d d!�Zd"d#�Zd/d%d&�Zd'd(�Zd)d*�ZdS)0�_ConnectionBaseNTcCs>|��}|dkrtd��|s|std��||_||_||_dS)Nrzinvalid handlez6at least one of `readable` and `writable` must be True)�	__index__r)�_handle�	_readable�	_writable)�self�handle�readable�writablerrr�__init__us�
z_ConnectionBase.__init__cCs|jdur|��dSdSr�r;�_close�r>rrr�__del__�s
�z_ConnectionBase.__del__cCs|jdur	td��dS)Nzhandle is closed)r;�OSErrorrErrr�
_check_closed�s
�z_ConnectionBase._check_closedcC�|jstd��dS)Nzconnection is write-only)r<rGrErrr�_check_readable���z_ConnectionBase._check_readablecCrI)Nzconnection is read-only)r=rGrErrr�_check_writable�rKz_ConnectionBase._check_writablecCs$|jr
d|_td��|��td��)NFzbad message length)r=r<�closerGrErrr�_bad_message_length�s
�z#_ConnectionBase._bad_message_lengthcCs
|jduS)z True if the connection is closedN�r;rErrr�closed�s
z_ConnectionBase.closedcC�|jS)z"True if the connection is readable)r<rErrrr@��z_ConnectionBase.readablecCrQ)z"True if the connection is writable)r=rErrrrA�rRz_ConnectionBase.writablecCs|��|jS)z+File descriptor or handle of the connection)rHr;rErrr�fileno�sz_ConnectionBase.filenocCs,|jdurz
|��Wd|_dSd|_wdS)zClose the connectionNrCrErrrrM�s


�z_ConnectionBase.closercCs�|��|��t|�}|jdkrtt|��}t|�}|dkr#td��||kr+td��|dur4||}n|dkr<td��|||krFtd��|�||||��dS)z,Send the bytes data from a bytes-like objectrrzoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)rHrL�
memoryview�itemsize�bytes�lenr)�_send_bytes)r>�buf�offset�size�m�nrrr�
send_bytes�s"

z_ConnectionBase.send_bytescCs$|��|��|�t�|��dS)zSend a (picklable) objectN)rHrLrX�_ForkingPickler�dumps�r>�objrrr�send�sz_ConnectionBase.sendcCsJ|��|��|dur|dkrtd��|�|�}|dur!|��|��S)z7
        Receive bytes data as a bytes object.
        Nrznegative maxlength)rHrJr)�_recv_bytesrN�getvalue)r>�	maxlengthrYrrr�
recv_bytes�s
z_ConnectionBase.recv_bytescCs�|��|��t|��K}|j}|t|�}|dkrtd��||kr&td��|��}|��}|||kr:t|�	���|�
d�|�||||||��|Wd�S1sZwYdS)zq
        Receive bytes data into a writeable bytes-like object.
        Return the number of bytes read.
        rznegative offsetzoffset too largeN)rHrJrTrUrWr)rd�tellr	re�seek�readinto)r>rYrZr\rU�bytesize�resultr[rrr�recv_bytes_into�s&


�$�z_ConnectionBase.recv_bytes_intocCs&|��|��|��}t�|���S)zReceive a (picklable) object)rHrJrdr_�loads�	getbuffer)r>rYrrr�recv�sz_ConnectionBase.recv�cCs|��|��|�|�S)z/Whether there is any input available to be read)rHrJ�_poll�r>rrrr�poll�s
z_ConnectionBase.pollcC�|SrrrErrr�	__enter__�z_ConnectionBase.__enter__cC�|��dSr�rM�r>�exc_type�	exc_value�exc_tbrrr�__exit__rz_ConnectionBase.__exit__)TT)rNr)r)rq)�__name__�
__module__�__qualname__r;rBrFrHrJrLrN�propertyrPr@rArSrMr^rcrgrmrprtrvr~rrrrr9rs0









r9c@sDeZdZdZdZejfdd�Zdd�Zddd	�Z	d
d�Z
dd
�ZdS)�PipeConnectionz�
        Connection class based on a Windows named pipe.
        Overlapped I/O is used, so the handles must have been created
        with FILE_FLAG_OVERLAPPED.
        FcC�||j�dSrrO)r>�_CloseHandlerrrrD�zPipeConnection._closec	Cs�tj|j|dd�\}}z(z|tjkr!t�|jgdt�}|tks!J�Wn|���W|�	d�\}}n|�	d�\}}w|dksBJ�|t
|�ksJJ�dS)NT��
overlappedFr)�_winapi�	WriteFiler;�ERROR_IO_PENDING�WaitForMultipleObjects�eventrr�cancel�GetOverlappedResultrW)r>rY�ov�err�waitres�nwrittenrrrrXs

��� zPipeConnection._send_bytesNc	
Csh|jr
d|_t��S|durdnt|d�}z�tj|j|dd�\}}zFz|tjkr7t�|j	gdt
�}|tks7J�Wn|���W|�
d�\}}|dkr[t��}|�|���|WS|tjkrg|�||�WSn2|�
d�\}}|dkr�t��}|�|���|YWS|tjkr�|�||�YWSwWtd��ty�}z	|jtjkr�t��d}~ww)NF�Tr�rz.shouldn't get here; expected KeyboardInterrupt)�_got_empty_message�io�BytesIO�minr��ReadFiler;r�r�r�rrr�r��writero�ERROR_MORE_DATA�_get_more_datarG�winerror�ERROR_BROKEN_PIPE�EOFError�RuntimeError)	r>�maxsize�bsizer�r�r��nread�f�errrrd&sT

�

���
��
����zPipeConnection._recv_bytescCs.|js
t�|j�ddkrdStt|g|��S)NrT)r�r��
PeekNamedPiper;�boolrrsrrrrrFszPipeConnection._pollcCs�|��}t��}|�|�t�|j�d}|dksJ�|dur+t|�||kr+|��tj	|j|dd�\}}|�
d�\}}|dksCJ�||ksIJ�|�|���|S)NrrTr�)ror�r�r�r�r�r;rWrNr�r�)r>r�r�rYr��leftr��rbytesrrrr�Ls
zPipeConnection._get_more_datar)rr�r��__doc__r�r��CloseHandlerDrXrdrrr�rrrrr�s
 r�c@s|eZdZdZerejfdd�ZejZ	ej
Zn
ej
fdd�ZejZ	ejZe	fdd�Zefdd�Zd	d
�Zddd
�Zdd�ZdS)�
Connectionzo
    Connection class based on an arbitrary file descriptor (Unix only), or
    a socket handle (Windows).
    cCr�rrO�r>rDrrrrDcr�zConnection._closecCr�rrOr�rrrrDhr�cCs8t|�}	||j|�}||8}|dkrdS||d�}q)NTr)rWr;)r>rYr��	remainingr]rrr�_sendms�zConnection._sendcCsft��}|j}|}|dkr1|||�}t|�}|dkr$||kr t�td��|�|�||8}|dks
|S)Nrzgot end of file during message)r�r�r;rWr�rGr�)r>r[�readrYr?r��chunkr]rrr�_recvvs

�
zConnection._recvcCs�t|�}|dkr%t�dd�}t�d|�}|�|�|�|�|�|�dSt�d|�}|dkr;|�|�|�|�dS|�||�dS)Ni����!i����!Qi@)rW�struct�packr�)r>rYr]�
pre_header�headerrrrrX�s


zConnection._send_bytesNcCs^|�d�}t�d|���\}|dkr |�d�}t�d|���\}|dur*||kr*dS|�|�S)N�r�r��r�)r�r��unpackre)r>r�rYr[rrrrd�s


zConnection._recv_bytescCst|g|�}t|�Sr)rr�)r>r�rrrrrr�szConnection._pollr)rr�r�r�r��_multiprocessing�closesocketrDrc�_writerp�_readr%rMr�r�r�r�rXrdrrrrrrr�\s	

r�c@sReZdZdZddd�Zdd�Zdd	�Zed
d��Zedd
��Z	dd�Z
dd�ZdS)rz�
    Returns a listener object.

    This is a wrapper for a bound socket which is 'listening' for
    connections, or for a Windows named pipe.
    NrcCsp|p	|rt|�p	t}|pt|�}t|�|dkrt||�|_nt|||�|_|dur3t|t�s3t	d��||_
dS)Nr�authkey should be a byte string)r8�default_familyr,r1�PipeListener�	_listener�SocketListener�
isinstancerV�	TypeError�_authkey)r>r7r+�backlog�authkeyrrrrB�s�
zListener.__init__cCs>|jdur	td��|j��}|jrt||j�t||j�|S)zz
        Accept a connection on the bound socket or named pipe of `self`.

        Returns a `Connection` object.
        Nzlistener is closed)r�rG�acceptr��deliver_challenge�answer_challenge)r>�crrrr��s

zListener.acceptcCs$|j}|durd|_|��dSdS)zA
        Close the bound socket or named pipe of `self`.
        N)r�rM)r>�listenerrrrrM�s
�zListener.closecC�|jjSr)r��_addressrErrrr7��zListener.addresscCr�r)r��_last_acceptedrErrr�
last_accepted�r�zListener.last_acceptedcCrurrrErrrrv�rwzListener.__enter__cCrxrryrzrrrr~�rzListener.__exit__)NNrN)rr�r�r�rBr�rMr�r7r�rvr~rrrrr�s
	

rcCsh|pt|�}t|�|dkrt|�}nt|�}|dur$t|t�s$td��|dur2t||�t||�|S)z=
    Returns a connection to the address of a `Listener`
    rNr�)	r8r1�
PipeClient�SocketClientr�rVr�r�r�)r7r+r�r�rrrr�s


rTcCsp|r"t��\}}|�d�|�d�t|���}t|���}||fSt��\}}t|dd�}t|dd�}||fS)�L
        Returns pair of connection objects at either end of a pipe
        TF�rA�r@)r0�
socketpair�setblockingr��detachr%�pipe)�duplex�s1�s2�c1�c2�fd1�fd2rrrrs

�rc

Cs�td�}|rtj}tjtjB}tt}}ntj}tj}dt}}t�||tjBtj	Btj
tjBtjBd||tj
tj�}t�||dtjtjtjtj�}t�|tjdd�tj|dd�}|�d�\}	}
|
dksgJ�t||d�}t||d�}||fS)	r�rrrNTr�r�r�)r,r��PIPE_ACCESS_DUPLEX�GENERIC_READ�
GENERIC_WRITE�BUFSIZE�PIPE_ACCESS_INBOUND�CreateNamedPipe�FILE_FLAG_OVERLAPPED�FILE_FLAG_FIRST_PIPE_INSTANCE�PIPE_TYPE_MESSAGE�PIPE_READMODE_MESSAGE�	PIPE_WAIT�NMPWAIT_WAIT_FOREVER�NULL�
CreateFile�
OPEN_EXISTING�SetNamedPipeHandleState�ConnectNamedPiper�r�)
r�r7�openmode�access�obsize�ibsize�h1�h2r��_r�r�r�rrrrs>

�
�
�	�
�c@s*eZdZdZd
dd�Zdd�Zdd�Zd	S)r�zO
    Representation of a socket which is bound to an address and listening
    rcCs�t�tt|��|_z)tjdkr|j�tjtjd�|j�d�|j�	|�|j�
|�|j��|_Wn
t
y?|j���w||_d|_|dkr]t�|�s]tj|tj|fdd�|_dSd|_dS)N�posixrTrr��args�exitpriority)r0�getattr�_socketr%�name�
setsockopt�
SOL_SOCKET�SO_REUSEADDRr��bind�listen�getsocknamer�rGrM�_familyr�rr6�Finalize�unlink�_unlink)r>r7r+r�rrrrBGs*

�
��
zSocketListener.__init__cCs&|j��\}|_|�d�t|���S)NT)rr�r�r�r�r��r>�srrrr�`s
zSocketListener.acceptcCsNz|j��W|j}|durd|_|�dSdS|j}|dur&d|_|�wwr)rrMr)r>r
rrrrMes
���zSocketListener.closeN)r)rr�r�r�rBr�rMrrrrr�Cs

r�cCs\t|�}t�tt|���}|�d�|�|�t|���Wd�S1s'wYdS)zO
    Return a connection object connected to the socket given by `address`
    TN)r8r0rr��connectr�r�)r7r+rrrrr�os


$�r�c@s8eZdZdZddd�Zd
dd�Zdd	�Zed
d��ZdS)r�z0
        Representation of a named pipe
        NcCsL||_|jdd�g|_d|_t�d|j�tj|tj|j|jfdd�|_	dS)NT)�firstz listener created with address=%rrr�)
r��_new_handle�
_handle_queuer�r�	sub_debugrr��_finalize_pipe_listenerrM)r>r7r�rrrrB�s�zPipeListener.__init__Fc
CsHtjtjB}|r
|tjO}t�|j|tjtjBtjBtj	t
t
tjtj�Sr)
r�r�r�r�r�r�r�r�r��PIPE_UNLIMITED_INSTANCESr�r�r�)r>r�flagsrrrr�s

��zPipeListener._new_handlec
Cs�|j�|���|j�d�}z	tj|dd�}Wnty3}z|jtjkr&�WYd}~t|�Sd}~wwz+zt�	|j
gdt�}Wn
|��t�
|��W|�d�\}}|dks\J�t|�S|�d�\}}|dksmJ�w)NrTr�F)r�appendr�popr�r�rGr��
ERROR_NO_DATAr�r�rr�r�r�r�)r>r?r�r��resr�r�rrrr��s2
���
�
��zPipeListener.acceptcCs$t�d|�|D]}t�|�qdS)Nz closing listener with address=%r)rrr�r�)�queuer7r?rrrr�s�z$PipeListener._finalize_pipe_listenerr)F)	rr�r�r�rBrr��staticmethodrrrrrr�s

r�c
Cs�t�}	zt�|d�t�|tjtjBdtjtjtjtj�}Wn t	y?}z|j
tjtjfvs4t
|�r5�WYd}~nd}~wwnqt�|tjdd�t|�S)zU
        Return a connection object connected to the pipe given by `address`
        r��rN)rr��
WaitNamedPiper�r�r�r�r�r�rGr��ERROR_SEM_TIMEOUT�ERROR_PIPE_BUSYrr�r�r�)r7r�hr�rrrr��s2
�������
�r��s#CHALLENGE#s	#WELCOME#s	#FAILURE#cCs�ddl}t|t�std�t|����t�t�}|�	t
|�|�||d���}|�
d�}||kr7|�	t�dS|�	t�td��)Nr� Authkey must be bytes, not {0!s}�md5�zdigest received was wrong)�hmacr�rVr)�formatr2r%�urandom�MESSAGE_LENGTHr^�	CHALLENGE�new�digestrg�WELCOME�FAILUREr��
connectionr�r(�messager.�responserrrr��s
�


r�cCs�ddl}t|t�std�t|����|�d�}|dtt��tks'Jd|��|tt�d�}|�	||d��
�}|�|�|�d�}|tkrJt
d��dS)Nrr%r'zmessage = %rr&zdigest sent was rejected)r(r�rVr)r)r2rgrWr,r-r.r^r/rr1rrrr��s
�
 

�r�c@s$eZdZdd�Zdd�Zdd�ZdS)�ConnectionWrappercCs6||_||_||_dD]
}t||�}t|||�qdS)N)rSrMrtrgr^)�_conn�_dumps�_loadsr�setattr)r>�connr`rn�attrrbrrrrB�s
�zConnectionWrapper.__init__cCs|�|�}|j�|�dSr)r7r6r^)r>rbrrrrrcs
zConnectionWrapper.sendcCs|j��}|�|�Sr)r6rgr8rrrrrps

zConnectionWrapper.recvN)rr�r�rBrcrprrrrr5�sr5cCst�|fdddd��d�S)Nr�utf-8)�	xmlrpclibr`�encode)rbrrr�
_xml_dumpssr?cCst�|�d��\\}}|S)Nr<)r=rn�decode)rrb�methodrrr�
_xml_loadssrBc@seZdZdd�ZdS)�XmlListenercCs"ddlmat�|�}t|tt�S�Nr)�
xmlrpc.client�clientr=rr�r5r?rBrarrrr�s
zXmlListener.acceptN)rr�r�r�rrrrrCsrCcOs"ddlmatt|i|��tt�SrD)rErFr=r5rr?rB)r�kwdsrrr�	XmlClientsrHcCs�t|�}g}|rZt�|d|�}|tkr	|St|kr$tt|�kr+nn|t8}nt|kr9tt|�krCntd��|t8}ntd��|�||�||dd�}d}|s|S)NFzShould not get hererr)	�listr�r�r
rrWrr�r)�handlesr�L�readyrrrr�_exhaustive_wait%s$
 �

��
rMc
s�|durt}n|dkrd}nt|dd�}t|�}i�g}t��t�}z�|D]�}zt|d�}Wnty?|�|��<Yq'wzt�|�dd�\}}Wnt	yi}zd|j
}}|tvr_�WYd}~nd}~ww|tjkrz|�
|�|�|j<q'|r�t��dd�dkr�z	|�d	�\}	}Wnt	y�}z	|j
}WYd}~nd}~ww|s�t|d
�r�d|_��|�d}q't���|�}W|D]}|��q�|D]D}z	|�d�\}	}Wnt	y�}z|j
}|tvr�WYd}~nd}~ww|tjk�r�|j}��|�|dk�rt|d
��rd|_q�nU|D]}|���q|D]G}z	|�d�\}	}Wnt	�yC}z|j
}|tv�r9�WYd}~nd}~ww|tjk�rb�|j}��|�|dk�rbt|d
��rbd|_�qw���fdd�|D���fd
d�|D�S)��
        Wait till an object in object_list is ready/readable.

        Returns list of those objects in object_list which are ready/readable.
        Nrrg�?rST�)�rOFr�c3s�|]}�|VqdSrr)�.0r#)�waithandle_to_objrr�	<genexpr>�s�zwait.<locals>.<genexpr>csg|]}|�vr|�qSrr)rQ�o)�
ready_objectsrr�
<listcomp>�s�wait.<locals>.<listcomp>)r�intrI�setr�AttributeErrorr:r�r�rGr��
_ready_errorsr�rr�r-�getwindowsversionr�r/r��addrM�keysr��ERROR_OPERATION_ABORTED�update)
�object_listr�ov_list�
ready_handlesrTrSr�r�r�r�r)rUrRrr;s�����

��

���


���
���


��r�PollSelectorcCs�t��E}|D]	}|�|tj�q|durt��|}	|�|�}|r0dd�|D�Wd�S|durG|t��}|dkrG|Wd�Sq1sKwYdS)rNNTcSsg|]\}}|j�qSr)�fileobj)rQ�key�eventsrrrrV�srWr)�
_WaitSelector�register�	selectors�
EVENT_READrr�select)rar�selectorrb�deadlinerLrrrr�s"
���cCsf|��}t�|tjtj��}ddlm}|�|�}t||j	|j
ffWd�S1s,wYdS)Nr)�resource_sharer)rSr0�fromfdr�SOCK_STREAMr!ro�	DupSocket�rebuild_connectionr@rA)r:r?rro�dsrrr�reduce_connection�s
$�rucCs|��}t|��||�Sr�r�r�)rtr@rA�sockrrrrs�srscCsB|jrtjnd|jr
tjndB}t�|��|�}t||j|jffSrD)	r@r��FILE_GENERIC_READrA�FILE_GENERIC_WRITEr
�	DupHandlerS�rebuild_pipe_connection)r:r��dhrrr�reduce_pipe_connection�s
�r}cC�|��}t|||�Sr)r�r�)r|r@rAr?rrrr{��r{cCs t�|���}t||j|jffSr)r
�DupFdrSrsr@rA)r:�dfrrrru�scCr~rrv)r�r@rA�fdrrrrs�r)NN)Tr)I�__all__r�r%r-r0r�rr"�	itertoolsr�r!rrr	�contextr
�ForkingPicklerr_r�rrr
r�ImportErrorr.r��CONNECTION_TIMEOUT�countr(r��familiesr/rrr,r1r8r9r�r��objectrrrr�r�r�r�r+r,r/r0r�r�r5r?rBrCrHrMr��ERROR_NETNAME_DELETEDr[rrjrdrh�SelectSelectorrursrir}r{rrrr�<module>s�	
�	



PT
=

,,
8	P

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