Ñò §ÚêLc@sdddgZddkZddkZddkZddkZddkZddkZddkZddkZddk l Z l Z ddk l Z lZlZlZddklZlZdZd ZeiƒZd Zd gZeed ƒod Zed g7Zneid jod Zed g7Zned„Zd„Zd„Zd„Zde fd„ƒYZ!ddd„Z#eid joe$d„Z%nddkl&Z&e$d„Z%de fd„ƒYZ'd„Z(eid jo#de fd„ƒYZ)d„Z*ndZ+dZ,dZ-d Z.d!„Z/d"„Z0d#e fd$„ƒYZ1d%„Z2d&„Z3d'e!fd(„ƒYZ4d)„Z5dS(*tClienttListenertPipeiÿÿÿÿN(tcurrent_processtAuthenticationError(t get_temp_dirtFinalizet sub_debugtdebug(t duplicatetclosei g4@tAF_INETtAF_UNIXtwin32tAF_PIPEcCstiƒ|S(N(ttime(ttimeout((s2/usr/lib64/python2.6/multiprocessing/connection.pyt _init_timeout/scCstiƒ|jS(N(R(tt((s2/usr/lib64/python2.6/multiprocessing/connection.pyt_check_timeout2scCs}|djod S|djotidddtƒƒS|djo'tidd tiƒtiƒfƒStd ƒ‚d S( s? Return an arbitrary free address for the given family R t localhostiR tprefixs listener-tdirRs\\.\pipe\pyc-%d-%d-sunrecognized familyN(Ri(ttempfiletmktempRtostgetpidt _mmap_countertnextt ValueError(tfamily((s2/usr/lib64/python2.6/multiprocessing/connection.pytarbitrary_address9s    cCslt|ƒtjodSt|ƒtjo|idƒodSt|ƒtjodStd|ƒ‚dS(s] Return the types of the address This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE' R s\\RR saddress type of %r unrecognizedN(ttypettupletstrt startswithR(taddress((s2/usr/lib64/python2.6/multiprocessing/connection.pyt address_typeHs#cBsSeZdZddddd„Zd„Zd„Zed„ƒZed„ƒ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. icCs¤|p|o t|ƒpt}|p t|ƒ}|djot||ƒ|_nt|||ƒ|_|dj ot|tƒ o t d‚n||_ dS(NRsauthkey should be a byte string( R%tdefault_familyRt PipeListenert _listenertSocketListenertNonet isinstancetbytest TypeErrort_authkey(tselfR$Rtbacklogtauthkey((s2/usr/lib64/python2.6/multiprocessing/connection.pyt__init__bs  cCsA|iiƒ}|io$t||iƒt||iƒn|S(sz Accept a connection on the bound socket or named pipe of `self`. Returns a `Connection` object. (R(tacceptR.tdeliver_challengetanswer_challenge(R/tc((s2/usr/lib64/python2.6/multiprocessing/connection.pyR3qs  cCs |iiƒS(sA Close the bound socket or named pipe of `self`. (R(R (R/((s2/usr/lib64/python2.6/multiprocessing/connection.pyR }scCs |iiS((R(t_address(R/((s2/usr/lib64/python2.6/multiprocessing/connection.pytƒscCs |iiS((R(t_last_accepted(R/((s2/usr/lib64/python2.6/multiprocessing/connection.pyR8„sN( t__name__t __module__t__doc__R*R2R3R tpropertyR$t last_accepted(((s2/usr/lib64/python2.6/multiprocessing/connection.pyR[s  cCs–|p t|ƒ}|djot|ƒ}n t|ƒ}|dj ot|tƒ o td‚n|dj ot||ƒt||ƒn|S(s= Returns a connection to the address of a `Listener` Rsauthkey should be a byte stringN( R%t PipeClientt SocketClientR*R+R,R-R5R4(R$RR1R6((s2/usr/lib64/python2.6/multiprocessing/connection.pyR‡s     cCs³|oftiƒ\}}titi|iƒƒƒ}titi|iƒƒƒ}|iƒ|iƒn=tiƒ\}}ti|dt ƒ}ti|dt ƒ}||fS(sL Returns pair of connection objects at either end of a pipe twritabletreadable( tsockett socketpairt_multiprocessingt ConnectionRtduptfilenoR tpipetFalse(tduplexts1ts2tc1tc2tfd1tfd2((s2/usr/lib64/python2.6/multiprocessing/connection.pyRs (R c Cs[tdƒ}|o*ti}titiB}tt}}n ti}ti}dt}}ti||titi Bti Bd||ti ti ƒ}ti ||dti tidti ƒ}ti|ti ddƒyti|ti ƒWn3tj o'}|idtijo‚q'nXti|d|ƒ} ti|d|ƒ} | | fS(sL Returns pair of connection objects at either end of a pipe RiiRARBN(RR tPIPE_ACCESS_DUPLEXt GENERIC_READt GENERIC_WRITEtBUFSIZEtPIPE_ACCESS_INBOUNDtCreateNamedPipetPIPE_TYPE_MESSAGEtPIPE_READMODE_MESSAGEt PIPE_WAITtNMPWAIT_WAIT_FOREVERtNULLt CreateFilet OPEN_EXISTINGtSetNamedPipeHandleStateR*tConnectNamedPipet WindowsErrortargstERROR_PIPE_CONNECTEDREtPipeConnection( RKR$topenmodetaccesstobsizetibsizeth1th2teRNRO((s2/usr/lib64/python2.6/multiprocessing/connection.pyR²s2      $ R)cBs,eZdZdd„Zd„Zd„ZRS(sO Representation of a socket which is bound to an address and listening icCs½titt|ƒƒ|_|iititidƒ|ii|ƒ|ii|ƒ|iiƒ|_ ||_ d|_ |djo(t |tid|fddƒ|_n d|_dS(NiR Rbt exitpriorityi(RCtgetattrt_sockett setsockoptt SOL_SOCKETt SO_REUSEADDRtbindtlistent getsocknameR7t_familyR*R9RRtunlinkt_unlink(R/R$RR0((s2/usr/lib64/python2.6/multiprocessing/connection.pyR2às   %cCs”xbtoZy|iiƒ\}|_Wn6tij o'}|idtijo‚q`qXPqWt |i ƒƒ}t i |ƒ}|i ƒ|S(Ni(tTrueRnR3R9RCterrorRbterrnotEINTRR RHRERFR (R/tsRktfdtconn((s2/usr/lib64/python2.6/multiprocessing/connection.pyR3ðs  cCs/|iiƒ|idj o|iƒndS(N(RnR RwR*(R/((s2/usr/lib64/python2.6/multiprocessing/connection.pyR þs (R:R;R<R2R3R (((s2/usr/lib64/python2.6/multiprocessing/connection.pyR)Üs  cCs×t|ƒ}titt|ƒƒ}tƒ}xxy|i|ƒWn]tij oN}|idtijp t |ƒot d|ƒ‚nt i dƒq0XPq0‚t |iƒƒ}ti|ƒ}|iƒ|S(sO Return a connection object connected to the socket given by `address` isfailed to connect to address %sg{®Gáz„?(R%RCRmRtconnectRyRbRzt ECONNREFUSEDRRRtsleepR RHRERFR (R$RR|RRkR}R~((s2/usr/lib64/python2.6/multiprocessing/connection.pyR@s"  $  R'cBs2eZdZdd„Zd„Zed„ƒZRS(s0 Representation of a named pipe c Cs ||_ti|tititiBtiBtittti ti ƒ}|g|_ d|_ td|iƒt|tid|i |ifddƒ|_dS(Ns listener created with address=%rRbRli(R7R RWRRRXRYRZtPIPE_UNLIMITED_INSTANCESRUR[R\t _handle_queueR*R9RRR't_finalize_pipe_listenerR (R/R$R0thandle((s2/usr/lib64/python2.6/multiprocessing/connection.pyR2(s       c CsÀti|itititiBtiBtittti ti ƒ}|i i |ƒ|i i dƒ}yti|ti ƒWn3tj o'}|idtijo‚q³nXti|ƒS(Ni(R RWR7RRRXRYRZR‚RUR[R\RƒtappendtpopR`RaRbRcRERd(R/t newhandleR…Rk((s2/usr/lib64/python2.6/multiprocessing/connection.pyR3;s    cCs,td|ƒx|D]}t|ƒqWdS(Ns closing listener with address=%r(RR (tqueueR$R…((s2/usr/lib64/python2.6/multiprocessing/connection.pyR„Ls N(R:R;R<R*R2R3t staticmethodR„(((s2/usr/lib64/python2.6/multiprocessing/connection.pyR'$s  c CsÍtƒ}x›yHti|dƒti|titiBdtitidtiƒ}WnItj o=}|i dti ti fjp t |ƒo‚q¡q XPq ‚ti |tiddƒti|ƒS(sU Return a connection object connected to the pipe given by `address` ièiN(RR t WaitNamedPipeR]RSRTR\R^RaRbtERROR_SEM_TIMEOUTtERROR_PIPE_BUSYRR_RYR*RERd(R$RthRk((s2/usr/lib64/python2.6/multiprocessing/connection.pyR?Rs  " is #CHALLENGE#s #WELCOME#s #FAILURE#cCs¥ddk}t|tƒpt‚titƒ}|it|ƒ|i ||ƒi ƒ}|i dƒ}||jo|it ƒn|it ƒtdƒ‚dS(Niÿÿÿÿisdigest received was wrong(thmacR+R,tAssertionErrorRturandomtMESSAGE_LENGTHt send_bytest CHALLENGEtnewtdigestt recv_bytestWELCOMEtFAILURER(t connectionR1RtmessageR–tresponse((s2/usr/lib64/python2.6/multiprocessing/connection.pyR4vs   cCs¼ddk}t|tƒpt‚|idƒ}|ttƒ tjptd|‚|ttƒ}|i||ƒiƒ}|i |ƒ|idƒ}|t jot dƒ‚ndS(Niÿÿÿÿis message = %rsdigest sent was rejected( RR+R,RR—tlenR”R•R–R“R˜R(RšR1RR›R–Rœ((s2/usr/lib64/python2.6/multiprocessing/connection.pyR5ƒs %  tConnectionWrappercBs#eZd„Zd„Zd„ZRS(cCsO||_||_||_x-dD]%}t||ƒ}t|||ƒq"WdS(NRHR tpollR—R“(sfilenoscloseRŸs recv_bytess send_bytes(t_connt_dumpst_loadsRmtsetattr(R/R~tdumpstloadstattrtobj((s2/usr/lib64/python2.6/multiprocessing/connection.pyR2”s   cCs#|i|ƒ}|ii|ƒdS(N(R¡R R“(R/R§R|((s2/usr/lib64/python2.6/multiprocessing/connection.pytsend›scCs|iiƒ}|i|ƒS(N(R R—R¢(R/R|((s2/usr/lib64/python2.6/multiprocessing/connection.pytrecvžs(R:R;R2R¨R©(((s2/usr/lib64/python2.6/multiprocessing/connection.pyRž“s  cCs%ti|fddddƒidƒS(Nitutf8(t xmlrpclibR¤R*tencode(R§((s2/usr/lib64/python2.6/multiprocessing/connection.pyt _xml_dumps¢scCs%ti|idƒƒ\\}}|S(NRª(R«R¥tdecode(R|R§tmethod((s2/usr/lib64/python2.6/multiprocessing/connection.pyt _xml_loads¥s!t XmlListenercBseZd„ZRS(cCs+ddkati|ƒ}t|ttƒS(Niÿÿÿÿ(R«RR3RžR­R°(R/R§((s2/usr/lib64/python2.6/multiprocessing/connection.pyR3ªs (R:R;R3(((s2/usr/lib64/python2.6/multiprocessing/connection.pyR±©scOs%ddkatt||ŽttƒS(Niÿÿÿÿ(R«RžRR­R°(Rbtkwds((s2/usr/lib64/python2.6/multiprocessing/connection.pyt XmlClient°s (6t__all__RtsysRCRzRRt itertoolsREtmultiprocessingRRtmultiprocessing.utilRRRRtmultiprocessing.forkingR R RUtCONNECTION_TIMEOUTtcountRR&tfamiliesthasattrtplatformRRRR%tobjectRR*RRxRR R)R@R'R?R’R”R˜R™R4R5RžR­R°R±R³(((s2/usr/lib64/python2.6/multiprocessing/connection.pyt s`        "      , *( .