ó ÇPNc@s0ddlZddlmZddlmZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z yddl Z Wne k rµdZ nXd„Zd„Zdejfd„ƒYZdejfd „ƒYZd ejefd „ƒYZd efd „ƒYZdS(iÿÿÿÿN(tFault(tUSE_UNIX_SOCKETScCs0d|jƒkrdSd|jƒkr,dSdS(Ntjsonrpcg@tidgð?(tkeystNone(trequest((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyt get_versions cCst|ƒtjk r2tddt|ƒƒ}|S|jddƒ}t|ƒ}|sstdd|d|ƒ}|S|jdgƒ|jddƒ}|jdƒ}tjtjtj f}| sêt|ƒtj ksêt|ƒ|krtddd|ƒ}|St S( Ni¨€ÿÿsRequest must be {}, not %s.RsRequest %s invalid.trpcidtparamstmethods%Invalid request parameters or method.( ttypettypestDictTypeRtgetRRt setdefaulttListTypet TupleTypet StringTypestTrue(RtfaultRtversionR R t param_types((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pytvalidate_requests& tSimpleJSONRPCDispatchercBs2eZdd„Zdd„Zd„Zd„ZRS(cCs tjj|dtd|ƒdS(Nt allow_nonetencoding(tSimpleXMLRPCServertSimpleXMLRPCDispatchert__init__R(tselfR((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyR3sc Csnd}ytj|ƒ}Wn9tk rT}tdd||fƒ}|jƒ}|SX|sttddƒ}|jƒSt|ƒtjkr3g}xp|D]h}t |ƒ} t| ƒtkrÓ|j | jƒƒq–n|j |ƒ} | dk r–|j | ƒq–q–Wt |ƒdkr*ddj |ƒ}qjd}n7t |ƒ} t| ƒtkr[| jƒS|j |ƒ}|S( NiD€ÿÿsRequest %s invalid. (%s)i¨€ÿÿs#Request invalid -- no request data.is[%s]t,t(Rt jsonrpclibtloadst ExceptionRtresponseR R RRtappendt_marshaled_single_dispatchtlentjoin( Rtdatatdispatch_methodR$RteRt responsest req_entrytresultt resp_entry((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyt_marshaled_dispatch8s8        c Cs|jdƒ}|jdƒ}y|j||ƒ}Wn<tjƒ\}}}tdd||fƒ}|jƒSXd|jƒks•|ddkr™dSy'tj |dt d|dƒ}|SWn<tjƒ\}}}tdd||fƒ}|jƒSXdS(NR R i¥€ÿÿs%s:%sRtmethodresponseR( Rt _dispatchtsystexc_infoRR$RRR!tdumpsR( RRR R R$texc_typet exc_valuetexc_tbR((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyR&Ys& "  cCsSd}y|j|}Wnxtk r‘|jdk r’t|jdƒr[|jj||ƒSytj|j|tƒ}WqŽt k rŠqŽXq’nX|dk r>y8t |ƒt j krÅ||Œ}n ||}|SWqOt k rótddƒStjƒjƒ}d|d|df}tjdd|ƒ}|SXntd d |ƒSdS( NR2i¦€ÿÿsInvalid parameters.s%s | %siýÿÿÿiÿÿÿÿi¥€ÿÿsServer error: %si§€ÿÿsMethod %s not supported.(RtfuncstKeyErrortinstancethasattrR2Rtresolve_dotted_attributeRtAttributeErrorR R Rt TypeErrorRt tracebackt format_exct splitlinesR!(RR R tfuncR$t err_linest trace_stringR((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyR2ts:          N(t__name__t __module__RRR0R&R2(((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyR1s  ! tSimpleJSONRPCRequestHandlercBseZd„ZRS(c CsŸ|jƒs|jƒdSyšd}t|jdƒ}g}xF|r„t||ƒ}|j|jj|ƒƒ|t|dƒ8}q?Wdj |ƒ}|j j |ƒ}|j dƒWnlt k r"}|j dƒtjƒjƒ}d|d |df} tjd d | ƒ} | jƒ}nX|dkr8d}n|jd d ƒ|jdtt|ƒƒƒ|jƒ|jj|ƒ|jjƒ|jjdƒdS(Ni iscontent-lengthiÿÿÿÿR iÈiôs%s | %siýÿÿÿi¥€ÿÿsServer error: %ss Content-typesapplication/json-rpcsContent-lengthii(i (tis_rpc_path_validt report_404tinttheaderstminR%trfiletreadR'R(tserverR0t send_responseR#R@RARBR!RR$Rt send_headertstrt end_headerstwfiletwritetflusht connectiontshutdown( Rtmax_chunk_sizetsize_remainingtLt chunk_sizeR)R$R+RDRER((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pytdo_POSTšs8        (RFRGR^(((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyRH—stSimpleJSONRPCServercBs)eZeZeedeejd„ZRS(c CsE||_tj||ƒtj}||_tr|tjkrt j j |ƒryt j |ƒWqŠt k r†tjd|ƒqŠXqn|ddkrÆ|ddkrÆtjj|||ƒntjj||||ƒtdk rAttdƒrAtj|jƒtjƒ}|tjO}tj|jƒtj|ƒndS(NsCould not unlink socket %siiiit FD_CLOEXEC(t logRequestsRRR3t version_infotaddress_familyRtsockettAF_UNIXtostpathtexiststunlinktOSErrortloggingtwarningt SocketServert TCPServertfcntlRR<tfilenotF_GETFDR`tF_SETFD( RtaddrtrequestHandlerRaRtbind_and_activateRctvitflags((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyR¼s$      N( RFRGRtallow_reuse_addressRHRRdtAF_INETR(((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyR_¸s tCGIJSONRPCRequestHandlercBs#eZdd„Zd„ZeZRS(cCstj||ƒdS(N(RR(RR((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyRÛscCs8|j|ƒ}dGHdt|ƒGHHtjj|ƒdS(Ns"Content-Type: application/json-rpcsContent-Length: %d(R0R'R3tstdoutRV(Rt request_textR$((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pythandle_jsonrpcÞs N(RFRGRRR}t handle_xmlrpc(((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyRzÙs  (R!Rtjsonrpclib.jsonrpcRRRmRdRkRfR R@R3Rot ImportErrorRRRRRtSimpleXMLRPCRequestHandlerRHRnR_Rz(((sD/usr/lib/python2.7/vendor-packages/jsonrpclib/SimpleJSONRPCServer.pyts*             f !