Your IP : 18.224.44.249


Current Path : /lib64/python2.7/Demo/pdist/
Upload File :
Current File : //lib64/python2.7/Demo/pdist/server.pyc

�
V
�Qc@s�dZddlZddlZddlZddlmZddlmZdZddd��YZddlm	Z	d	ee	fd
��YZ
dS(sRPC Server module.i����N(tfnmatch(trepritServercBs�eZdZed�Zd�Zd�Zd�Zd�Zd�Z	ddd	d
gZ
d�Zd�Zd
�Z
dd�ZRS(sDRPC Server class.  Derive a class to implement a particular service.cCs�t|�td�kr'd|f}n||_||_d|_tjtjtj�|_|jj|�|jj	d�d|_
dS(Niti(ttypet_addresst_verbosetNonet_sockettsockettAF_INETtSOCK_STREAMtbindtlistent
_listening(tselftaddresstverbose((s)/usr/lib64/python2.7/Demo/pdist/server.pyt__init__s			cCs
||_dS(N(R(RR((s)/usr/lib64/python2.7/Demo/pdist/server.pyt_setverbosescCs|j�dS(N(t_close(R((s)/usr/lib64/python2.7/Demo/pdist/server.pyt__del__ scCs/d|_|jr"|jj�nd|_dS(Ni(RRtcloseR(R((s)/usr/lib64/python2.7/Demo/pdist/server.pyR#s		cCsx|jr|j�qWdS(N(Rt_serve(R((s)/usr/lib64/python2.7/Demo/pdist/server.pyt_serverloop)scCs�|jrdGHn|jj�\}}|jrAdt|�GHn|j||�spdt|�GH|j�dS|jd�}|jd�}d}x=|r�|j�|jdkr�dGHn|j||�}q�WdS(NsWait for connection ...sAccepted connection from %ss*** Connection from %s refusedtrtwisWait for next request ...(	RRtacceptRt_verifyRtmakefiletflusht
_dorequest(RtconnRtrftwftok((s)/usr/lib64/python2.7/Demo/pdist/server.pyR-s"		
	
s192.16.201.*s192.16.197.*s132.151.1.*s
129.6.64.*cCs7|\}}x$|jD]}t||�rdSqWdS(Nii(t_validR(RR Rthosttporttpat((s)/usr/lib64/python2.7/Demo/pdist/server.pyR?s
cCsvtj|�}y|j�}Wntk
r3dSX|jdkrUdt|�GHny�|\}}}d|kr�d|j||�|f}nM|ddkr�tdt|��n't	||�}	dt
|	|�|f}Wntjtj
|f}nX|dkr5|d d
kr5|jdkr1dGHndS|jdkrVd	t|�GHntj|�}
|
j|�dS(NiisGot request: %st.t_sillegal method name %sisSuppress replysSend reply: %s(NN(tpicklet	UnpicklertloadtEOFErrorRRRt_specialt	NameErrortgetattrtapplytsystexc_typet	exc_valuetPicklertdump(RR!R"trptrequestt
methodnametargstidtreplytmethodtwp((s)/usr/lib64/python2.7/Demo/pdist/server.pyREs4

cCsQ|dkr:t|d�s3t|j��|_n|jStdt|��dS(Ns.methodst_methodss#unrecognized special method name %s(thasattrttuplet_listmethodsR?R/R(RR9R:((s)/usr/lib64/python2.7/Demo/pdist/server.pyR._s
cCs�|s|j}n|jj�}td�|�}|j�xE|jD]:}|j|�}t|d�|�}||t|�)qGW|S(NcSs|ddkS(NiR)((tx((s)/usr/lib64/python2.7/Demo/pdist/server.pyt<lambda>iscSs
||kS(N((RCtnames((s)/usr/lib64/python2.7/Demo/pdist/server.pyRDms(t	__class__t__dict__tkeystfiltertsortt	__bases__RBtlen(RtclREtbaset	basenames((s)/usr/lib64/python2.7/Demo/pdist/server.pyRBfs
N(t__name__t
__module__t__doc__tVERBOSERRRRRRR$RRR.RRB(((s)/usr/lib64/python2.7/Demo/pdist/server.pyRs								(tSecuritytSecureServercBseZd�Zd�ZRS(cGs(ttj|f|�tj|�dS(N(R1RRRT(RR:((s)/usr/lib64/python2.7/Demo/pdist/server.pyRwscCsddl}|j�}|jd|�d}xEd|krvt|�dkrv|jd�}|siPn||}q2Wy|j|j|��}Wn6|jk
r�|jdkr�dGt	|�GHndSX|j
||�s|jdkr�dGt	|�GHndS|jd	krd
GHnd	S(Ni����s%d
Rs
idisInvalid response syntaxsInvalid response valueis&Response matches challenge.  Go ahead!(tstringt_generate_challengetsendRLtrecvtatoltstript
atol_errorRRt_compare_challenge_response(RR RRVt	challengetresponsetdata((s)/usr/lib64/python2.7/Demo/pdist/server.pyR{s,!(RPRQRR(((s)/usr/lib64/python2.7/Demo/pdist/server.pyRUus	((RRR2R	R*RRRSRtsecurityRTRU(((s)/usr/lib64/python2.7/Demo/pdist/server.pyt<module>sd