mò "á¸Ec@sDdZdkZdkZdkZdkZdkZeidƒoeieƒdZndZdk Z dk Z dk l Z dk Z de i fd„ƒYZde ifd „ƒYZd „Zd efd „ƒYZd efd„ƒYZdefd„ƒYZdfd„ƒYZedjodkZdkZdeijo!eiidƒdGeƒZndZdeijoeiidƒdZndZeeiƒdjoeieidƒZndZedj o<eedeƒZ eoee _!dk"Z"e"e _#q,nedeƒZ e i$ddƒndS(s4$Id: monitor.py 28212 2004-10-18 20:01:20Z tim_one $Ns$Id: is0.0(scountertmonitor_channelcBsMtZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS( NicCsÓtii||ƒ||_||_|idƒd|_t i di i ƒ|_ |idt idƒ|it idƒ|id|ƒ|idƒ|iƒ|iiƒ|_tƒ|_g|_dS(Ns tt__main__sPython sWelcome to %s s&[Hint: try 'from __main__ import *'] (tasynchatt async_chatt__init__tselftsocktservertaddrtset_terminatortdatatsystmodulest__dict__tcopyt local_envtpushtversiont copyrighttpromptttotal_sessionstas_longtnumbertcountert line_countert multi_line(RRRR ((t5/data/zmath/zope/lib/python/ZServer/medusa/monitor.pyRs       cCs|idƒdS(Nsÿý"(RR(R((Rthandle_connect/scCs$|iiiƒtii|ƒdS(N(RRtclosed_sessionst incrementRRtclose(R((RR3scCs|idƒdS(Ns>>> (RR(R((RR7scCsE|i||_t|iƒdjo|idƒ|iƒndS(NisBCNU (RR tlenRtclose_when_done(RR ((Rtcollect_incoming_data:s cBs%|i|iƒ} d|_|iiƒ| o|i o|iƒdSn| ddgjo|idƒ|i ƒdSne i }e i }z:e||ƒ} | e _ | e _ y¾yq|io e‚ne| e|ƒdƒ}e||iƒ}d}|dj oe|ƒGHn||id %s(*Rt clean_lineR tlineRRRRRR!R tstdouttoldouttstderrtolderrtoutput_producertpt SyntaxErrortcompiletreprtcoR$RtresulttmethodtNonetappendtstringtjointwhytexc_infotttvttbtasyncoretcompact_tracebacktfiletfunttbinfotlog_infoRtpush_with_producer(RR5R6RCR-R@R7RER/R+R<R1R>R?RD((Rtfound_terminatorAsv                  !%  ) cCsrg}xY|D]Q}t|ƒ}|djo2|ddgjo|d }q^|i|ƒq q Wti|dƒS(Niii±iÿÿÿÿR(tcharsR+tchtordtocR9R:R;(RR+RJRIRL((RR*“s  ( t__name__t __module__t try_linemodeRRRRR"RHR*(((RRs      Rtmonitor_servercBsBtZdeZeZddd„Zd„Zd„Zd„Z RS(NsMonitor Server (V%s)s 127.0.0.1iWcCsªtii|ƒ||_||_|ititi ƒ|i ƒ|i ||fƒ|i d|i |fƒ|idƒd|_d|_tƒ|_tƒ|_dS(Ns%s started on port %dii(RAt dispatcherRRthostnametportt create_sockettsockettAF_INETt SOCK_STREAMtset_reuse_addrtbindRFt SERVER_IDENTtlistentclosedt failed_authsRRR(RRRRS((RR¥s       cCsdS(Ni((R((Rtwritable³scCsG|iƒ\}}|id|ƒ|i|||ƒ|iiƒdS(Ns&Incoming monitor connection from %s:%d(RtaccepttconnR RFt channel_classRR(RR R`((Rt handle_accept¶scCs=tid|id|id|iiƒ|iiƒƒS(Ns

%s

s
Total Sessions: %ss
Current Sessions: %d(t producerstsimple_producerRRZRRR(R((Rtstatus¼s( RMRNtVERSIONRZRRaRR^RbRe(((RRPŸs    cCsDtiƒ}|i|ƒtitd„td|iƒƒƒdƒS(NcCstt|ƒƒdS(Ni(thexRKtx(Rh((RtÉsR( tmd5tmtupdatetsR:t joinfieldstmapR8tdigest(RmRk((Rt hex_digestÅs  $tsecure_monitor_channelcBs tZdZd„Zd„ZRS(NicCs§tii||ƒ||_||_|idƒd|_h|_ t t i ƒƒ|_ d|_ tƒ|_t|iiƒƒ|_g|_|i|i dƒdS(Ns Ri(RRRRRRR R R Rtstrttimet timestamptcountRRtintRRRRR(RRRR ((RRÐs        cCsÙ|ip¾td|i|iifƒ|ijo8|id|dƒ|iid|i_|i ƒqÕd|_|i dt i dƒ|i t i dƒ|i d|ƒ|iƒd|_nti|ƒdS( Ns%s%ss%s: failed authorizationR)isPython s sWelcome to %s R(Rt authorizedRqRuRtpasswordR RFR]RRR RRRRRH(R((RRHàs )   (RMRNRxRRH(((RRrÍs t secure_encrypted_monitor_channelcBs)tZdZd„Zd„Zd„ZRS(s+Wrap send() and recv() with a stream ciphercCsM|i}|ii|ƒ|_|ii|ƒ|_ti ||||ƒdS(N( RRytkeytciphertnewRtoutgoingtincomingRrRR`R (RRR`R R{((RRós cCs"|ii|ƒ}ti||ƒS(N(RR~tencryptR tedRrtsend(RR R((RR‚ùscCs;ti||ƒ}|o|ii|ƒ}|Sn|SdS(N(RrtrecvRt block_sizeR Rtdecrypttdd(RR„R R†((RRƒþs (RMRNt__doc__RR‚Rƒ(((RRzðs   tsecure_monitor_servercBs&tZeZddd„Zd„ZRS(NRiWcCs ti|||ƒ||_dS(N(RPRRRRRSRy(RRyRRRS((RR scCs*ti|ƒ}|id|i|_|S(Ns$
Failed Authorizations: %d(RPReRR1R R](RR1((RRe s(RMRNRrRaRRe(((RRˆsR0cBsYtZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z RS( NcCs||_d|_||_dS(NR(tchannelRR t real_stderrR.(RR‰RŠ((RRs  cCs/t|iƒdd>jo|iiƒndS(Nii(R RR R‰R(R((Rt check_datascCsBti|dƒ}ti|dƒ}|i||_|iƒdS(Ns s (R:t splitfieldsR tlinesR;RR‹(RR R((Rtwrite"scCs"|i|d|_|iƒdS(Ns (RR R+R‹(RR+((Rt writeline(scCs.|iti|dƒd|_|iƒdS(Ns (RR R:RnRR‹(RR((Rt writelines,scCst|iƒdjS(Ni(R RR (R((Rtready3scCsdS(N((R((Rtflush6scGsdS(N((Rtargs((Rt softspace9scCs7|io%|id }|id|_|SndSdS(NiR(RR R6(RR6((Rtmore<s   ( RMRNRR‹RŽRRR‘R’R”R•(((RR0s        Rs-ssEnter password: s-eiiiWRtuse_poll(%tRCS_IDRjRUR:R Rtt startswithtsplitRfRARRRcRRRQRPRqRrRzRˆR0RMtargvtremovet raw_inputRyR8R€R tatoiRSRmRatsapphireR|tloop(RARSRR€RR—R0RzR:RqRcRfRyRjR RURPRˆRRmRžRtRr((Rt?sT         „& #.