???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................ó
¿œ^c           @   s›   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d Z d d d „  ƒ  YZ d d l m	 Z	 d e e	 f d „  ƒ  YZ
 d	 d d
 „  ƒ  YZ d S(   s   RPC Client module.iÿÿÿÿNi   t   Clientc           B   s§   e  Z d  Z e d „ Z e d „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z RS(   sC   RPC Client class.  No need to derive a class -- it's fully generic.c         C   s   |  j  | | ƒ |  j ƒ  d  S(   N(   t	   _pre_initt
   _post_init(   t   selft   addresst   verbose(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   __init__   s    c         C   sÙ   t  | ƒ t  d ƒ k r' d | f } n  | |  _ | |  _ |  j rT d t | ƒ GHn  t j t j t j ƒ |  _ |  j j | ƒ |  j r d GHn  d |  _	 d |  _
 i  |  _ |  j j d ƒ |  _ |  j j d ƒ |  _ d  S(   Ni    t    s   Connecting to %s ...s
   Connected.i   t   rt   w(   t   typet   _addresst   _verboset   reprt   sockett   AF_INETt   SOCK_STREAMt   _sockett   connectt   _lastidt   _nextidt   _repliest   makefilet   _rft   _wf(   R   R   R   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR      s    			 	 			c         C   s   |  j  d ƒ |  _ d  S(   Ns   .methods(   t   _callt   _methods(   R   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR   %   s    c         C   s   |  j  ƒ  d  S(   N(   t   _close(   R   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   __del__(   s    c         C   sj   |  j  r |  j  j ƒ  n  d  |  _  |  j r; |  j j ƒ  n  d  |  _ |  j r] |  j j ƒ  n  d  |  _ d  S(   N(   R   t   closet   NoneR   R   (   R   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR   +   s    	 		 		 c         C   s?   | |  j  k r2 t |  | ƒ } t |  | | ƒ | St | ‚ d  S(   N(   R   t   _stubt   setattrt   AttributeError(   R   t   namet   method(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   __getattr__3   s
    c         C   s   | |  _  d  S(   N(   R   (   R   R   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   _setverbose:   s    c         G   s   |  j  | | ƒ S(   N(   t   _vcall(   R   R"   t   args(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR   =   s    c         C   s   |  j  |  j | | ƒ ƒ S(   N(   t   _recvt   _vsend(   R   R"   R'   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR&   @   s    c         G   s   |  j  | | ƒ S(   N(   R)   (   R   R"   R'   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   _sendC   s    c         G   s   |  j  | | d ƒ S(   Ni    (   R)   (   R   R"   R'   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   _send_noreplyF   s    c         C   s   |  j  | | d ƒ S(   Ni    (   R)   (   R   R"   R'   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   _vsend_noreplyI   s    i   c         C   sy   |  j  } | d |  _  | s& | } n  | | | f } |  j d k rV d t | ƒ GHn  t j |  j ƒ } | j | ƒ | S(   Ni   s   sending request: %s(   R   R   R   t   picklet   PicklerR   t   dump(   R   R"   R'   t	   wantreplyt   idt   requestt   wp(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR)   L   s    	 
 c         C   s«   |  j  | ƒ \ } } } | | k r: t d | | f ‚ n  | d  k rJ | S| } t t | ƒ rq t t | ƒ } n | d k r‰ t j } n  | | k rž | } n  | | ‚ d  S(   Ns    request/reply id mismatch: %d/%ds   posix.errors	   mac.error(   s   posix.errors	   mac.error(   t   _vrecvt   RuntimeErrorR   t   hasattrt   __builtin__t   getattrt   ost   error(   R   R1   t	   exceptiont   valuet   ridt   x(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR(   V   s    	c         C   s@  |  j  ƒ  |  j j | ƒ rR |  j d k r7 d | GHn  |  j | } |  j | =| St | ƒ } xÛ |  j d k r| d | GHn  t j |  j ƒ } | j ƒ  } ~ |  j d k r¾ d t	 | ƒ GHn  | d } t | ƒ } | | k rû |  j d k r÷ d GHn  | S| |  j | <| | k ra |  j d k r+d GHn  d  d  | f Sqa Wd  S(   Ni   s"   retrieving previous reply, id = %ds   waiting for reply, id = %ds   got reply: %si   s   got its   got higher id, assume all ok(   t   _flushR   t   has_keyR   t   absR-   t	   UnpicklerR   t   loadR   R   (   R   R1   t   replyt   aidt   rpR=   t   arid(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR4   e   s6    
 
  
  c         C   s   |  j  j ƒ  d  S(   N(   R   t   flush(   R   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR?   }   s    (   t   __name__t
   __module__t   __doc__t   VERBOSER   R   R   R   R   R$   R%   R   R&   R*   R+   R,   R)   R(   R4   R?   (    (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR       s"   										
		(   t   Securityt   SecureClientc           B   s   e  Z d  „  Z RS(   c         G   sÊ   d d  l  } t |  j | ƒ t j |  ƒ |  j j ƒ  |  j j ƒ  } | j	 | j
 | ƒ ƒ } |  j | ƒ } t t | ƒ ƒ } | d d k r› | d  } n  |  j j | d ƒ |  j j ƒ  |  j ƒ  d  S(   Niÿÿÿÿt   Lls   
(   t   stringt   applyR   RM   R   R   RH   R   t   readlinet   atoit   stript   _encode_challengeR   t   longt   writeR   (   R   R'   RP   t   linet	   challenget   response(    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR   †   s     (   RI   RJ   R   (    (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyRN   „   s   R   c           B   s    e  Z d  Z d „  Z d „  Z RS(   sJ   Helper class for Client -- each instance serves as a method of the client.c         C   s   | |  _  | |  _ d  S(   N(   t   _clientt   _name(   R   t   clientR"   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR   ˜   s    	c         G   s   |  j  j |  j | ƒ S(   N(   R[   R&   R\   (   R   R'   (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   __call__œ   s    (   RI   RJ   RK   R   R^   (    (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyR   ”   s   	(    (    (   RK   t   sysR   R-   R7   R9   RL   R    t   securityRM   RN   R   (    (    (    s)   /usr/lib64/python2.7/Demo/pdist/client.pyt   <module>   s   s