
    <|h                         d dl mZmZmZ d dlmZ  ej                          d dlZd dlZd dl	m
Z d dlmZ d dlZd ZdddddZ G d	 d
ej"                        Zedk(  r ej(                          yy)    )print_functiondivisionabsolute_import)monkeyN)test__socketc                 z    t        j                          }t        j                  |       t        || |d      }||fS )NTkeyfilecertfileserver_side)socket	greentestbind_and_listenwrap_socket)private_keycertificateraw_listenersocks       U/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/tests/test__ssl.pyssl_listenerr      s9    ==?Ll+|[;#')D    Fr	   c                    t        j                  t         j                        }t         j                  |_        d|_        |j                          |||j                  ||       |j                  | |      S )N)protocolF)r   r
   )r   )	ssl
SSLContextPROTOCOL_TLS	CERT_NONEverify_modecheck_hostnameload_default_certsload_cert_chainr   )r   r
   r   r   contexts        r   r   r      so    nn!!G --G"G h27Ct==r   c                       e Zd Zej                  j                  ej                  j                  e      d      Zej                  j                  ej                  j                  e      d      Z	e
j                  Zd Z fdZdZddz  xZZ  ej&                  d        ej(                  d      ej,                  j.                              Z  ej&                  d        ej(                  d      ej,                  j0                              Z ej2                  d	      d
        Zej6                   ej8                  d       fd              Zej6                  d        Zej6                  d        Z xZ S )TestSSLztest_server.crtztest_server.keyc                 n    t        | j                  | j                        \  }}| j                  |       |S N)r   privfiler   _close_on_teardown)selflistenerr   s      r   _setup_listenerzTestSSL._setup_listener1   s.    !-dmmT]]!K,-r   c           	      Z    | j                  t        t        t        |   |i |            S r&   )r(   r   superr$   create_connection)r)   argskwargs	__class__s      r   r.   zTestSSL.create_connection6   s1    &&gt>OOPR 	Rr   Fs   helloi zSometimes misses datazNot clear why we're skippingc                 &    g t        j                   fd      } j                         }|j                  d       	 t	        t
        dt
        j                        } j                  |      5  |j                   j                         d d d        |j                          |j                          d   d   j                          y # 1 sw Y   @xY w# |j                          |j                          d   d   j                          w xY w)Nc                  V    j                   j                  j                               S r&   )appendr*   accept)r)   server_socks   r   <lambda>z3TestSSL.test_ssl_sendall_timeout0.<locals>.<lambda>T   s"    k6H6HMM  "7$ r   )targetFSSLWantWriteErrorr   )r   Threadr.   setblockinggetattrr   SSLErrorassertRaisessendall_test_sendall_datajoinclose)r)   acceptorclientexpectedr6   s   `   @r   test_ssl_sendall_timeout0z!TestSSL.test_ssl_sendall_timeout0O   s     && /$ % '')5!
	& s$7FH""8, 8t6678 MMOLLNN1##%8 8 MMOLLNN1##%s$   0C 1CC CC 8DzNo longer raises SSLErrorc                     | j                  t        j                        5  t        t        |           d d d        y # 1 sw Y   y xY wr&   )r>   r   r=   r-   r$   test_empty_send)r)   r1   s    r   rH   zTestSSL.test_empty_sendn   s9     s||, 	3'402	3 	3 	3s	   =Ac                      y r&    r)   s    r   test_sendall_nonblockingz TestSSL.test_sendall_nonblocking}        	r   c                      y r&   rJ   rK   s    r   $test_connect_with_type_flags_ignoredz,TestSSL.test_connect_with_type_flags_ignored   rM   r   )!__name__
__module____qualname__ospathrA   dirname__file__r   r'   r   timeoutTIMEOUT_ERRORr+   r.    _test_sendall_timeout_check_timer@   	data_sentr   skipOnMacOnCIskipOnManylinuxr   TestTCPtest_sendall_arraytest_sendall_strskipOnWindowsrF   ignores_leakcheckskipOnPy310rH   rL   rO   __classcell__)r1   s   @r   r$   r$   !   s    ww||BGGOOH57HIHww||BGGOOH57HIH NNM
R (-$ &.	%99I0001HI:!	!!"9:  33	
 H.y../FG:!	!!"9:  11	
 Y;<& =&<   Y673 8 !3    !    !r   r$   __main__)
__future__r   r   r   geventr   	patch_allrS   r   gevent.testingtestingr   gevent.testsr   r   r   r   r]   r$   rP   mainrJ   r   r   <module>rl      sp    @ @      	  " & 
 "&% 	>dl"" dP zINN r   