
     f|                    D   d dl mZ d dlmZ d dlmZmZmZ d dlZd dl	Z	d dl
Z
d dlZ
d dlmZmZmZ ddlmZmZmZ dd	lmZmZ er d d
lmZmZ d dlmZ d dlmZ ddlmZ ddl m!Z! ddZ" ej#        d           G d de
j$        j%                              Z&ddZ'ddZ(dS )    )annotations)partial)TYPE_CHECKINGAnyNoReturnN)AF_INETIPPROTO_TCPSOCK_STREAM   )open_ssl_over_tcp_listenersopen_ssl_over_tcp_streamserve_ssl_over_tcp   )
SERVER_CTX
client_ctx)AddressFamily
SocketKind)
SSLContext)Stream)SocketListener)SSLListenerstreamr   returnNonec                  K   | 4 d {V  	 	 |                      d           d {V }|sn|                     |           d {V  :n# t          j        $ r Y nw xY wd d d           d {V  d S # 1 d {V swxY w Y   d S )NTi'  )receive_somesend_alltrioBrokenResourceError)r   datas     i/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_tests/test_highlevel_ssl_helpers.pyecho_handlerr"       sU             	,#0077777777 ood+++++++++	, ' 	 	 	D	                             s4   A1;A	A1	AA1AA11
A;>A;F)slotsc                  4    e Zd ZU ded<   	 	 	 	 dddZddZdS )FakeHostnameResolverz+tuple[str, int] | tuple[str, int, int, int]sockaddrr   hostbytes | Noneportbytes | str | int | Nonefamilyinttypeprotoflagsr   ]list[tuple[AddressFamily, SocketKind, int, str, tuple[str, int] | tuple[str, int, int, int]]]c                >   K   t           t          t          d| j        fgS )N )r   r
   r	   r&   )selfr'   r)   r+   r-   r.   r/   s          r!   getaddrinfoz FakeHostnameResolver.getaddrinfo2   s      " +{BFGG    argsr   r   c                   K   t           )N)NotImplementedError)r3   r6   s     r!   getnameinfoz FakeHostnameResolver.getnameinfoE   s      !!r5   N)r   r   r   r   )r'   r(   r)   r*   r+   r,   r-   r,   r.   r,   r/   r,   r   r0   )r6   r   r   r   )__name__
__module____qualname____annotations__r4   r9    r5   r!   r%   r%   .   sb         9999 H H H H H&" " " " " "r5   r%   r   r   c           
     ~  K   t          j                    4 d {V }|                    t          t          t
          dt          d                     d {V }|\  }|4 d {V  |j        }|j        	                                }t          |          }t           j                            |           t          dd           d {V }|4 d {V  t          j        t           j                  5  |                                 d {V  d d d            n# 1 swxY w Y   d d d           d {V  n# 1 d {V swxY w Y   t          dd|            d {V }|4 d {V  t          j        t           j                  5  |                                 d {V  d d d            n# 1 swxY w Y   d d d           d {V  n# 1 d {V swxY w Y   t          dd|            d {V }|4 d {V  t#          |t           j                  sJ |j        dk    sJ |                    d           d {V  |                    d	           d {V dk    sJ 	 d d d           d {V  n# 1 d {V swxY w Y   |j        rJ t          dd| d
d	           d {V }|4 d {V  |j        sJ 	 d d d           d {V  n# 1 d {V swxY w Y   |j                                         d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr   	127.0.0.1r'   ztrio-test-1.example.orgP   zxyzzy.example.org)ssl_context   xr   T)rC   https_compatiblehappy_eyeballs_delay)r   open_nurserystartr   r   r"   r   transport_listenersocketgetsocknamer%   set_custom_hostname_resolverr   pytestraisesr   do_handshake
isinstance	SSLStreamserver_hostnamer   r   _https_compatiblecancel_scopecancel)r   nurseryreslistenertp_listenerr&   hostname_resolverr   s           r!   1test_open_ssl_over_tcp_stream_and_everything_elser[   K   s       "" <* <* <* <* <* <* <*g
 --&a+          	  0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	**2*EK")5577H 4X > >K445FGGG 44MrRRRRRRRRF 0 0 0 0 0 0 0 0]4#;<< 0 0 --/////////0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4#RZ        F  0 0 0 0 0 0 0 0]4#;<< 0 0 --/////////0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 4)2:        F  < < < < < < < <!&$.99999-1JJJJJood+++++++++#0033333333t;;;;;	< < < < < < < < < < < < < < < < < < < < < < < < < < < ////3)&!%%&        F  0 0 0 0 0 0 0 0/////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  '')))a0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	* 0	*<* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <* <*s  A	L,%A-LD51D	D5DD5D D5#L5
D??LD?#L&G	F,	 G	,F00G	3F04G	7L	
GLG#L:A&I3!L3
I==L I=.L/
K:L
KLKL6L,
L	L,L	L,,
L69L6c                 *  K   t          dt          d           d {V \  } | 4 d {V  t          | t          j                  sJ | j        }t          |t          j                  sJ |j                                        d         dk    sJ | j	        rJ 	 d d d           d {V  n# 1 d {V swxY w Y   t          dt          dd           d {V \  } | 4 d {V  | j	        sJ 	 d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr   r@   rA   T)r'   rE   )
r   r   rP   r   r   rI   r   rJ   rK   rS   )rX   tls     r!    test_open_ssl_over_tcp_listenersr^      sj     3AzTTTTTTTTTKX . . . . . . . .(D$455555("d122222y$$&&q)[8888-----. . . . . . . . . . . . . . . . . . . . . . . . . . . 4	:K$        KX  * * * * * * * *)))))* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s$   A.B++
B58B5$
D
DD)r   r   r   r   )r   r   r   r   )r   r   ))
__future__r   	functoolsr   typingr   r   r   attrsrM   r   trio.testingtrio.socketr   r	   r
   _highlevel_ssl_helpersr   r   r   test_sslr   r   rJ   r   r   sslr   trio.abcr   _highlevel_socketr   _sslr   r"   defineabcHostnameResolverr%   r[   r^   r>   r5   r!   <module>rn      s   " " " " " "       / / / / / / / / / /        9 9 9 9 9 9 9 9 9 9          - , , , , , , , #00000000222222""""""	 	 	 	 E" " " " "484 " " "8?* ?* ?* ?*D* * * * * *r5   