509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
ó
¿œ^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   iÿÿÿÿNi   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    iÿÿÿÿNi²  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   iÿÿÿÿir   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(   Niÿÿÿÿi    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(   Niÿÿÿÿi   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(
   Niÿÿÿÿi   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			