ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
^c           @   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.iN(   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 r1d GHn  d S|  j d k rVd	 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   <lambda>i   R   c         S   s
   |  | k S(   N(    (   RC   t   names(    (    s)   /usr/lib64/python2.7/Demo/pdist/server.pyRD   m   R   (   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 rd
 GHn  d	 S(   Nis   %d
R   s   
id   i    s   Invalid response syntaxs   Invalid response valuei   s&   Response matches challenge.  Go ahead!(   t   stringt   _generate_challenget   sendRL   t   recvt   atolt   stript
   atol_errorR   R   t   _compare_challenge_response(   R   R    R   RV   t	   challenget   responset   data(    (    s)   /usr/lib64/python2.7/Demo/pdist/server.pyR   {   s,    !(   RP   RQ   R   R   (    (    (    s)   /usr/lib64/python2.7/Demo/pdist/server.pyRU   u   s   	(    (   RR   R2   R	   R*   R    R   RS   R   t   securityRT   RU   (    (    (    s)   /usr/lib64/python2.7/Demo/pdist/server.pyt   <module>   s   d