
    daf                     V   d Z ddlZdadad Z G d d      Z G d d      ZddZej                  dfd	Z	d
 Z
d Zd Zd Zd Zd Zej                   Zej"                  Zej                  Zej$                  Zej&                  Zej(                  ZdZdZ eed      rej0                  Zyy)z.Mock socket module used by the smtplib tests.
    Nc                     | a y N)_reply_data)lines    +/root/Python-3.12.4/Lib/test/mock_socket.py
reply_withr      s    K    c                   $    e Zd ZdZd ZddZd Zy)MockFilez8Mock file object returned by MockSocket.makefile().
    c                     || _         y r   )lines)selfr   s     r   __init__zMockFile.__init__   s	    
r	   c                     | j                   j                  d      dz   }|dk\  r$| j                   j                  d||d        |d | }|S )Nr      
)r   popinsert)r   limitresults      r   readlinezMockFile.readline   sK    "W,A:JJab!12FU^Fr	   c                      y r    r   s    r   closezMockFile.close       r	   N))__name__
__module____qualname____doc__r   r   r   r   r	   r   r   r      s    r	   r   c                       e Zd ZdZddZd ZddZd Zd Zd Z	d	 Z
dd
Zd Zd Zd Zd Zd ZddZddZddZd Zd Zd Zy)
MockSocketz2Mock socket object used by the smtplib tests.
    Nc                     || _         g | _        g | _        t        r!| j                  j	                  t               d ad | _        d | _        y r   )familyoutputr   r   appendconntimeout)r   r%   s     r   r   zMockSocket.__init__&   s?    
JJk*K	r	   c                 :    | j                   j                  |       y r   )r   r'   )r   r   s     r   
queue_recvzMockSocket.queue_recv1   s    

$r	   c                 B    | j                   j                  d      dz   }|S )Nr   r   )r   r   )r   bufsizeflagsdatas       r   recvzMockSocket.recv4   s    zz~~a 7*r	   c                      yNr   r   r   s    r   filenozMockSocket.fileno8       r	   c                 .    |t         | _        y || _        y r   )_defaulttimeoutr)   )r   r)   s     r   
settimeoutzMockSocket.settimeout;   s    ?*DL"DLr	   c                     | j                   S r   r)   r   s    r   
gettimeoutzMockSocket.gettimeoutA   s    ||r	   c                      y r   r   )r   leveloptnamevalues       r   
setsockoptzMockSocket.setsockoptD   r   r	   c                      yr2   r   )r   r<   r=   buflens       r   
getsockoptzMockSocket.getsockoptG   r4   r	   c                      y r   r   )r   addresss     r   bindzMockSocket.bindJ   r   r	   c                 <    t               | _        | j                  dfS )Nc)r#   r(   r   s    r   acceptzMockSocket.acceptM   s    L	yy#~r	   c                      y)N)z0.0.0.0r   r   r   s    r   getsocknamezMockSocket.getsocknameQ   s    r	   c                      y r   r   )r   flags     r   setblockingzMockSocket.setblockingT   r   r	   c                      y r   r   )r   backlogs     r   listenzMockSocket.listenW   r   r	   c                 0    t        | j                        }|S r   )r   r   )r   moder-   handles       r   makefilezMockSocket.makefileZ   s    $**%r	   c                 \    || _         | j                  j                  |       t        |      S r   lastr&   r'   lenr   r/   r.   s      r   sendallzMockSocket.sendall^   %    	4 4yr	   c                 \    || _         | j                  j                  |       t        |      S r   rV   rY   s      r   sendzMockSocket.sendc   r[   r	   c                      y)N)zpeer-addressz	peer-portr   r   s    r   getpeernamezMockSocket.getpeernameh   s    ,r	   c                      y r   r   r   s    r   r   zMockSocket.closek   r   r	   c                      y r   r   )r   hosts     r   connectzMockSocket.connectn   r   r	   r   )rr   )r   r   r    r!   r   r+   r0   r3   r7   r:   r?   rB   rE   rH   rJ   rM   rP   rT   rZ   r]   r_   r   rc   r   r	   r   r#   r#   #   sf    	 #

-r	   r#   c                     t        |       S r   )r#   )r%   typeprotos      r   socketrh   r   s    fr	   c                     	 t        | d         }t               }|t        j
                  u r
t               }|j                  |       |S # t        $ r t        w xY w)N   )int
ValueErrorerrorr#   socket_module_GLOBAL_DEFAULT_TIMEOUTgetdefaulttimeoutr7   )rD   r)   source_addressint_portmss        r   create_connectionrt   u   sZ    wqz? 
B-777#%MM'I  s   A	 	Ac                     | a y r   r6   r9   s    r   setdefaulttimeoutrw      s    Or	   c                      t         S r   rv   r   r	   r   rp   rp      s    r	   c                       yN r   r   r	   r   getfqdnr|          r	   c                       y r   r   r   r	   r   gethostnamer      s    r	   c                      yrz   r   )names    r   gethostbynamer      r}   r	   c                  ,    t        j                  | i |S r   )rn   getaddrinfo)argskws     r   r   r      s    $$d1b11r	   AF_UNIX)NNN)r!   rh   rn   r6   r   r   r   r#   ro   rt   rw   rp   r|   r   r   r   gaierrorrm   AF_INETAF_INET6SOCK_STREAM
SOL_SOCKETSO_REUSEADDRhasattrr   r   r	   r   <module>r      s     

  L L^ (5'L'L%)

	2 !! (?? 


!!''

=)$##G %r	   