???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................
^c           @   s=  d  d l  Z  d  d l Z d  d l Z d Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d e  j f d	     YZ d
 e f d     YZ d e f d     YZ d e f d     YZ d e  j f d     YZ d   Z d   Z d   Z  d  a! d   Z" d dC d     YZ# d   Z$ d   Z% d   Z& d   Z' d a) d   Z* d e# f d     YZ+ d e# f d      YZ, d! e, f d"     YZ- d# Z. d Z/ d$ Z0 d Z1 d Z2 d Z3 d Z4 d Z5 d Z6 d% Z7 d& Z8 d' e f d(     YZ9 d) e f d*     YZ: d+ dD d,     YZ; d- e; e+ f d.     YZ< d/ e; e, f d0     YZ= d1 e; e- f d2     YZ> d3 e+ f d4     YZ? d5 e, f d6     YZ@ d7 e# f d8     YZA d9 dE d:     YZB d; eB f d<     YZC d= eB f d>     YZD d?   ZE d@   ZF dA   ZG dB   ZH d S(F   iNi   i    i   i   i   i   t   Packerc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   s*   | \ } } |  j  |  |  j |  d  S(   N(   t	   pack_enumt   pack_opaque(   t   selft   autht   flavort   stuff(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt	   pack_auth0   s    c         C   si   |  j  |  |  j |  |  j  |  |  j  |  |  j  t |   x | D] } |  j  |  qN Wd  S(   N(   t	   pack_uintt   pack_stringt   len(   R   t   stampt   machinenamet   uidt   gidt   gidst   i(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   pack_auth_unix5   s    c         C   sl   |  j  |  |  j t  |  j  t  |  j  |  |  j  |  |  j  |  |  j |  |  j |  d  S(   N(   R   R   t   CALLt
   RPCVERSIONR   (   R   t   xidt   progt   verst   proct   credt   verf(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   pack_callheader>   s    c         C   sE   |  j  |  |  j t  |  j  t  |  j |  |  j t  d  S(   N(   R   R   t   REPLYt   MSG_ACCEPTEDR   t   SUCCESS(   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   pack_replyheaderI   s
    (   t   __name__t
   __module__R   R   R   R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR    .   s   				t   BadRPCFormatc           B   s   e  Z RS(    (   R   R    (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR!   S   s    t   BadRPCVersionc           B   s   e  Z RS(    (   R   R    (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR"   T   s    t   GarbageArgsc           B   s   e  Z RS(    (   R   R    (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR#   U   s    t   Unpackerc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s"   |  j    } |  j   } | | f S(   N(   t   unpack_enumt   unpack_opaque(   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   unpack_authY   s    c         C   s   |  j    } |  j   } | t k r7 t d | f  n  |  j    } | t k rb t d | f  n  |  j    } |  j    } |  j    } |  j   } |  j   } | | | | | | f S(   Ns   no CALL but %rs   bad RPC version %r(   t   unpack_uintR%   R   R!   R   R"   R'   (   R   R   t   tempR   R   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   unpack_callheader^   s    c         C   s  |  j    } |  j   } | t k r7 t d | f  n  |  j   } | t k r |  j   } | t k r |  j    } |  j    } t d | | f f  n  | t k r |  j    } t d | f  n  t d | f  n  | t k r t d | f  n  |  j   } |  j   } | t	 k r%t d  n  | t
 k rb|  j    } |  j    } t d | | f f  n  | t k rzt d  n  | t k rt d	  n  | t k rt d
 | f  n  | | f S(   Ns   no REPLY but %rs   MSG_DENIED: RPC_MISMATCH: %rs   MSG_DENIED: AUTH_ERROR: %rs   MSG_DENIED: %rs'   Neither MSG_DENIED nor MSG_ACCEPTED: %rs   call failed: PROG_UNAVAILs   call failed: PROG_MISMATCH: %rs   call failed: PROC_UNAVAILs   call failed: GARBAGE_ARGSs   call failed: %r(   R(   R%   R   t   RuntimeErrort
   MSG_DENIEDt   RPC_MISMATCHt
   AUTH_ERRORR   R'   t   PROG_UNAVAILt   PROG_MISMATCHt   PROC_UNAVAILt   GARBAGE_ARGSR   (   R   R   t   mtypet   statt   lowt   highR   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   unpack_replyheadern   sH    (   R   R    R'   R*   R7   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR$   W   s   		c           C   s   d S(   Nt    (    (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   make_auth_null   s    c         C   s,   t    } | j |  | | | |  | j   S(   N(   R    R   t   get_buf(   t   seedt   hostR   R   t   groupst   p(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   make_auth_unix   s    	c          C   s   y, d d l  m }  m } |    } |   } Wn t k
 rI d } } n Xd d  l } t t | j   t    t j	   | | g   S(   Ni(   t   getuidt   getgidi    (
   t   osR@   RA   t   ImportErrort   timeR?   t   intt
   unix_epocht   sockett   gethostname(   R@   RA   R   R   RD   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   make_auth_unix_default   s    	c       
   C   s  t  d k r t  Sd d l }  |  j   } |  j |  } |  j |  } |  j |  |  j |  } d	 \ } } } } }	 }
 t |
 | d  \ } }
 t |	 | d  \ } }	 t | | d  \ } } | | } |  j | | | | |	 |
 d d d f	  a  d G|  j t   GHt  S(
   s9  Very painful calculation of when the Unix Epoch is.

    This is defined as the return value of time.time() on Jan 1st,
    1970, 00:00:00 GMT.

    On a Unix system, this should always return 0.0.  On a Mac, the
    calculations are needed -- and hard because of integer overflow
    and other limitations.

    i    iNi  i   i<   i   s   Unix epoch:(   i  i   i   i    i    i    (   t   _unix_epochRD   t	   localtimet   gmtimet   mktimet   divmodt   ctime(   RD   t   nowt   localtt   gmtt   offsett   yt   mt   dt   hht   mmt   ss(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRF      s     
*t   Clientc           B   st   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z RS(   c         C   sk   | |  _  | |  _ | |  _ | |  _ |  j   |  j   |  j   d |  _ |  j   d  |  _
 d  |  _ d  S(   Ni    (   R<   R   R   t   portt
   makesockett
   bindsockett
   connsockett   lastxidt
   addpackerst   NoneR   R   (   R   R<   R   R   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   __init__   s    				


	
	c         C   s   |  j  j   d  S(   N(   t   sockt   close(   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRd      s    c         C   s   t  d  d  S(   Ns   makesocket not defined(   R+   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR\      s    c         C   s    |  j  j |  j |  j f  d  S(   N(   Rc   t   connectR<   R[   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR^      s    c         C   s   |  j  j d  d  S(   NR8   i    (   R8   i    (   Rc   t   bind(   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR]      s    c         C   s   t    |  _ t d  |  _ d  S(   NR8   (   R    t   packerR$   t   unpacker(   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR`      s    c         C   sw   | d  k r$ | d  k	 r$ t d  n  |  j |  | rD | |  n  |  j   | r` |   } n d  } |  j j   | S(   Ns!   non-null args with null pack_func(   Ra   t	   TypeErrort
   start_callt   do_callRh   t   done(   R   R   t   argst	   pack_funct   unpack_funct   result(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt	   make_call   s    
c         C   se   |  j  d |  _  } |  j   } |  j   } |  j } | j   | j | |  j |  j | | |  d  S(   Ni   (   R_   t   mkcredt   mkverfRg   t   resetR   R   R   (   R   R   R   R   R   R>   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRj      s    	
c         C   s   t  d  d  S(   Ns   do_call not defined(   R+   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRk     s    c         C   s+   |  j  d  k r$ t t   f |  _  n  |  j  S(   N(   R   Ra   t	   AUTH_NULLR9   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRr   	  s    c         C   s+   |  j  d  k r$ t t   f |  _  n  |  j  S(   N(   R   Ra   Ru   R9   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRs     s    c         C   s   |  j  d d  d  d   S(   Ni    (   Rq   Ra   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   call_0  s    (   R   R    Rb   Rd   R\   R^   R]   R`   Rq   Rj   Rk   Rr   Rs   Rv   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRZ      s   												c         C   s   t  |  } | r | d B} n  t t | d ?d @  t t | d ?d @  t t | d ?d @  t t | d @  } |  j | |  d  S(   Nl        i   i   i   i   (   R
   t   chrRE   t   send(   Rc   t   lastt   fragt   xt   header(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   sendfrag  s
     ^c         C   s   t  |  d |  d  S(   Ni   (   R}   (   Rc   t   record(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt
   sendrecord"  s    c         C   s   |  j  d  } t |  d k  r* t  n  t t | d   d >t | d  d >Bt | d  d >Bt | d  B} | d	 @d k } t | d
 @ } d } xH | d k r |  j  |  } | s t  n  | t |  } | | } q W| | f S(   Ni   i    i   i   i   i   i   i   I       iR8   (   t   recvR
   t   EOFErrort   longt   ordRE   (   Rc   R|   R{   Ry   t   nRz   t   buf(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   recvfrag%  s    	L 	c         C   s9   d } d } x& | s4 t  |   \ } } | | } q W| S(   NR8   i    (   R   (   Rc   R~   Ry   Rz   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt
   recvrecord5  s    	c         C   s   d \ } } t  d  k r? d d  l } | | j   | | a  n  x t t  |  t | t   D]g } | a  y |  j | | f  t  SWq\ t j k
 r \ } } | d k r t j | | f  q q\ Xq\ Wt d  d  S(   NiX  i   iir   s   can't assign reserved port(   iX  i   (	   t   last_resv_port_triedRa   RB   t   getpidt   rangeRf   RG   t   errorR+   (   Rc   R<   t   FIRSTt   LASTRB   R   t   errnot   msg(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   bindresvportA  s    t   RawTCPClientc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j  t  j t  j  |  _ d  S(   N(   RG   t   AF_INETt   SOCK_STREAMRc   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR\   W  s    c         C   s   |  j  j   } t |  j |  t |  j  } |  j } | j |  | j   \ } } | |  j k r~ t	 d | |  j f  n  d  S(   Ns#   wrong xid in reply %r instead of %r(
   Rg   R:   R   Rc   R   Rh   Rt   R7   R_   R+   (   R   t   callt   replyt   uR   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRk   Z  s    	(   R   R    R\   Rk   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   U  s   	t   RawUDPClientc           B   s   e  Z d    Z d   Z RS(   c         C   s   t  j  t  j t  j  |  _ d  S(   N(   RG   R   t
   SOCK_DGRAMRc   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR\   k  s    c         C   s`  |  j  j   } |  j j |  y d d l m } Wn t k
 rQ d GHd  } n Xd } d } d } x |  j g g  g  } } } | r | | | | |  \ } } } n  |  j | k r| d } | d k  r t d  n  | d	 k  r | d
 } n  |  j j |  qg n  |  j j |  }	 |  j	 }
 |
 j
 |	  |
 j   \ } } | |  j k rWqg n  Pqg Wd  S(   Ni(   t   selects'   WARNING: select not found, RPC may hangi    i   i   i    t   timeouti   i   (   Rg   R:   Rc   Rx   R   RC   Ra   R+   R   Rh   Rt   R7   R_   (   R   R   R   t   BUFSIZER   t   countt   rt   wR{   R   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRk   n  s:    
!
  	(   R   R    R\   Rk   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   i  s   	t   RawBroadcastUDPClientc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s/   t  j |  | | | |  d  |  _ d |  _ d  S(   Ni   (   R   Rb   Ra   t   reply_handlerR   (   R   t	   bcastaddrR   R   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb     s    	c         C   s    |  j  j t j t j d  d  S(   Ni   (   Rc   t
   setsockoptRG   t
   SOL_SOCKETt   SO_BROADCAST(   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR^     s    c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   set_reply_handler  s    c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   set_timeout  s    c         C   s  | d  k r$ | d  k	 r$ t d  n  |  j |  | rD | |  n  |  j j   } |  j j | |  j |  j f  y d d l	 m	 } Wn t
 k
 r d GHd  } n Xd } g  } | d  k r d   }	 |	 } n  x"|  j g g  g  }
 } } | rC|  j d  k r| |
 | |  \ }
 } } qC| |
 | | |  j  \ }
 } } n  |  j |
 k rVPn  |  j j |  \ } } |  j } | j |  | j   \ } } | |  j k rq n  |   } |  j j   | j | | f  |  j r |  j | |  q q W| S(   Ns!   non-null args with null pack_funci(   R   s.   WARNING: select not found, broadcast will hangi    c           S   s   d  S(   N(    (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   dummy  R8   (   Ra   Ri   Rj   Rg   R:   Rc   t   sendtoR<   R[   R   RC   R   t   recvfromRh   Rt   R7   R_   Rl   t   appendR   (   R   R   Rm   Rn   Ro   R   R   R   t   repliesR   R   R   R{   R   t   fromaddrR   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRq     sJ    
		$			(   R   R    Rb   R^   R   R   Rq   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s
   				i io   i   i   t   PortMapperPackerc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   sJ   | \ } } } } |  j  |  |  j  |  |  j  |  |  j  |  d  S(   N(   R   (   R   t   mappingR   R   t   protR[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   pack_mapping  s
    c         C   s   |  j  | |  j  d  S(   N(   t	   pack_listR   (   R   t   list(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   pack_pmaplist  s    c         C   sJ   | \ } } } } |  j  |  |  j  |  |  j  |  |  j |  d  S(   N(   R   R   (   R   t   caR   R   R   Rm   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   pack_call_args  s
    (   R   R    R   R   R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s   		t   PortMapperUnpackerc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s@   |  j    } |  j    } |  j    } |  j    } | | | | f S(   N(   R(   (   R   R   R   R   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   unpack_mapping  s
    c         C   s   |  j  |  j  S(   N(   t   unpack_listR   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   unpack_pmaplist  s    c         C   s"   |  j    } |  j   } | | f S(   N(   R(   R&   (   R   R[   t   res(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   unpack_call_result  s    (   R   R    R   R   R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s   		t   PartialPortMapperClientc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   t    |  _ t d  |  _ d  S(   NR8   (   R   Rg   R   Rh   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR`     s    c         C   s"   |  j  t | |  j j |  j j  S(   N(   Rq   t   PMAPPROC_SETRg   R   Rh   R(   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   Set  s    	c         C   s"   |  j  t | |  j j |  j j  S(   N(   Rq   t   PMAPPROC_UNSETRg   R   Rh   R(   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   Unset  s    	c         C   s"   |  j  t | |  j j |  j j  S(   N(   Rq   t   PMAPPROC_GETPORTRg   R   Rh   R(   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   Getport  s    	c         C   s   |  j  t d  d  |  j j  S(   N(   Rq   t   PMAPPROC_DUMPRa   Rh   R   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   Dump!  s    c         C   s"   |  j  t | |  j j |  j j  S(   N(   Rq   t   PMAPPROC_CALLITRg   R   Rh   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   Callit&  s    	(   R   R    R`   R   R   R   R   R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s   					t   TCPPortMapperClientc           B   s   e  Z d    Z RS(   c         C   s   t  j |  | t t t  d  S(   N(   R   Rb   t	   PMAP_PROGt	   PMAP_VERSt	   PMAP_PORT(   R   R<   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb   .  s    	(   R   R    Rb   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   ,  s   t   UDPPortMapperClientc           B   s   e  Z d    Z RS(   c         C   s   t  j |  | t t t  d  S(   N(   R   Rb   R   R   R   (   R   R<   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb   5  s    	(   R   R    Rb   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   3  s   t   BroadcastUDPPortMapperClientc           B   s   e  Z d    Z RS(   c         C   s   t  j |  | t t t  d  S(   N(   R   Rb   R   R   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb   =  s    	(   R   R    Rb   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   :  s   t	   TCPClientc           B   s   e  Z d    Z RS(   c         C   sf   t  |  } | j | | t d f  } | j   | d k rI t d  n  t j |  | | | |  d  S(   Ni    s   program not registered(   R   R   t   IPPROTO_TCPRd   R+   R   Rb   (   R   R<   R   R   t   pmapR[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb   F  s    
(   R   R    Rb   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   D  s   t	   UDPClientc           B   s   e  Z d    Z RS(   c         C   sf   t  |  } | j | | t d f  } | j   | d k rI t d  n  t j |  | | | |  d  S(   Ni    s   program not registered(   R   R   t   IPPROTO_UDPRd   R+   R   Rb   (   R   R<   R   R   R   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb   Q  s    
(   R   R    Rb   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   O  s   t   BroadcastUDPClientc           B   s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   sK   t  |  |  _ |  j j |  j  | |  _ | |  _ d  |  _ |  j   d  S(   N(	   R   R   R   t   my_reply_handlerR   R   Ra   t   user_reply_handlerR`   (   R   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb   \  s    			c         C   s   |  j  j   d  S(   N(   R   Rd   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRd   d  s    c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   g  s    c         C   s   |  j  j |  d  S(   N(   R   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   j  s    c         C   sq   | \ } } |  j  j |  |  j   } |  j  j   |  j j | | f  |  j d  k	 rm |  j | |  n  d  S(   N(   Rh   Rt   Ro   Rl   R   R   R   Ra   (   R   R   R   R[   R   Rp   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   m  s    c         C   s   |  j  j   | r  | |  n  | d  k rA d   } | |  _ n	 | |  _ g  |  _ |  j  j   } |  j j |  j |  j	 | | f  } |  j S(   Nc           S   s   d  S(   N(    (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   {  R8   (
   Rg   Rt   Ra   Ro   R   R:   R   R   R   R   (   R   R   Rm   Rn   Ro   R   t   packed_argst   dummy_replies(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRq   v  s    				(   R   R    Rb   Rd   R   R   R   Rq   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   Z  s   						t   Serverc           B   sY   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   c         C   sa   | |  _  | |  _ | |  _ | |  _ |  j   |  j   |  j j   \ |  _  |  _ |  j   d  S(   N(	   R<   R   R   R[   R\   R]   Rc   t   getsocknameR`   (   R   R<   R   R   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyRb     s    				

c         C   sL   |  j  |  j |  j |  j f } t |  j  } | j |  sH t d  n  d  S(   Ns   register failed(   R   R   R   R[   R   R<   R   R+   (   R   R   R>   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   register  s    c         C   sL   |  j  |  j |  j |  j f } t |  j  } | j |  sH t d  n  d  S(   Ns   unregister failed(   R   R   R   R[   R   R<   R   R+   (   R   R   R>   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt
   unregister  s    c         C   s  |  j  j |  |  j j   |  j  j   } |  j j |  |  j  j   } | t k r[ d  S|  j j t  |  j  j   } | t	 k r |  j j t
  |  j j t  |  j j t	  |  j j t	  |  j j   S|  j j t  |  j j t t   f  |  j  j   } | |  j k r7|  j j t  |  j j   S|  j  j   } | |  j k r|  j j t  |  j j |  j  |  j j |  j  |  j j   S|  j  j   } d t |  } y t |  |  } Wn+ t k
 r|  j j t  |  j j   SX|  j  j   }	 |  j  j   }
 y |   Wn} t t f k
 r|  j j   |  j j |  |  j j t  |  j j t  |  j j t t   f  |  j j t  n X|  j j   S(   Nt   handle_(   Rh   Rt   Rg   R(   R   R%   R   Ra   R   R   R,   R-   R:   R   R   Ru   R9   R   R/   R   R0   t   reprt   getattrt   AttributeErrorR1   R'   R   R#   R2   (   R   R   R   R)   R   R   R   t   methnamet   methR   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   handle  s\    c         C   s?   y |  j  j   Wn t k
 r* t  n X|  j j t  d  S(   N(   Rh   Rl   R+   R#   Rg   R   R   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   turn_around  s
    
c         C   s   |  j    d  S(   N(   R   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   handle_0  s    c         C   s   t  d  d  S(   Ns   makesocket not defined(   R+   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR\     s    c         C   s    |  j  j |  j |  j f  d  S(   N(   Rc   Rf   R<   R[   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR]     s    c         C   s   t    |  _ t d  |  _ d  S(   NR8   (   R    Rg   R$   Rh   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR`     s    (   R   R    Rb   R   R   R   R   R   R\   R]   R`   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s   	
			3				t	   TCPServerc           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s(   t  j  t  j t  j  |  _ t |  _ d  S(   N(   RG   R   R   Rc   R   R   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR\     s    c         C   s1   |  j  j d  x |  j |  j  j    q Wd  S(   Ni    (   Rc   t   listent   sessiont   accept(   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   loop  s    c         C   s   | \ } \ } } xs y t  |  } Wn1 t k
 r9 Pn  t j k
 rX } d G| GHPn X|  j |  } | d  k	 r t | |  q q Wd  S(   Ns   socket error:(   R   R   RG   R   R   Ra   R   (   R   t
   connectionRc   R<   R[   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s    	c         C   s1   |  j  j d  x |  j |  j  j    q Wd  S(   Ni    (   Rc   R   t   forksessionR   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   forkingloop  s    c         C   s   d d  l  } y# x | j d d  \ } } q WWn | j k
 rE n Xd  } z5 | j   } | rs | d j   d  S|  j |  Wd  | d k r | j d  n  Xd  S(   Nii    i   (   RB   t   waitpidR   Ra   t   forkRd   R   t   _exit(   R   R   RB   t   pidt   sts(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s     (   R   R    R\   R   R   R   R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR     s
   				t	   UDPServerc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s(   t  j  t  j t  j  |  _ t |  _ d  S(   N(   RG   R   R   Rc   R   R   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR\   &  s    c         C   s   x |  j    q Wd  S(   N(   R   (   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   *  s    c         C   sM   |  j  j d  \ } } |  j |  } | d  k	 rI |  j  j | |  n  d  S(   Ni    (   Rc   R   R   Ra   R   (   R   R   t	   host_portR   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   .  s    (   R   R    R\   R   R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   $  s   		c          C   sz   t  d  }  |  j   } | j   xQ | D]I \ } } } } | G| G| t k rV d Gn | t k ri d Gn | G| GHq) Wd  S(   NR8   t   tcpt   udp(   R   R   t   sortR   R   (   R   R   R   R   R   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   test7  s    
  c          C   s}   d d  l  }  |  j d r) |  j d } n d } d   } t |  } | j |  | j d  | j d d t d f  } d  S(   Nii   s   <broadcast>c         S   s#   | \ } } | d t  |   GHd  S(   Ns   	(   R   (   R   R   R<   R[   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   rhK  s    i   i i    (   t   syst   argvR   R   R   R   R   (   R   R   R   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt	   testbcastE  s    	c          C   s   d t  f d     Y}  |  d d d d  } y | j   Wn  t k
 r[ } d G| Gd GHn X| j   d	 GHz | j   Wd  | j   d
 GHXd  S(   Nt   Sc           B   s   e  Z d    Z RS(   c         S   s@   |  j  j   } |  j   d Gt |  GH|  j j | |  d  S(   Ns   RPC function 1 called, arg(   Rh   t   unpack_stringR   R   Rg   R	   (   R   t   arg(    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   handle_1\  s    
(   R   R    R   (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR   [  s   R8   i    i   i    s   RuntimeError:s	   (ignored)s   Service started...s   Service interrupted.(   R   R   R+   R   R   (   R   t   sR   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   testsvrY  s    

c          C   s~   d d  l  }  |  j d r) |  j d } n d } d t f d     Y} | | d d  } d GH| j d  } d	 Gt |  GHd  S(
   Nii   R8   t   Cc           B   s   e  Z d    Z RS(   c         S   s"   |  j  d | |  j j |  j j  S(   Ni   (   Rq   Rg   R	   Rh   R   (   R   R   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   call_1v  s    	(   R   R    R  (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyR  u  s   i    s   making call...s   hello, world, s   call returned(   R   R   R   R  R   (   R   R<   R  t   cR   (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   testcltp  s     (    (    (    (I   t   xdrRG   RB   R   R   R   Ru   t	   AUTH_UNIXt
   AUTH_SHORTt   AUTH_DESR   R,   R   R/   R0   R1   R2   R-   R.   t   AUTH_BADCREDt   AUTH_REJECTEDCREDt   AUTH_BADVERFt   AUTH_REJECTEDVERFt   AUTH_TOOWEAKR    t	   ExceptionR!   R"   R#   R$   R9   R?   RI   RJ   RF   RZ   R}   R   R   R   Ra   R   R   R   R   R   R   R   R   t   PMAPPROC_NULLR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  (    (    (    s$   /usr/lib64/python2.7/Demo/rpc/rpc.pyt   <module>   s   %A				Q					'>	 	1c6			