
    /hh                     d   S r SSKrSqSqS r " S S5      r " S S5      rSS jr\R                  S4S	 jr	S
 r
S rS rS rS rS r\R                   r\R"                  r\R                  r\R$                  r\R&                  r\R(                  rSrSr\" \S5      (       a  \R0                  rgg)z.Mock socket module used by the smtplib tests.
    Nc                     U q g N)_reply_data)lines    9/opt/python-3.13.8/usr/lib/python3.13/test/mock_socket.py
reply_withr      s    K    c                   .    \ rS rSrSrS rSS jrS rSrg)	MockFile   z8Mock file object returned by MockSocket.makefile().
    c                     Xl         g r   lines)selfr   s     r   __init__MockFile.__init__   s    
r	   c                     U R                   R                  S5      S-   nUS:  a#  U R                   R                  SX!S 5        US U nU$ )Nr      
)r   popinsert)r   limitresults      r   readlineMockFile.readline   sI    "W,A:JJab!12FU^Fr	   c                     g r    r   s    r   closeMockFile.close       r	   r   N))	__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes__r   r	   r   r   r      s    r	   r   c                       \ rS rSrSrSS jrS rSS jrS rS r	S	 r
S
 rSS jrS rS rS rS rS rSS jrSS jrSS jrS rS rS rSrg)
MockSocket#   z2Mock socket object used by the smtplib tests.
    Nc                     Xl         / U l        / U l        [        (       a!  U R                  R	                  [        5        S qS U l        S U l        g r   )familyoutputr   r   appendconntimeout)r   r-   s     r   r   MockSocket.__init__&   s?    
;JJk*K	r	   c                 :    U R                   R                  U5        g r   )r   r/   )r   r   s     r   
queue_recvMockSocket.queue_recv1   s    

$r	   c                 B    U R                   R                  S5      S-   nU$ )Nr   r   )r   r   )r   bufsizeflagsdatas       r   recvMockSocket.recv4   s    zz~~a 7*r	   c                     gNr   r   r   s    r   filenoMockSocket.fileno8       r	   c                 .    Uc  [         U l        g Xl        g r   )_defaulttimeoutr1   )r   r1   s     r   
settimeoutMockSocket.settimeout;   s    ?*DL"Lr	   c                     U R                   $ r   r1   r   s    r   
gettimeoutMockSocket.gettimeoutA   s    ||r	   c                     g r   r   )r   leveloptnamevalues       r   
setsockoptMockSocket.setsockoptD   r!   r	   c                     gr=   r   )r   rJ   rK   buflens       r   
getsockoptMockSocket.getsockoptG   r@   r	   c                     g r   r   )r   addresss     r   bindMockSocket.bindJ   r!   r	   c                 <    [        5       U l        U R                  S4$ )Nc)r*   r0   r   s    r   acceptMockSocket.acceptM   s    L	yy#~r	   c                     g)N)z0.0.0.0r   r   r   s    r   getsocknameMockSocket.getsocknameQ   s    r	   c                     g r   r   )r   flags     r   setblockingMockSocket.setblockingT   r!   r	   c                     g r   r   )r   backlogs     r   listenMockSocket.listenW   r!   r	   c                 0    [        U R                  5      nU$ r   )r   r   )r   moder7   handles       r   makefileMockSocket.makefileZ   s    $**%r	   c                 Z    Xl         U R                  R                  U5        [        U5      $ r   lastr.   r/   lenr   r9   r8   s      r   sendallMockSocket.sendall^   #    	4 4yr	   c                 Z    Xl         U R                  R                  U5        [        U5      $ r   rl   ro   s      r   sendMockSocket.sendc   rr   r	   c                     g)N)zpeer-addressz	peer-portr   r   s    r   getpeernameMockSocket.getpeernameh   s    ,r	   c                     g r   r   r   s    r   r   MockSocket.closek   r!   r	   c                     g r   r   )r   hosts     r   connectMockSocket.connectn   r!   r	   )r0   r-   rm   r   r.   r1   r   )rr"   )r#   r$   r%   r&   r'   r   r4   r:   r>   rC   rG   rM   rQ   rU   rY   r\   r`   rd   ri   rp   rt   rw   r   r}   r(   r   r	   r   r*   r*   #   sf    	 #

-r	   r*   c                     [        U 5      $ r   )r*   )r-   typeprotos      r   socketr   r   s    fr	   c                      [        U S   5      n[        5       nU[        R
                  L a
  [        5       nUR                  U5        U$ ! [         a    [        ef = f)N   )int
ValueErrorerrorr*   socket_module_GLOBAL_DEFAULT_TIMEOUTgetdefaulttimeoutrC   )rT   r1   source_addressint_portmss        r   create_connectionr   u   sZ    wqz? 
B-777#%MM'I  s   A
 
Ac                     U q g r   rB   rF   s    r   setdefaulttimeoutr      s    Or	   c                      [         $ r   r   r   r	   r   r   r      s    r	   c                      gN r   r   r	   r   getfqdnr          r	   c                      g r   r   r   r	   r   gethostnamer      s    r	   c                     gr   r   )names    r   gethostbynamer      r   r	   c                  .    [         R                  " U 0 UD6$ r   )r   getaddrinfo)argskws     r   r   r      s    $$d1b11r	   AF_UNIX)NNN)r'   r   r   rB   r   r   r   r*   r   r   r   r   r   r   r   r   gaierrorr   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	   