����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
python34
/
lib64
/
python3.4
/
multiprocessing
/
__pycache__
/
Filename :
connection.cpython-34.pyc
back
Copy
� e fz������������������@���sX��d��d�d�d�g�Z��d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l�Z�d�d�l �Z �d�d�l �m�Z�d�d�l �m�Z�d�d �l �m �Z �m�Z�d�d �l�m�Z�y2�d�d�l�Z�d�d�l�m�Z�m�Z�m�Z�m�Z�Wn-�e�k �r%e�j�d�k�r���n��d�Z�Yn�Xd �Z�d�Z�e�j����Z�d�Z�d�g�Z�e�e�d���rrd�Z�e�d�g�7Z�n��e�j�d�k�r�d�Z�e�d�g�7Z�n��e�d�d���Z�d�d����Z�d�d����Z �d�d����Z!�d�d����Z"�Gd�d����d���Z#�e�rGd�d����d�e#���Z$�n��Gd �d!����d!�e#���Z%�Gd"�d����d�e&���Z'�d�d�d#�d����Z(�e�j�d�k�rgd$�d%�d���Z)�n�d$�d&�d���Z)�Gd'�d(����d(�e&���Z*�d)�d*����Z+�e�j�d�k�r�Gd+�d,����d,�e&���Z,�d-�d.����Z-�n��d/�Z.�d0�Z/�d1�Z0�d2�Z1�d3�d4����Z2�d5�d6����Z3�Gd7�d8����d8�e&���Z4�d9�d:����Z5�d;�d<����Z6�Gd=�d>����d>�e'���Z7�d?�d@����Z8�e�j�d�k�r�dA�dB����Z9�e�j:�e�j;�h�Z<�d�dC�d���Z=�n?�d�d�l>�Z>�e�e>�dD���r�e>�j?�Z@�n �e>�jA�Z@�d�dE�d���Z=�e�j�d�k�r,dF�dG����ZB�dH�dI����ZC�e�jD�e%�eB���dJ�dK����ZE�dL�dM����ZF�e�jD�e$�eE���n(�dN�dG����ZB�dO�dI����ZC�e�jD�e%�eB���d�S)P�Client�Listener�Pipe�wait�����N����)� reduction)�util)�AuthenticationError�BufferTooShort)�ForkingPickler)� WAIT_OBJECT_0�WAIT_ABANDONED_0�WAIT_TIMEOUT�INFINITE�win32i� ��g������4@�AF_INET�AF_UNIX�AF_PIPEc�������������C���s���t��j�����|��S)N)�time)�timeout��r����?/opt/alt/python34/lib64/python3.4/multiprocessing/connection.py� _init_timeout;���s����r���c�������������C���s���t��j�����|��k�S)N)r���)�tr���r���r����_check_timeout>���s����r���c�������������C���s����|��d�k�r�d �S|��d�k�r8�t��j�d�d�d�t�j������S|��d�k�rp�t��j�d�d �t�j����t�t���f�d�d ���St�d�����d�S)z? Return an arbitrary free address for the given family r���� localhostr���r����prefixz listener-�dirr���z\\.\pipe\pyc-%d-%d-��zunrecognized familyN)r���r���) �tempfileZmktempr���Zget_temp_dir�os�getpid�next� _mmap_counter� ValueError)�familyr���r���r����arbitrary_addressE���s���� r&���c�������������C���sr���t��j�d�k�r.�|��d�k�r.�t�d�|������n��t��j�d�k�rn�|��d�k�rn�t�t�|����sn�t�d�|������qn�n��d�S)zD Checks if the family is valid for the current environment. r���r���zFamily %s is not recognized.r���N)�sys�platformr$����hasattr�socket)r%���r���r���r����_validate_familyS���s ����r+���c�������������C���se���t��|����t�k�r�d�St��|����t�k�r;�|��j�d���r;�d�St��|����t�k�rQ�d�St�d�|������d�S)z] Return the types of the address This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE' r���z\\r���r���zaddress type of %r unrecognizedN)�type�tuple�str� startswithr$���)�addressr���r���r����address_type_���s����!r1���c���������������@���s!��e��Z�d��Z�d�Z�d�d�d�d���Z�d�d����Z�d�d����Z�d �d ����Z�d�d����Z�d �d����Z �e �d�d������Z�e �d�d������Z�e �d�d������Z �d�d����Z�d�d����Z�d�d�d�d���Z�d�d����Z�d�d�d���Z�d�d �d!���Z�d"�d#����Z�d$�d%�d&���Z�d'�d(����Z�d)�d*����Z�d�S)+�_ConnectionBaseNTc�������������C���sc���|�j�����}�|�d�k��r'�t�d�����n��|�rD�|�rD�t�d�����n��|�|��_�|�|��_�|�|��_�d��S)Nr���zinvalid handlez6at least one of `readable` and `writable` must be True)� __index__r$����_handle� _readable� _writable)�self�handle�readable�writabler���r���r����__init__u���s���� z_ConnectionBase.__init__c�������������C���s ���|��j��d��k �r�|��j����n��d��S)N)r4����_close)r7���r���r���r����__del__����s����z_ConnectionBase.__del__c�������������C���s"���|��j��d��k�r�t�d�����n��d��S)Nzhandle is closed)r4����OSError)r7���r���r���r���� _check_closed����s����z_ConnectionBase._check_closedc�������������C���s���|��j��s�t�d�����n��d��S)Nzconnection is write-only)r5���r>���)r7���r���r���r����_check_readable����s���� z_ConnectionBase._check_readablec�������������C���s���|��j��s�t�d�����n��d��S)Nzconnection is read-only)r6���r>���)r7���r���r���r����_check_writable����s���� z_ConnectionBase._check_writablec�������������C���s/���|��j��r�d�|��_�n �|��j����t�d�����d��S)NFzbad message length)r6���r5����closer>���)r7���r���r���r����_bad_message_length����s���� z#_ConnectionBase._bad_message_lengthc�������������C���s ���|��j��d�k�S)z True if the connection is closedN)r4���)r7���r���r���r����closed����s����z_ConnectionBase.closedc�������������C���s���|��j��S)z"True if the connection is readable)r5���)r7���r���r���r���r9�������s����z_ConnectionBase.readablec�������������C���s���|��j��S)z"True if the connection is writable)r6���)r7���r���r���r���r:�������s����z_ConnectionBase.writablec�������������C���s���|��j�����|��j�S)z+File descriptor or handle of the connection)r?���r4���)r7���r���r���r����fileno����s���� z_ConnectionBase.filenoc�������������C���s1���|��j��d�k �r-�z�|��j����Wd�d�|��_��Xn��d�S)zClose the connectionN)r4���r<���)r7���r���r���r���rB�������s����z_ConnectionBase.closer���c�������������C���s����|��j�����|��j����t�|���}�|�j�d�k�rD�t�t�|�����}�n��t�|���}�|�d�k��rk�t�d�����n��|�|�k��r��t�d�����n��|�d�k�r��|�|�}�n:�|�d�k��r��t�d�����n�|�|�|�k�r��t�d�����n��|��j�|�|�|�|�����d�S)z,Send the bytes data from a bytes-like objectr���r���zoffset is negativezbuffer length < offsetNzsize is negativezbuffer length < offset + size)r?���rA���� memoryview�itemsize�bytes�lenr$����_send_bytes)r7����buf�offset�size�m�nr���r���r���� send_bytes����s"���� z_ConnectionBase.send_bytesc�������������C���s.���|��j�����|��j����|��j�t�j�|�����d�S)zSend a (picklable) objectN)r?���rA���rJ���r����dumps)r7����objr���r���r����send����s���� z_ConnectionBase.sendc�������������C���sm���|��j�����|��j����|�d�k �r;�|�d�k��r;�t�d�����n��|��j�|���}�|�d�k�rc�|��j����n��|�j����S)z7 Receive bytes data as a bytes object. Nr���znegative maxlength)r?���r@���r$����_recv_bytesrC����getvalue)r7���Z maxlengthrK���r���r���r���� recv_bytes����s���� z_ConnectionBase.recv_bytesc�������������C���s����|��j�����|��j����t�|������}�|�j�}�|�t�|���}�|�d�k��rW�t�d�����n�|�|�k�rr�t�d�����n��|��j����}�|�j����}�|�|�|�k��r��t�|�j ��������n��|�j �d���|�j�|�|�|�|�|�|�����|�SWd�QXd�S)zq Receive bytes data into a writeable bytes-like object. Return the number of bytes read. r���znegative offsetzoffset too largeN)r?���r@���rF���rG���rI���r$���rT����tellr ���rU����seek�readinto)r7���rK���rL���rN���rG���Zbytesize�resultrM���r���r���r����recv_bytes_into����s"���� z_ConnectionBase.recv_bytes_intoc�������������C���s3���|��j�����|��j����|��j����}�t�j�|�j������S)zReceive a (picklable) object)r?���r@���rT���r����loads� getbuffer)r7���rK���r���r���r����recv����s���� z_ConnectionBase.recvg��������c�������������C���s!���|��j�����|��j����|��j�|���S)z/Whether there is any input available to be read)r?���r@����_poll)r7���r���r���r���r����poll����s���� z_ConnectionBase.pollc�������������C���s���|��S)Nr���)r7���r���r���r���� __enter__��s����z_ConnectionBase.__enter__c�������������C���s���|��j�����d��S)N)rB���)r7����exc_type� exc_value�exc_tbr���r���r����__exit__��s����z_ConnectionBase.__exit__)�__name__� __module__�__qualname__r4���r;���r=���r?���r@���rA���rC����propertyrD���r9���r:���rE���rB���rP���rS���rV���r[���r^���r`���ra���re���r���r���r���r���r2���r���s(��� r2���c���������������@���sa���e��Z�d��Z�d�Z�d�Z�e�j�d�d���Z�d�d����Z�d�d�d ���Z �d �d����Z �d�d ����Z�d�S)�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. Fc�������������C���s���|�|��j����d��S)N)r4���)r7���Z_CloseHandler���r���r���r<�����s����zPipeConnection._closec�������������C���s����t��j�|��j�|�d�d��\�}�}�z_�yC�|�t��j�k�rf�t��j�|�j�g�d�t���}�|�t�k�sf�t���n��Wn�|�j �������Yn�XWd��|�j �d���\�}�}�X|�d�k�s��t���|�t�|���k�s��t���d��S)N� overlappedTFr���)�_winapiZ WriteFiler4����ERROR_IO_PENDING�WaitForMultipleObjects�eventr���r����AssertionError�cancel�GetOverlappedResultrI���)r7���rK����ov�err�waitresZnwrittenr���r���r���rJ�����s����! zPipeConnection._send_bytesNc������� ������C���s~��|��j��r�d�|��_��t�j����S|�d��k�r.�d�n�t�|�d���}�y��t�j�|��j�|�d�d��\�}�}�z_�yC�|�t�j�k�r��t�j�|�j �g�d�t ���}�|�t�k�s��t���n��Wn�|�j �������Yn�XWd��|�j�d���\�}�}�|�d�k�rt�j����}�|�j�|�j������|�S|�t�j�k�r&|��j�|�|���SXWnC�t�k �rm}�z#�|�j�t�j�k�rXt���n����WYd��d��}�~�Xn�Xt�d�����d��S)NF����rk���Tr���z.shouldn't get here; expected KeyboardInterrupt)�_got_empty_message�io�BytesIO�minrl����ReadFiler4���rm���rn���ro���r���r���rp���rq���rr����writer]���ZERROR_MORE_DATA�_get_more_datar>����winerror�ERROR_BROKEN_PIPE�EOFError�RuntimeError) r7����maxsizeZbsizers���rt���ru���Znread�f�er���r���r���rT���&��s6���� ! zPipeConnection._recv_bytesc�������������C���s?���|��j��s%�t�j�|��j���d�d�k�r)�d�St�t�|��g�|�����S)Nr���T)rw���rl���� PeekNamedPiper4����boolr���)r7���r���r���r���r���r_���F��s���� zPipeConnection._pollc�������������C���s����|�j�����}�t�j����}�|�j�|���t�j�|��j���d�}�|�d�k�sM�t���|�d��k �r|�t�|���|�|�k�r|�|��j ����n��t�j �|��j�|�d�d��\�}�}�|�j�d���\�}�}�|�d�k�s��t���|�|�k�s��t���|�j�|�j�������|�S)Nr���r���rk���T)r]���rx���ry���r|���rl���r����r4���rp���rI���rC���r{���rr���)r7���rs���r����rK���r�����leftrt���Zrbytesr���r���r���r}���L��s���� " !zPipeConnection._get_more_data)rf���rg���rh����__doc__rw���rl����CloseHandler<���rJ���rT���r_���r}���r���r���r���r���rj�����s��� rj���c���������������@���s����e��Z�d��Z�d�Z�e�r?�e�j�d�d���Z�e�j�Z �e�j �Z�n$�e�j �d�d���Z�e�j�Z �e�j�Z�e �d�d���Z�e�d�d���Z�d �d ����Z�d�d�d ���Z�d�d����Z�d�S)� Connectionzo Connection class based on an arbitrary file descriptor (Unix only), or a socket handle (Windows). c�������������C���s���|�|��j����d��S)N)r4���)r7���r<���r���r���r���r<���c��s����zConnection._closec�������������C���s���|�|��j����d��S)N)r4���)r7���r<���r���r���r���r<���h��s����c�������������C���so���t��|���}�x\�y�|�|��j�|���}�Wn�t�k �r<�w�Yn�X|�|�8}�|�d�k�rW�Pn��|�|�d����}�q�Wd��S)Nr���)rI���r4����InterruptedError)r7���rK���r|���� remainingrO���r���r���r����_sendm��s���� zConnection._sendc�������������C���s����t��j����}�|��j�}�|�}�x��|�d�k�r��y�|�|�|���}�Wn�t�k �rT�w�Yn�Xt�|���}�|�d�k�r��|�|�k�r��t���q��t�d�����n��|�j�|���|�|�8}�q�W|�S)Nr���zgot end of file during message)rx���ry���r4���r����rI���r����r>���r|���)r7���rM����readrK���r8���r�����chunkrO���r���r���r����_recvy��s ���� zConnection._recvc�������������C���s����t��|���}�t�j�d�|���}�|�d�k�r9�|�|�g�}�n%�|�d�k�rU�|�|�g�}�n �|�g�}�x�|�D]�}�|��j�|���qe�Wd��S)Nz!ii�@��r���)rI����structZpackr����)r7���rK���rO����headerZchunksr����r���r���r���rJ������s���� zConnection._send_bytesNc�������������C���sS���|��j��d���}�t�j�d�|�j������\�}�|�d��k �rF�|�|�k�rF�d��S|��j��|���S)N����z!i)r����r����ZunpackrU���)r7���r����rK���rM���r���r���r���rT������s ����zConnection._recv_bytesc�������������C���s���t��|��g�|���}�t�|���S)N)r���r����)r7���r����rr���r���r���r_������s����zConnection._poll)rf���rg���rh���r����rl����_multiprocessingZclosesocketr<���rS���Z_writer^���Z_readr ���rB���r|���r����r����r����rJ���rT���r_���r���r���r���r���r����\��s��� r����c���������������@���s����e��Z�d��Z�d�Z�d�d�d�d�d�d���Z�d�d����Z�d�d ����Z�e�d �d������Z�e�d�d������Z �d �d����Z �d�d����Z�d�S)r���z� Returns a listener object. This is a wrapper for a bound socket which is 'listening' for connections, or for a Windows named pipe. Nr���c�������������C���s����|�p�|�r�t��|���p�t�}�|�p-�t�|���}�t�|���|�d�k�r[�t�|�|���|��_�n�t�|�|�|���|��_�|�d��k �r��t�|�t���r��t �d�����n��|�|��_ �d��S)Nr���zauthkey should be a byte string)r1����default_familyr&���r+����PipeListener� _listener�SocketListener� isinstancerH���� TypeError�_authkey)r7���r0���r%����backlog�authkeyr���r���r���r;������s���� zListener.__init__c�������������C���s]���|��j��d�k�r�t�d�����n��|��j��j����}�|��j�rY�t�|�|��j���t�|�|��j���n��|�S)zz Accept a connection on the bound socket or named pipe of `self`. Returns a `Connection` object. Nzlistener is closed)r����r>����acceptr�����deliver_challenge�answer_challenge)r7����cr���r���r���r�������s���� zListener.acceptc�������������C���s/���|��j��}�|�d�k �r+�d�|��_��|�j����n��d�S)zA Close the bound socket or named pipe of `self`. N)r����rB���)r7���Zlistenerr���r���r���rB������s���� zListener.closec�������������C���s ���|��j��j�S)N)r�����_address)r7���r���r���r����<lambda>���s����zListener.<lambda>c�������������C���s ���|��j��j�S)N)r�����_last_accepted)r7���r���r���r���r�������s����c�������������C���s���|��S)Nr���)r7���r���r���r���ra������s����zListener.__enter__c�������������C���s���|��j�����d��S)N)rB���)r7���rb���rc���rd���r���r���r���re������s����zListener.__exit__)rf���rg���rh���r����r;���r����rB���ri���r0���Z last_acceptedra���re���r���r���r���r���r������s��� c�������������C���s����|�p�t��|����}�t�|���|�d�k�r7�t�|����}�n�t�|����}�|�d�k �rn�t�|�t���rn�t�d�����n��|�d�k �r��t�|�|���t�|�|���n��|�S)z= Returns a connection to the address of a `Listener` r���Nzauthkey should be a byte string) r1���r+���� PipeClient�SocketClientr����rH���r����r����r����)r0���r%���r����r����r���r���r���r������s���� Tc�������������C���s����|��rY�t��j����\�}�}�|�j�d���|�j�d���t�|�j������}�t�|�j������}�n6�t�j����\�}�}�t�|�d�d��}�t�|�d�d��}�|�|�f�S)zL Returns pair of connection objects at either end of a pipe Tr:���Fr9���)r*���Z socketpair�setblockingr�����detachr ����pipe)�duplex�s1�s2�c1�c2Zfd1Zfd2r���r���r���r������s���� c������� ��� ���C���sS��t��d���}�|��r;�t�j�}�t�j�t�j�B}�t�t�}�}�n�t�j�}�t�j�}�d�t�}�}�t�j�|�|�t�j�Bt�j �Bt�j �t�j�Bt�j�Bd�|�|�t�j �t�j���}�t�j�|�|�d�t�j�t�j�t�j�t�j���}�t�j�|�t�j�d�d���t�j�|�d�d��}�|�j�d���\�} �} �| �d�k�s%t���t�|�d�|���}�t�|�d�|���}�|�|�f�S) zL Returns pair of connection objects at either end of a pipe r���r���r���Nrk���Tr:���r9���)r&���rl����PIPE_ACCESS_DUPLEX�GENERIC_READ� GENERIC_WRITE�BUFSIZEZPIPE_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�ConnectNamedPiperr���rp���rj���) r����r0���Zopenmode�accessZobsizeZibsizeZh1Zh2rk����_rt���r����r����r���r���r���r�����s4���� c���������������@���s=���e��Z�d��Z�d�Z�d�d�d���Z�d�d����Z�d�d����Z�d �S) r����zO Representation of a socket which is bound to an address and listening r���c�������������C���s ��t��j��t�t��|�����|��_�yt�t�j�d�k�rL�|��j�j�t��j�t��j�d���n��|��j�j�d���|��j�j �|���|��j�j �|���|��j�j����|��_�Wn"�t �k �r��|��j�j�������Yn�X|�|��_�d��|��_�|�d�k�r��t�j�|��t�j�d�|�f�d�d��|��_�n �d��|��_�d��S)N�posixr���Tr����args�exitpriorityr���)r*����getattr�_socketr ����nameZ setsockoptZ SOL_SOCKETZSO_REUSEADDRr����ZbindZlistenZgetsocknamer����r>���rB���Z_familyr����r����Finalize�unlink�_unlink)r7���r0���r%���r����r���r���r���r;���A��s$���� $zSocketListener.__init__c�������������C���sV���x6�y�|��j��j����\�}�|��_�Wn�t�k �r3�Yq�XPq�W|�j�d���t�|�j������S)NT)r����r����r����r����r����r����r����)r7����sr���r���r���r����Y��s���� zSocketListener.acceptc�������������C���sA���z�|��j��j����Wd��|��j�}�|�d��k �r<�d��|��_�|����n��Xd��S)N)r����rB���r����)r7���r����r���r���r���rB���d��s���� zSocketListener.closeN)rf���rg���rh���r����r;���r����rB���r���r���r���r���r����=��s���r����c���������� ���C���s[���t��|����}�t�j�t�t�|������1�}�|�j�d���|�j�|����t�|�j������SWd�QXd�S)zO Return a connection object connected to the socket given by `address` TN)r1���r*���r����r����Zconnectr����r����)r0���r%���r����r���r���r���r����n��s ���� r����c���������������@���sR���e��Z�d��Z�d�Z�d�d�d���Z�d�d�d���Z�d�d ����Z�e�d �d������Z�d�S)r����z0 Representation of a named pipe Nc�������������C���sq���|�|��_��|��j�d�d���g�|��_�d��|��_�t�j�d�|��j����t�j�|��t�j�d�|��j�|��j��f�d�d��|��_ �d��S)N�firstTz listener created with address=%rr����r����r���) r�����_new_handle� _handle_queuer����r���� sub_debugr����r�����_finalize_pipe_listenerrB���)r7���r0���r����r���r���r���r;������s���� zPipeListener.__init__Fc���������� ���C���se���t��j�t��j�B}�|�r&�|�t��j�O}�n��t��j�|��j�|�t��j�t��j�Bt��j�Bt��j �t �t �t��j�t��j���S)N) rl���r����r����r����r����r����r����r����r����ZPIPE_UNLIMITED_INSTANCESr����r����r����)r7���r�����flagsr���r���r���r�������s���� zPipeListener._new_handlec�������������C���s����|��j��j�|��j������|��j��j�d���}�y�t�j�|�d�d��}�Wn=�t�k �r��}�z�|�j�t�j�k�rn����n��WYd��d��}�~�Xnt�XzH�y�t�j �|�j �g�d�t���}�Wn"�|�j����t�j �|������Yn�XWd��|�j�d���\�}�}�|�d�k�s��t���Xt�|���S)Nr���rk���TF)r�����appendr�����poprl���r����r>���r~���Z ERROR_NO_DATArn���ro���r���rq���r����rr���rp���rj���)r7���r8���rs���r�����resr����rt���r���r���r���r�������s"���� zPipeListener.acceptc�������������C���s2���t��j�d�|���x�|��D]�}�t�j�|���q�Wd��S)Nz closing listener with address=%r)r���r����rl���r����)Zqueuer0���r8���r���r���r���r�������s���� z$PipeListener._finalize_pipe_listener) rf���rg���rh���r����r;���r����r�����staticmethodr����r���r���r���r���r����~��s ���r����c�������������C���s����t�����}�x��yK�t�j�|��d���t�j�|��t�j�t�j�Bd�t�j�t�j�t�j�t�j���}�WnR�t �k �r��}�z2�|�j �t�j�t�j�f�k�s��t �|���r�����n��WYd�d�}�~�Xq�XPq�W���t�j�|�t�j�d�d���t�|���S)zU Return a connection object connected to the pipe given by `address` i���r���N)r���rl���Z WaitNamedPiper����r����r����r����r����r����r>���r~���ZERROR_SEM_TIMEOUTZERROR_PIPE_BUSYr���r����r����rj���)r0���r����hr����r���r���r���r�������s"���� r��������s���#CHALLENGE#s ���#WELCOME#s ���#FAILURE#c�������������C���s����d�d��l��}�t�|�t���s!�t���t�j�t���}�|��j�t�|���|�j �|�|�d���j ����}�|��j�d���}�|�|�k�r��|��j�t���n�|��j�t ���t�d�����d��S)Nr����md5����zdigest received was wrong)�hmacr����rH���rp���r ����urandom�MESSAGE_LENGTHrP���� CHALLENGE�new�digestrV����WELCOME�FAILUREr ���)� connectionr����r�����messager�����responser���r���r���r�������s���� r����c�������������C���s����d�d��l��}�t�|�t���s!�t���|��j�d���}�|�d��t�t�����t�k�s\�t�d�|�����|�t�t���d����}�|�j�|�|�d���j����}�|��j �|���|��j�d���}�|�t �k�r��t�d�����n��d��S)Nr���r����zmessage = %rr����zdigest sent was rejected)r����r����rH���rp���rV���rI���r����r����r����rP���r����r ���)r����r����r����r����r����r����r���r���r���r�������s����, r����c���������������@���s4���e��Z�d��Z�d�d����Z�d�d����Z�d�d����Z�d�S)�ConnectionWrapperc�������������C���sO���|�|��_��|�|��_�|�|��_�x-�d�D]%�}�t�|�|���}�t�|��|�|���q"�Wd��S)NrE���rB���r`���rV���rP���)zfilenozclosezpollz recv_bytesz send_bytes)�_conn�_dumps�_loadsr�����setattr)r7����connrQ���r\����attrrR���r���r���r���r;������s���� zConnectionWrapper.__init__c�������������C���s#���|��j��|���}�|��j�j�|���d��S)N)r����r����rP���)r7���rR���r����r���r���r���rS������s����zConnectionWrapper.sendc�������������C���s���|��j��j����}�|��j�|���S)N)r����rV���r����)r7���r����r���r���r���r^�����s����zConnectionWrapper.recvN)rf���rg���rh���r;���rS���r^���r���r���r���r���r�������s���r����c�������������C���s%���t��j�|��f�d��d��d��d���j�d���S)Nr���zutf-8)� xmlrpclibrQ����encode)rR���r���r���r���� _xml_dumps��s����r����c�������������C���s%���t��j�|��j�d�����\�\�}�}�|�S)Nzutf-8)r����r\����decode)r����rR����methodr���r���r���� _xml_loads ��s����!r����c���������������@���s���e��Z�d��Z�d�d����Z�d�S)�XmlListenerc�������������C���s.���d�d��l��j�a�t�j�|����}�t�|�t�t���S)Nr���)� xmlrpc.client�clientr����r���r����r����r����r����)r7���rR���r���r���r���r������s����zXmlListener.acceptN)rf���rg���rh���r����r���r���r���r���r������s���r����c��������������O���s(���d�d��l��j�a�t�t�|��|����t�t���S)Nr���)r����r����r����r����r���r����r����)r�����kwdsr���r���r���� XmlClient��s����r����c�������������C���s����t��|����}�g��}�x��|�r��t�j�|�d�|���}�|�t�k�r@�Pnr�t�|�k�oa�t�t�|���k��n�rs�|�t�8}�n?�t�|�k�o��t�t�|���k��n�r��|�t�8}�n�t�d�����|�j�|�|���|�|�d�d����}�d�}�q�W|�S)NFzShould not get herer���r���) �listrl���rn���r���r���rI���r ���r����r����)Zhandlesr����L�readyr����r���r���r����_exhaustive_wait ��s���� & & r����c������� ���.������s��|�d�k�r�t��}�n)�|�d�k��r*�d�}�n�t�|�d�d���}�t�|����}��i����g��}�t�������t����}�z�x�|��D]z}�y�t�|�d���}�Wn"�t�k �r��|���|�j����<Yqr�Xy"�t�j�|����d�d���\�}�}�WnG�t �k �r}�z'�d�|�j �}�}�|�t�k�r ���n��WYd�d�}�~�Xn�X|�t�j�k�rH|�j �|���|���|�j�<qr�|�r�t�j����d�d���d�k�r�y�|�j�d ���\�} �}�Wn.�t �k �r�}�z�|�j �}�WYd�d�}�~�Xn�X|�r�t�|�d ���r�d�|�_�q�n�����j�|���d�}�qr�Wt���j����|���}�Wd�x�|�D]�}�|�j����qWx��|�D]��}�y�|�j�d���\�} �}�Wn@�t �k �r�}�z �|�j �}�|�t�k�rz���n��WYd�d�}�~�Xn�X|�t�j�k�r+��|�j�}����j�|���|�d�k�r�t�|�d ���r�d�|�_�q�q�q+q+WX���j���f�d�d����|�D�������f�d �d����|��D��S)z� Wait till an object in object_list is ready/readable. Returns list of those objects in object_list which are ready/readable. Nr���i���g�������?rE���T��������Frw���c�������������3���s���|��]�}����|�Vq�d��S)Nr���)�.0r����)�waithandle_to_objr���r���� <genexpr>���s����zwait.<locals>.<genexpr>c����������������s"���g��|��]�}�|����k�r�|���q�Sr���r���)r�����o)� ready_objectsr���r���� <listcomp>���s��� �zwait.<locals>.<listcomp>)r����r����)r����intr�����setr�����AttributeErrorr3���rl���r{���r>���r~���� _ready_errorsrm���r����ro���r'���Zgetwindowsversionrr���r)���rw����addr�����keysrq���ZERROR_OPERATION_ABORTED�update) �object_listr���Zov_listZ ready_handlesr���rE���rs���rt���r����r����r���)r��r����r���r���6��sh���� " " �PollSelectorc�������������C���s����t��������}�x!�|��D]�}�|�j�|�t�j���q�W|�d�k �rO�t�j����|�}�n��xY�|�j�|���}�|�rx�d�d����|�D��S|�d�k �rR�|�t�j����}�|�d�k��r��|�SqR�qR�WWd�QXd�S)z� Wait till an object in object_list is ready/readable. Returns list of those objects in object_list which are ready/readable. Nc�������������S���s���g��|��]�\�}�}�|�j����q�Sr���)Zfileobj)r�����keyZeventsr���r���r���r�����s��� �zwait.<locals>.<listcomp>r���)� _WaitSelector�register� selectorsZ EVENT_READr���Zselect)r ��r���ZselectorrR���Zdeadliner����r���r���r���r������s���� c�������������C���sl���|��j�����}�t�j�|�t�j�t�j����?�}�d�d�l�m�}�|�j�|���}�t�|�|��j �|��j �f�f�SWd��QXd��S)Nr���)�resource_sharer)rE���r*���Zfromfdr���ZSOCK_STREAMr���r��Z DupSocket�rebuild_connectionr9���r:���)r����r8���r����r���dsr���r���r����reduce_connection���s ����r��c�������������C���s"���|��j�����}�t�|�j�����|�|���S)N)r����r����)r��r9���r:���Zsockr���r���r���r�����s����r��c�������������C���s_���|��j��r�t�j�n�d�|��j�r'�t�j�n�d�B}�t�j�|��j����|���}�t�|�|��j��|��j�f�f�S)Nr���) r9���rl���ZFILE_GENERIC_READr:���ZFILE_GENERIC_WRITEr���Z DupHandlerE����rebuild_pipe_connection)r����r�����dhr���r���r����reduce_pipe_connection���s����r��c�������������C���s���|��j�����}�t�|�|�|���S)N)r����rj���)r��r9���r:���r8���r���r���r���r�����s����r��c�������������C���s.���t��j�|��j������}�t�|�|��j�|��j�f�f�S)N)r���ZDupFdrE���r��r9���r:���)r�����dfr���r���r���r�����s����c�������������C���s���|��j�����}�t�|�|�|���S)N)r����r����)r��r9���r:����fdr���r���r���r�����s����)G�__all__rx���r ���r'���r*���r����r���r���� itertoolsr����r���r���r���r ���r ���r���rl���r���r ���r���r����ImportErrorr(���r����ZCONNECTION_TIMEOUT�countr#���r����Zfamiliesr)���r���r���r&���r+���r1���r2���rj���r�����objectr���r���r���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r���ZERROR_NETNAME_DELETEDr��r���r��r��r ��ZSelectSelectorr��r��r��r��r��r���r���r���r����<module> ���s����& �PS8,18 P