Edit File: connection.pyo
� ��7ec�����������@���s���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 �m �Z �m�Z�d�d�l�m �Z �m�Z�m�Z�m�Z�d�d�l�m�Z�m�Z�d�Z�d �Z�d �Z�e�j����Z�d�Z�d�g�Z�e�e�d���rd�Z�e�d�g�7Z�n��e�j�d �k�r4d�Z�e�d�g�7Z�n��e�d���Z�d����Z�d����Z�d����Z �d�e!�f�d�������YZ"�d�d�d���Z$�e�j�d �k�r�e%�d���Z&�n�d�d�l�m'�Z'�e%�d���Z&�d�e!�f�d�������YZ(�d����Z)�e�j�d �k�r d�e!�f�d�������YZ*�d����Z+�n��d�Z,�d�Z-�d �Z.�d!�Z/�d"����Z0�d#����Z1�d$����Z2�d%�e!�f�d&�������YZ3�d'����Z4�d(����Z5�d)�e"�f�d*�������YZ6�d+����Z7�d�S(,���t���Clientt���Listenert���Pipei����N(���t���current_processt���AuthenticationError(���t���get_temp_dirt���Finalizet ���sub_debugt���debug(���t ���duplicatet���closei� ��g������4@t���sha256t���AF_INETt���AF_UNIXt���win32t���AF_PIPEc���������C���s���t��j�����|��S(���N(���t���time(���t���timeout(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt ���_init_timeoutM���s����c���������C���s���t��j�����|��k�S(���N(���R���(���t���t(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���_check_timeoutP���s����c���������C���s}���|��d�k�r�d �S|��d�k�r5�t��j�d�d�d�t������S|��d�k�rm�t��j�d�d �t�j����t�j����f�d�d ���St�d�����d�S(���s?��� Return an arbitrary free address for the given family R���t ���localhosti����R ���t���prefixs ���listener-t���dirR���s���\\.\pipe\pyc-%d-%d-t����s���unrecognized familyN(���R���i����(���t���tempfilet���mktempR���t���ost���getpidt ���_mmap_countert���nextt ���ValueError(���t���family(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���arbitrary_addressW���s���� 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(���s]��� Return the types of the address This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE' R���s���\\R���R ���s���address type of %r unrecognizedN(���t���typet���tuplet���strt ���startswithR���(���t���address(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���address_typef���s����!c�����������B���sS���e��Z�d��Z�d�d�d�d�d���Z�d����Z�d����Z�e�d������Z�e�d������Z �RS(���s���� Returns a listener object. This is a wrapper for a bound socket which is 'listening' for connections, or for a Windows named pipe. i���c���������C���s����|�p�|�r�t��|���p�t�}�|�p-�t�|���}�|�d�k�rQ�t�|�|���|��_�n�t�|�|�|���|��_�|�d��k �r��t�|�t���r��t �d���n��|�|��_ �d��S(���NR���s���authkey should be a byte string(���R'���t���default_familyR!���t���PipeListenert ���_listenert���SocketListenert���Nonet ���isinstancet���bytest ���TypeErrort���_authkey(���t���selfR&���R ���t���backlogt���authkey(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���__init__����s����c���������C���s?���|��j��j����}�|��j�r;�t�|�|��j���t�|�|��j���n��|�S(���sz��� Accept a connection on the bound socket or named pipe of `self`. Returns a `Connection` object. (���R*���t���acceptR0���t���deliver_challenget���answer_challenge(���R1���t���c(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR5�������s ���� c���������C���s ���|��j��j����S(���sA��� Close the bound socket or named pipe of `self`. (���R*���R ���(���R1���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR �������s����c���������C���s ���|��j��j�S(���N(���R*���t���_address(���R1���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���<lambda>����R���c���������C���s ���|��j��j�S(���N(���R*���t���_last_accepted(���R1���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR:�������R���N( ���t���__name__t ���__module__t���__doc__R,���R4���R5���R ���t���propertyR&���t ���last_accepted(����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR���y���s��� c���������C���s����|�p�t��|����}�|�d�k�r-�t�|����}�n�t�|����}�|�d�k �ra�t�|�t���ra�t�d���n��|�d�k �r��t�|�|���t�|�|���n��|�S(���s=��� Returns a connection to the address of a `Listener` R���s���authkey should be a byte stringN( ���R'���t ���PipeClientt���SocketClientR,���R-���R.���R/���R7���R6���(���R&���R ���R3���R8���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR��������s���� c���������C���s����|��r��t��j����\�}�}�|�j�t���|�j�t���t�j�t�j�|�j��������}�t�j�t�j�|�j��������}�|�j ����|�j ����n<�t�j ����\�}�}�t�j�|�d�t��}�t�j�|�d�t��}�|�|�f�S(���sL��� Returns pair of connection objects at either end of a pipe t���writablet���readable(���t���sockett ���socketpairt���setblockingt���Truet���_multiprocessingt ���ConnectionR���t���dupt���filenoR ���t���pipet���False(���t���duplext���s1t���s2t���c1t���c2t���fd1t���fd2(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR�������s���� (���R���c������ ���C���sU��t��d���}�|��r;�t�j�}�t�j�t�j�B}�t�t�}�}�n�t�j�}�t�j�}�d�t�}�}�t�j�|�|�t�j�t�j �Bt�j �Bd�|�|�t�j�t�j���}�t�j �|�|�d�t�j�t�j�d�t�j���}�t�j�|�t�j �d�d���y�t�j�|�t�j���Wn/�t�k �r }�|�j�d�t�j�k�r!���q!n�Xt�j�|�d�|���} �t�j�|�d�|���} �| �| �f�S(���sL��� Returns pair of connection objects at either end of a pipe R���i����i���RC���RD���N(���R!���R���t���PIPE_ACCESS_DUPLEXt���GENERIC_READt ���GENERIC_WRITEt���BUFSIZEt���PIPE_ACCESS_INBOUNDt���CreateNamedPipet���PIPE_TYPE_MESSAGEt���PIPE_READMODE_MESSAGEt ���PIPE_WAITt���NMPWAIT_WAIT_FOREVERt���NULLt ���CreateFilet ���OPEN_EXISTINGt���SetNamedPipeHandleStateR,���t���ConnectNamedPipet���WindowsErrort���argst���ERROR_PIPE_CONNECTEDRI���t���PipeConnection(���RO���R&���t���openmodet���accesst���obsizet���ibsizet���h1t���h2t���eRR���RS���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR�������s2���� $ R+���c�����������B���s,���e��Z�d��Z�d�d���Z�d����Z�d����Z�RS(���sO��� Representation of a socket which is bound to an address and listening i���c���������C���s����t��j��t�t��|�����|��_�yb�|��j�j�t��j�t��j�d���|��j�j�t���|��j�j�|���|��j�j �|���|��j�j ����|��_�Wn$�t��j�k �r��|��j�j �������n�X|�|��_�d��|��_�|�d�k�r��t�|��t�j�d�|�f�d�d��|��_�n �d��|��_�d��S(���Ni���R ���Rf���t���exitpriorityi����(���RE���t���getattrt���_sockett ���setsockoptt ���SOL_SOCKETt���SO_REUSEADDRRG���RH���t���bindt���listent���getsocknameR9���t���errorR ���t���_familyR,���R;���R���R���t���unlinkt���_unlink(���R1���R&���R ���R2���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR4�������s ���� $c���������C���s����x\�t��r^�y�|��j�j����\�}�|��_�Wn2�t�j�k �rY�}�|�j�d�t�j�k�r[����q[�q�XPq�W|�j �t����t �|�j������}�t�j �|���}�|�j����|�S(���Ni����(���RH���Rr���R5���R;���RE���Ry���Rf���t���errnot���EINTRRG���R ���RL���RI���RJ���R ���(���R1���t���sRo���t���fdt���conn(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR5�����s���� c���������C���sA���z�|��j��j����Wd��|��j�}�|�d��k �r<�d��|��_�|����n��Xd��S(���N(���Rr���R ���R|���R,���(���R1���R{���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR ���#��s���� (���R<���R=���R>���R4���R5���R ���(����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR+�������s��� c���������C���s����t��t�t�|������}�t����}�x��t�j�|���}�|�j�t���y�|�j�|����Wnb�t�j�k �r��}�|�j����|�j �d�t �j�k�s��t�|���r��t �d�|�������n��t�j�d���q!�XPq!�W���t�|�j������}�t�j�|���}�|�j����|�S(���sO��� Return a connection object connected to the socket given by `address` i����s���failed to connect to address %sg{�G�z�?(���Rq���RE���R'���R���RG���RH���t���connectRy���R ���Rf���R}���t���ECONNREFUSEDR���R���R���t���sleepR ���RL���RI���RJ���(���R&���R ���R���R���Ro���R����R����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyRB���-��s&���� " R)���c�����������B���s2���e��Z�d��Z�d�d���Z�d����Z�e�d������Z�RS(���s0��� Representation of a named pipe c������ ���C���s����|�|��_��t�j�|�t�j�t�j�t�j�Bt�j�Bt�j�t�t�t�j �t�j ���}�|�g�|��_�d��|��_ �t�d�|��j����t�|��t�j�d�|��j�|��j��f�d�d��|��_�d��S(���Ns ���listener created with address=%rRf���Rp���i����(���R9���R���R[���RV���R\���R]���R^���t���PIPE_UNLIMITED_INSTANCESRY���R_���R`���t ���_handle_queueR,���R;���R���R���R)���t���_finalize_pipe_listenerR ���(���R1���R&���R2���t���handle(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR4���S��s���� c������ ���C���s����t��j�|��j�t��j�t��j�t��j�Bt��j�Bt��j�t�t�t��j �t��j ���}�|��j�j�|���|��j�j �d���}�y�t��j�|�t��j ���Wn8�t�k �r��}�|�j�d�t��j�t��j�f�k�r�����q��n�Xt�j�|���S(���Ni����(���R���R[���R9���RV���R\���R]���R^���R����RY���R_���R`���R����t���appendt���popRd���Re���Rf���Rg���t ���ERROR_NO_DATARI���Rh���(���R1���t ���newhandleR����Ro���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR5���f��s���� c���������C���s,���t��d�|���x�|��D]�}�t�|���q�Wd��S(���Ns ���closing listener with address=%r(���R���R ���(���t���queueR&���R����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR����z��s���� N(���R<���R=���R>���R,���R4���R5���t���staticmethodR����(����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR)���O��s��� c���������C���s����t�����}�x��yH�t�j�|��d���t�j�|��t�j�t�j�Bd�t�j�t�j�d�t�j���}�WnD�t�k �r��}�|�j �d�t�j �t�j�f�k�s��t�|���r�����q��q�XPq�W���t�j �|�t�j�d�d���t�j�|���S(���sU��� Return a connection object connected to the pipe given by `address` i���i����N(���R���R���t ���WaitNamedPipeRa���RW���RX���R`���Rb���Re���Rf���t���ERROR_SEM_TIMEOUTt���ERROR_PIPE_BUSYR���Rc���R]���R,���RI���Rh���(���R&���R���t���hRo���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyRA������s ���� " i���s���#CHALLENGE#s ���#WELCOME#s ���#FAILURE#c����������C���s���d�d��l��}��t�|��t���S(���Ni����(���t���hashlibRq���t���HMAC_DIGEST_NAME(���R����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���get_digestmod_for_hmac���s����c���������C���s����d�d��l��}�t�j�t���}�|��j�t�|���|�j�|�|�t������j����}�|��j �d���}�|�|�k�ru�|��j�t ���n�|��j�t���t�d�����d��S(���Ni����i���s���digest received was wrong( ���t���hmacR���t���urandomt���MESSAGE_LENGTHt ���send_bytest ���CHALLENGEt���newR����t���digestt ���recv_bytest���WELCOMEt���FAILURER���(���t ���connectionR3���R����t���messageR����t���response(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR6������s���� c���������C���s����d�d��l��}�|��j�d���}�|�t�t���}�|�j�|�|�t������j����}�|��j�|���|��j�d���}�|�t�k�r��t �d�����n��d��S(���Ni����i���s���digest sent was rejected( ���R����R����t���lenR����R����R����R����R����R����R���(���R����R3���R����R����R����R����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR7������s���� t���ConnectionWrapperc�����������B���s#���e��Z�d�����Z�d����Z�d����Z�RS(���c���������C���sO���|�|��_��|�|��_�|�|��_�x-�d�D]%�}�t�|�|���}�t�|��|�|���q"�Wd��S(���NRL���R ���t���pollR����R����(���RL���R ���R����R����R����(���t���_connt���_dumpst���_loadsRq���t���setattr(���R1���R����t���dumpst���loadst���attrt���obj(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR4������s���� c���������C���s#���|��j��|���}�|��j�j�|���d��S(���N(���R����R����R����(���R1���R����R���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���send���s����c���������C���s���|��j��j����}�|��j�|���S(���N(���R����R����R����(���R1���R���(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���recv���s����(���R<���R=���R4���R����R����(����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR�������s��� c���������C���s���t��j�|��f�d��d��d��d���S(���Ni���(���t ���xmlrpclibR����R,���(���R����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt ���_xml_dumps���s����c���������C���s���t��j�|����\�\�}�}�|�S(���N(���R����R����(���R���R����t���method(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt ���_xml_loads���s����t���XmlListenerc�����������B���s���e��Z�d�����Z�RS(���c���������C���s+���d�d��l��a��t�j�|����}�t�|�t�t���S(���Ni����(���R����R���R5���R����R����R����(���R1���R����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR5������s����(���R<���R=���R5���(����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyR�������s���c����������O���s%���d�d��l��a��t�t�|��|����t�t���S(���Ni����(���R����R����R����R����R����(���Rf���t���kwds(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt ���XmlClient���s����(8���t���__all__R���t���sysRE���R}���R���R���t ���itertoolsRI���t���multiprocessingR���R���t���multiprocessing.utilR���R���R���R���t���multiprocessing.forkingR ���R ���RY���t���CONNECTION_TIMEOUTR����t���countR���R(���t���familiest���hasattrt���platformR���R���R!���R'���t���objectR���R,���R����RH���R���R���R+���RB���R)���RA���R����R����R����R����R����R6���R7���R����R����R����R����R����(����(����(����s2���/usr/lib64/python2.7/multiprocessing/connection.pyt���<module>#���sd���" ,*2 1