mò "á¸Ec@s£dkZdkZdkZdkZdkZdkZdkZdklZdZ dZ dZ dZ dZ dZdeifd „ƒYZd efd „ƒYZdS( N(scounteriiiiiit BaseICPServercBsntZdZdZd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z RS( NiicCstii|ƒ||_||_|ititi ƒ|i ƒ|i ||fƒ|djo d}n|}|i d||fƒdS(Nttanys)ICP server started Address: %s Port: %s(tasyncoret dispatchert__init__tselftiptportt create_sockettsockettAF_INETt SOCK_DGRAMtset_reuse_addrtbindtaddrtlog_info(RRRR((t0/data/zmath/zope/lib/python/ZServer/ICPServer.pyR&s     cCs\|djoK|ipd|_|idƒn|djodSqX|iƒdSndS(Nisshutting down ICPf2.0i(tphaseRt _shutdownRttime_in_this_phasetclose(RRR((Rtclean_shutdown_control3s     cCs²x«t|iƒD]š}y|iidƒ\}}Wn4tij o%}|dt i joPqª‚qX|i |ƒo1|i |ƒ}|o|ii||ƒqªqqWdS(Ni@i(trangeRtREQUESTS_PER_LOOPtiR trecvfromtrequesttwhenceterrorteterrnot EWOULDBLOCKt check_whencet calc_replytreplytsendto(RRRRRR#((Rt handle_readBscCs|i S(N(RR(R((RtreadableQscCsdS(Ni((R((RtwritableTscCs|iddƒdS(Nsunexpected write eventtwarning(RR(R((Rt handle_writeWscCsBtiƒ\\}}}}}}|i d|||fdƒdS(NsProblem in ICP (%s:%s %s)R( Rtcompact_tracebacktfiletfuntlinetttvttbinfoRR(RR0R.R+R/R,R-((Rt handle_errorZs!cCsdS(Ni((RR((RR!_sc Csßt|ƒdjoÈtid|d ƒ\} }}}} }}|djoŒ| t jo{t|ƒ|jo t }n9|d}|ddjo|d }n|i|ƒ}tid|dd|dddƒSq×qÛndS(Nis!BBHIIIIiiiÿÿÿÿti(tlenRtstructtunpacktopcodetversiontlengthtnumbertoptionstopdatatjunkt ICP_OP_QUERYt ICP_OP_ERRt out_opcodeturlRt check_urltpack( RRR<R?R@R;R9R8R7R6R:((RR"bs+    cCstS(N(t ICP_OP_MISS(RR@((RRAps(t__name__t __module__RRRRR%R&R'R)R1R!R"RA(((RR!s        t ICPServercBstZgZd„ZRS(NcCs9x2|iD]'}||ƒ}|dj o|Sq q WtS(N(RthooksthookR@trtNoneRC(RR@RHRI((RRA}s     (RDRERGRA(((RRFvs(tsyststringtosR RR4RtmedusatcounterR=t ICP_OP_HITRCR>tICP_OP_MISS_NOFETCHt ICP_OP_DENIEDRRRF(RRRR4RFRROR>RKRRCR RQRPR=RMRL((Rt?s6  U