‰.
„52c      si    d  Z   d   k Z  k Z  k Z  d Z  e i e i e f Z  d Z  d Z  d Z  d d Z	   e
 Z ! e
 Z " e
 Z % d „  Z , d „  Z 4 d „  Z 9 d	 „  Z B d
 „  Z L d „  Z T d „  Z ^ d „  Z b d f  d „  ƒ  YZ x d e f d „  ƒ  YZ Ò d e f d „  ƒ  YZ Ø d f  d „  ƒ  YZ d „  Z *d „  Z d S(   sû   socket.py for mac - Emulate socket module with mactcp and macdnr

Currently only implements TCP sockets (AF_INET, SOCK_STREAM).
Esoteric things like socket options don't work,
but getpeername() and makefile() do work; everything used by ftplib works!
s   socket_wrapper.errori   i   i   i   c     s4   % & ' t  t j o ( t i ƒ  a  n ) t  Sd  S(   N(   s
   _myaddresss   Nones   mactcps   IPAddr(    s   /usr/lib/python/mac/socket.pys   _myipaddressc   sW   , - t  |  ƒ t  d ƒ j o . |  Sn / t i |  ƒ } 0 | i ƒ  1 | i Sd  S(   Ni   (   s   types   strs   macdnrs	   StrToAddrs   ptrs   waits   ip0(   s   strs   ptrs   /usr/lib/python/mac/socket.pys
   _ipaddressc   s&   4 5 t  |  ƒ } 6 t i | ƒ Sd  S(   N(   s
   _ipaddresss   strs   ids   macdnrs	   AddrToStr(   s   strs   ids   /usr/lib/python/mac/socket.pys   gethostbynamec   s   9 : t  |  ƒ } ; t i | ƒ } < | i ƒ  = | i } > | d d j o > | d  } n ? g  |  g f \ } } @ | | | f Sd  S(   Ni   s   .(   s
   _ipaddresss   strs   ids   macdnrs
   AddrToNames   ptrs   waits   cnames   names   namess	   addresses(   s   strs   ids   ptrs   names   namess	   addressess   /usr/lib/python/mac/socket.pys   gethostbyaddrc    s\   B C D t  t j o; E t ƒ  }  F t i |  ƒ } G | i ƒ  H | i a  n I t  Sd  S(   N(	   s   _mynames   Nones   _myipaddresss   ids   macdnrs
   AddrToNames   ptrs   waits   cname(   s   ids   ptrs   /usr/lib/python/mac/socket.pys   gethostnamec    sC   L M N t  t j o" O t ƒ  }  P t i |  ƒ a  n Q t  Sd  S(   N(   s
   _myaddrstrs   Nones   _myipaddresss   ids   macdnrs	   AddrToStr(   s   ids   /usr/lib/python/mac/socket.pys   _gethostaddressc   sw   T U |  t j o V t d | ‚ n W | t j o X t ƒ  Sn Y | t j o Z t ƒ  Sn [ t d | ‚ d  S(   Ns    Protocol family %d not supporteds   Protocol type %d not supported(   s   familys   AF_INETs   _myerrors   types
   SOCK_DGRAMs
   _udpsockets   SOCK_STREAMs
   _tcpsocket(   s   familys   types   whichs   /usr/lib/python/mac/socket.pys   socketc    s   ^ _ t  d ‚ d  S(   Ns    Operation not supported on a mac(   s   _myerror(   s   argss   /usr/lib/python/mac/socket.pys   fromfds   _socketc     s¡   b c d „  Z  f e  Z g e  Z h e  Z i e  Z j e  Z k e  Z l e  Z m e  Z n e  Z	 o e  Z
 p e  Z q e  Z r e  Z s e  Z t e  Z u e  Z RS(   Nc   s   c d t  d ‚ d  S(   Ns&   Operation not supported on this socket(   s   _myerror(   s   selfs   argss   /usr/lib/python/mac/socket.pys   unsupported(   s   unsupporteds   accepts   binds   closes   connects   filenos   getpeernames   getsocknames
   getsockopts   listens   recvs   recvfroms   sends   sendtos   setblockings
   setsockopts   shutdown(    s   /usr/lib/python/mac/socket.pys   _sockets
   _tcpsocketc     s¼   x z d „  Z  ƒ d „  Z  e d „ Z ” d „  Z › e d „ Z ¢ d „  Z § d „  Z ¬ d „  Z ° d
 d d	 „ Z	 ³ d d „ Z
 À d „  Z Ä d „  Z É d „  Z Í d „  Z RS(   Nc   sX   z { t  i t ƒ |  _ } d |  _ ~ d |  _  d |  _ € d |  _  d |  _	 d  S(   Ns    i    (
   s   mactcps	   TCPCreates   _BUFSIZEs   selfs   streams   databufs   udatabufs   ports   accepteds	   listening(   s   selfs   /usr/lib/python/mac/socket.pys   __init__c   s`   ƒ „ |  i o … t d ‚ n † d |  _ ‡ |  i i ƒ  ˆ d |  _ ‰ |  |  i ƒ  f Sd  S(   Ns   Not listeningi    i   (   s   selfs	   listenings   _myerrors   streams   waits   accepteds   getsockname(   s   selfs   /usr/lib/python/mac/socket.pys   acceptc   sK    Ž | t j o  | \ } } n ‘ | | f \ } } ’ | |  _ d  S(   N(   s   a2s   Nones   a1s   hosts   ports   self(   s   selfs   a1s   a2s   hosts   ports   /usr/lib/python/mac/socket.pys   bindc   s;   ” • |  i o – d |  _ — d  Sn ˜ |  i i ƒ  d  S(   Ni    (   s   selfs   accepteds   streams   Abort(   s   selfs   /usr/lib/python/mac/socket.pys   closec   sa   › œ | t j o  | \ } } n Ÿ | | f \ } }   |  i i |  i t | ƒ | ƒ d  S(   N(	   s   a2s   Nones   a1s   hosts   ports   selfs   streams
   ActiveOpens
   _ipaddress(   s   selfs   a1s   a2s   hosts   ports   /usr/lib/python/mac/socket.pys   connectc   s>   ¢ £ |  i i ƒ  \ } } ¤ t i | ƒ } ¥ | | f Sd  S(   N(   s   selfs   streams   GetSockNames   hosts   ports   macdnrs	   AddrToStr(   s   selfs   hosts   ports   /usr/lib/python/mac/socket.pys   getsocknamec   s>   § ¨ |  i i ƒ  } © t i | i ƒ } ª | | i f Sd  S(   N(	   s   selfs   streams   Statuss   sts   macdnrs	   AddrToStrs
   remoteHosts   hosts
   remotePort(   s   selfs   sts   hosts   /usr/lib/python/mac/socket.pys   getpeernamec   s)   ¬ ­ |  i i |  i ƒ ® d |  _ d  S(   Ni   (   s   selfs   streams   PassiveOpens   ports	   listening(   s   selfs   backlogs   /usr/lib/python/mac/socket.pys   listenc   s   ° ± t  |  | | ƒ Sd  S(   N(   s   _socketfiles   selfs   rws   bs(   s   selfs   rws   bss   /usr/lib/python/mac/socket.pys   makefiles   ri   c   sÍ   ³ ´ | o µ t d ‚ n ¶ |  i ot · y% ¸ |  i i d ƒ \ |  _ } } WnE ¹ t i	 j
 o3 } º | d t i j o » t i	 | ‚ n n Xn ¼ |  i |  } ½ |  i | |  _ ¾ | Sd  S(   Ns#   recv flags not yet supported on maci    (   s   flagss   _myerrors   selfs   databufs   streams   Rcvs   urgs   marks   mactcps   errors   args   MACTCPs   connectionClosings   bufsizes   rv(   s   selfs   bufsizes   flagss   urgs   marks   args   rvs   /usr/lib/python/mac/socket.pys   recvi    c   s'   À Á |  i i | ƒ Â t | ƒ Sd  S(   N(   s   selfs   streams   Sends   bufs   len(   s   selfs   bufs   /usr/lib/python/mac/socket.pys   sendc   s2   Ä Å | d j o Æ d  Sn Ç |  i i ƒ  d  S(   Ni    (   s   hows   selfs   streams   Close(   s   selfs   hows   /usr/lib/python/mac/socket.pys   shutdownc   s#   É Ê |  i i ƒ  } Ë | i Sd  S(   N(   s   selfs   streams   Statuss   sts   amtUnreadData(   s   selfs   sts   /usr/lib/python/mac/socket.pys   bytes_readablec   s*   Í Î |  i i ƒ  } Ï | i | i Sd  S(   N(   s   selfs   streams   Statuss   sts
   sendWindows   sendUnacked(   s   selfs   sts   /usr/lib/python/mac/socket.pys   bytes_writeable(   s   __init__s   accepts   Nones   binds   closes   connects   getsocknames   getpeernames   listens   makefiles   recvs   sends   shutdowns   bytes_readables   bytes_writeable(    s   /usr/lib/python/mac/socket.pys
   _tcpsockets
   _udpsocketc     s   Ò Ô d „  Z  RS(   Nc   s
   Ô Õ d  S(   N(    (   s   selfs   /usr/lib/python/mac/socket.pys   __init__(   s   __init__(    s   /usr/lib/python/mac/socket.pys
   _udpsockets   _socketfilec     si   Ø Ú d „  Z  á d d „ Z í d „  Z ý d „  Z d „  Z d „  Z d „  Z d	 „  Z RS(
   Nc   s]   Ú Û | d d f j o Û t d ‚ n Ü | |  _ Ý | |  _  Þ | |  _ ß d |  _ d  S(   Ns   rs   ws   mode must be 'r' or 'w's    (   s   rws   _myerrors   socks   selfs   bss   buf(   s   selfs   socks   rws   bss   /usr/lib/python/mac/socket.pys   __init__c   s­   á â | d j  o ã d } n ä xY ä t |  i ƒ | j  o? å |  i i d ƒ } æ | o ç Pn è |  i | |  _ q& Wé |  i |  } ê |  i | |  _ ë | Sd  S(   Ni    iÿÿÿ(   s   lengths   lens   selfs   bufs   socks   recvs   news   rv(   s   selfs   lengths   news   rvs   /usr/lib/python/mac/socket.pys   readi   c   sä   í î k  } ï xT ï d |  i j o? ð |  i i d ƒ } ñ | o ò Pn ó |  i | |  _ q Wô d |  i j o õ |  i } ö d |  _ nD ø | i |  i d ƒ } ù |  i | d  } ú |  i | d |  _ û | Sd  S(   Ns   
iÿÿÿs    i   (	   s   strings   selfs   bufs   socks   recvs   news   rvs   indexs   i(   s   selfs   strings   news   rvs   is   /usr/lib/python/mac/socket.pys   readlinec   sZ   ý þ g  } ÿ |  i ƒ  }  x.  | o# | i | ƒ |  i ƒ  } q! W| Sd  S(   N(   s   lists   selfs   readlines   lines   append(   s   selfs   lists   lines   /usr/lib/python/mac/socket.pys	   readlinesc   s    |  i } t | ƒ | j o$ |  i ƒ  	|  i i | ƒ nT 
t | ƒ t |  i ƒ | j o |  i ƒ  | |  _ n |  i | |  _ d  S(   N(   s   selfs   bss   BSs   lens   bufs   flushs   socks   send(   s   selfs   bufs   BSs   /usr/lib/python/mac/socket.pys   writec   s0   x# | d r } |  i | ƒ q Wd  S(   Ni    (   s   lists   lines   selfs   write(   s   selfs   lists   lines   /usr/lib/python/mac/socket.pys
   writelinesc   sJ   |  i o |  i d j o& |  i i |  i ƒ d |  _ n d  S(   Ns   ws    (   s   selfs   bufs   rws   socks   send(   s   selfs   /usr/lib/python/mac/socket.pys   flushc   s   |  i ƒ  |  ` d  S(   N(   s   selfs   flushs   sock(   s   selfs   /usr/lib/python/mac/socket.pys   close(   s   __init__s   reads   readlines	   readliness   writes
   writeliness   flushs   close(    s   /usr/lib/python/mac/socket.pys   _socketfilec    sƒ    t  t t ƒ }  !|  i d d ƒ "|  i d ƒ } #d G| GH$|  i d ƒ } %| o &d G| GHn '|  i ƒ  d  S(   Ns   poseidon.cwi.nli   iè  s
   Time/date:s   Unexpected extra data:(   s   sockets   AF_INETs   SOCK_STREAMs   ss   connects   recvs   rvs   close(   s   ss   rvs   /usr/lib/python/mac/socket.pys
   __test_tcpc    sf   *+t  t t ƒ }  ,d GH-|  i d d f d ƒ .|  i d ƒ \ } } /d G| Gd G| GHd  S(   Ns   Sending data... (hello world)s   poseidon.cwi.nli   s   hello worldiè  s	   Got from s   :(   s   sockets   AF_INETs
   SOCK_DGRAMs   ss   sendtos   recvfroms   rvs   host(   s   ss   rvs   hosts   /usr/lib/python/mac/socket.pys
   __test_udpN(   s   __doc__s   mactcps   MACTCPs   macdnrs   _myerrors   errors
   SOCK_DGRAMs   SOCK_STREAMs   AF_INETs   _BUFSIZEs   Nones
   _myaddresss   _mynames
   _myaddrstrs   _myipaddresss
   _ipaddresss   gethostbynames   gethostbyaddrs   gethostnames   _gethostaddresss   sockets   fromfds   _sockets
   _tcpsockets
   _udpsockets   _socketfiles
   __test_tcps
   __test_udp(    s   /usr/lib/python/mac/socket.pys   ?