-ν Ϋ„?csNdZdkZdkZy dkZWnej odkZnXdkZdkZdkZdk Z dk l Z dk l Z lZdklZdkZhdei<dei<deii') and the string itself. The receiver passes the original string to message_input(). This layer also supports an optional message authentication code (MAC). If a session key is present, it uses HMAC-SHA-1 to generate a 20-byte MAC. If a MAC is present, the high-order bit of the length is set to 1 and the MAC immediately follows the length. N(s StringType(slogs short_repr(sDisconnectedErrorii`κlsSizedMessageAsyncConnectioncs•tZeiiZeiiZdZe Z e e d„Zd„Z d„Z d„Z d„Zd„Zd„Zd „Zd „Zd „Zd „ZRS( Nics»||_|tj o ||_nt|dƒ o t|_ntiƒ|_ t|_ d|_ d|_ d|_ tiƒ|_g|_d|_t|_t|_|i||ƒdS(Ns_debugii(saddrsselfsdebugsNones_debugshasattrs __debug__s threadingsLocks(_SizedMessageAsyncConnection__input_locks!_SizedMessageAsyncConnection__inps'_SizedMessageAsyncConnection__input_lens#_SizedMessageAsyncConnection__states&_SizedMessageAsyncConnection__msg_sizes)_SizedMessageAsyncConnection__output_locks$_SizedMessageAsyncConnection__outputs$_SizedMessageAsyncConnection__closeds'_SizedMessageAsyncConnection__hmac_sends'_SizedMessageAsyncConnection__hmac_recvs(_SizedMessageAsyncConnection__super_initssocksmap(sselfssocksaddrsmapsdebug((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys__init__Ms             csBtd|ƒti|dtƒ|_ti|dtƒ|_dS(Nsset session key %rs digestmod(slogssesskeyshmacsHMACsshasselfs'_SizedMessageAsyncConnection__hmac_sends'_SizedMessageAsyncConnection__hmac_recv(sselfssesskey((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys setSessionKeyzscs |iSdS(N(sselfsaddr(sself((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pysget_addrscsdSdS(Ni((sself((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys __nonzero__…sc sΰ|iiƒzΎy|idƒ}Wn4tij o%}|dtjodSn‚nX| odSn|i t |ƒ}|i }|i} |i}||jog|tjo ||_n=t|iƒtjo|i|g|_n|ii|ƒ||_ dSnt|tƒo||}n4|tjo |}n|i|ƒdi|ƒ}d}d}x2|||jo ||||!} ||}| octid| ƒd}|t@}|o|tN}|d7}n|iotdƒ‚nd} n—d}d} |ov| d }| d} |i!oJ|i!i"| ƒ|i!i#ƒ} || jotd | |fƒ‚nn t%d ƒn|i&| ƒqlW| |_||_ |||_|||_ Wd|ii'ƒXdS( Ni iss>IisReceived message without MACiisMAC failed: %r != %rs#Received MAC but no session key set((sselfs(_SizedMessageAsyncConnection__input_locksacquiresrecvsdssocketserrorserrsexpected_socket_read_errorss'_SizedMessageAsyncConnection__input_lenslens input_lens&_SizedMessageAsyncConnection__msg_sizesmsg_sizes#_SizedMessageAsyncConnection__statesstates!_SizedMessageAsyncConnection__inpsinpsNonestypes StringTypesappends isinstancesjoinsoffsetshas_macsmsgsstructsunpacksMAC_BITs'_SizedMessageAsyncConnection__hmac_sends ValueErrorsmacs'_SizedMessageAsyncConnection__hmac_recvsupdatesdigests_macslogs message_inputsrelease( sselfs input_lensinpshas_macsmacsoffsetsmsg_sizesdserrsstates_macsmsg((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys handle_readˆsz                        csdSdS(Ni((sself((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pysreadableάscs&t|iƒdjodSndSdS(Nii(slensselfs$_SizedMessageAsyncConnection__output(sself((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pyswritableίscs|iiƒzό|i}xμ|oδd}x@tt|ƒƒD],}|t||ƒ7}|t joPnq<W|d7}di || ƒ}||4y|i |ƒ}Wn1tij o"}|dtjoPn‚nX|t|ƒjo|id||ƒPnqWWd|iiƒXdS(Niis(sselfs)_SizedMessageAsyncConnection__output_locksacquires$_SizedMessageAsyncConnection__outputsoutputslsrangeslensis SEND_SIZEsjoinsvssendsnssocketserrorserrsexpected_socket_write_errorssinsertsrelease(sselfserrsislsnsvsoutput((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys handle_writeεs2      cs|iƒdS(N(sselfsclose(sself((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys handle_close scs$|iotdƒ‚n|iiƒzθ|ioS|iiti dt |ƒt Bƒƒ|ii |ƒ|ii|iiƒƒn#|iiti dt |ƒƒƒt |ƒtjo|ii|ƒn?x;tdt |ƒtƒD]!}|ii|||t!ƒqιWWd|iiƒXdS(Ns*This action is temporarily unavailable.

s>Ii(sselfs$_SizedMessageAsyncConnection__closedsDisconnectedErrors)_SizedMessageAsyncConnection__output_locksacquires'_SizedMessageAsyncConnection__hmac_sends$_SizedMessageAsyncConnection__outputsappendsstructspackslensmessagesMAC_BITsupdatesdigests SEND_SIZEsrangesisrelease(sselfsmessagesi((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pysmessage_output s"   &"#cs&|i od|_|iƒndS(Ni(sselfs$_SizedMessageAsyncConnection__closeds)_SizedMessageAsyncConnection__super_close(sself((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pysclose(s  (s__name__s __module__sasyncores dispatchers__init__s(_SizedMessageAsyncConnection__super_initscloses)_SizedMessageAsyncConnection__super_closes$_SizedMessageAsyncConnection__closedsNonessockets setSessionKeysget_addrs __nonzero__s handle_readsreadableswritables handle_writes handle_closesmessage_output(((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pysSizedMessageAsyncConnectionEs  -    T   $  (s__doc__sasyncoreserrnoshmacs ImportErrors_hmacsshassocketsstructs threadingstypess StringTypes ZEO.zrpc.logslogs short_reprsZEO.zrpc.errorsDisconnectedErrorszLOGs EWOULDBLOCKsEAGAINsEINTRstmp_dictstupleskeyssexpected_socket_read_errorssENOBUFSsexpected_socket_write_errorss SEND_SIZEsMAC_BITs dispatchersSizedMessageAsyncConnection(s StringTypes short_reprsasyncoreslogs threadingserrnostmp_dictsstructsDisconnectedErrorsshasMAC_BITsexpected_socket_read_errorssSizedMessageAsyncConnectionszLOGs SEND_SIZEshmacsexpected_socket_write_errorsssocket((s5/usr/pkg/lib/python2.2/site-packages/ZEO/zrpc/smac.pys?s,          *6