//usr/lib64/lib64//python2.7/Demo//ó
V
Qc @ s d Z d d l Z d d l Z d d l Z d d l m Z d d l m Z d Z d d d „ ƒ YZ d d l m Z d e e f d
„ ƒ YZ
d S( s RPC Server module.iÿÿÿÿN( t fnmatch( t repri t Serverc B s€ e Z d Z e d „ Z d „ Z d „ Z d „ Z d „ Z d „ Z d d d d
g Z
d „ Z d „ Z d
„ Z
d d „ Z RS( sD RPC Server class. Derive a class to implement a particular service.c C sŠ t | ƒ t d ƒ k r' d | f } n | | _ | | _ d | _ t j t j t j ƒ | _ | j j | ƒ | j j d ƒ d | _
d S( Ni t i ( t typet _addresst _verboset Nonet _sockett sockett AF_INETt SOCK_STREAMt bindt listent
_listening( t selft addresst verbose( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyt __init__ s c C s
| | _ d S( N( R ( R R ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyt _setverbose s c C s | j ƒ d S( N( t _close( R ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyt __del__ s c C s/ d | _ | j r" | j j ƒ n d | _ d S( Ni ( R R t closeR ( R ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR # s c C s x | j r | j ƒ q Wd S( N( R t _serve( R ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyt _serverloop) s c C sØ | j r d GHn | j j ƒ \ } } | j rA d t | ƒ GHn | j | | ƒ sp d t | ƒ GH| j ƒ d S| j d ƒ } | j d ƒ } d } x= | rÓ | j ƒ | j d k r¾ d GHn | j | | ƒ } q— Wd S( Ns Wait for connection ...s Accepted connection from %ss *** Connection from %s refusedt rt wi s Wait for next request ...( R R t acceptR t _verifyR t makefilet flusht
_dorequest( R t connR t rft wft ok( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR - s"
s 192.16.201.*s 192.16.197.*s 132.151.1.*s
129.6.64.*c C s7 | \ } } x$ | j D] } t | | ƒ r d Sq Wd S( Ni i ( t _validR ( R R R t hostt portt pat( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR ? s
c C sv t j | ƒ } y | j ƒ } Wn t k
r3 d SX| j d k rU d t | ƒ GHn yŠ | \ } } } d | k r‘ d | j | | ƒ | f } nM | d d k r· t d t | ƒ ‚ n' t | | ƒ } d t
| | ƒ | f } Wn t j t j
| f } n X| d k r5| d d
k r5| j d k r1d GHn d S| j d k rVd t | ƒ GHn t j | ƒ }
|
j | ƒ d S( Ni i s Got request: %st .t _s illegal method name %si s Suppress replys Send reply: %s( NN( t picklet Unpicklert loadt EOFErrorR R R t _specialt NameErrort getattrt applyt syst exc_typet exc_valuet Picklert dump( R R! R" t rpt requestt
methodnamet argst idt replyt methodt wp( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR E s4
c C sQ | d k r: t | d ƒ s3 t | j ƒ ƒ | _ n | j St d t | ƒ ‚ d S( Ns .methodst _methodss# unrecognized special method name %s( t hasattrt tuplet _listmethodsR? R/ R ( R R9 R: ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR. _ s
c C s‰ | s | j } n | j j ƒ } t d „ | ƒ } | j ƒ xE | j D]: } | j | ƒ } t | d „ | ƒ } | | t | ƒ )qG W| S( Nc S s | d d k S( Ni R) ( ( t x( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyt i s c S s
| | k S( N( ( RC t names( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyRD m s ( t __class__t __dict__t keyst filtert sortt __bases__RB t len( R t clRE t baset basenames( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyRB f s
N( t __name__t
__module__t __doc__t VERBOSER R R R R R R$ R R R. R RB ( ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR s ( t Securityt SecureServerc B s e Z d „ Z d „ Z RS( c G s( t t j | f | ƒ t j | ƒ d S( N( R1 R R RT ( R R: ( ( s) /usr/lib64/python2.7/Demo/pdist/server.pyR w s c C s d d l } | j ƒ } | j d | ƒ d } xE d | k rv t | ƒ d k rv | j d ƒ } | si Pn | | } q2 Wy | j | j | ƒ ƒ } Wn6 | j k
rË | j d k rÇ d Gt | ƒ GHn d SX| j
| | ƒ s| j d k rÿ d Gt | ƒ GHn d S| j d k rd
GHn d S( Niÿÿÿÿs %d
R s
id i s Invalid response syntaxs Invalid response valuei s&