
    ՟f4                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlZddlmZ ddlmZmZmZmZmZ ddlmZmZmZ ddlmZmZ dd	lm Z  d
dl!m"Z"  ejF                  d      Z$eej4                  ejJ                  ejL                  f   Z' G d de jP                        Z) G d de"      Z* G d d      Z+ G d de      Z,y)    N)TracebackType)AnyIterableIteratorListOptionalTupleTypeUnion   )NetworkStream)ConnectionNotAvailableLocalProtocolErrorRemoteProtocolError
WriteErrormap_exceptions)OriginRequestResponse)LockShieldCancellation)Trace   )ConnectionInterfacezhttpcore.http11c                       e Zd ZdZdZdZdZy)HTTPConnectionStater   r   r      N)__name__
__module____qualname__NEWACTIVEIDLECLOSED     P/var/www/cvtools/html/venv/lib/python3.12/site-packages/httpcore/_sync/http11.pyr   r   +   s    
CFDFr&   r   c                      e Zd ZdZdZ	 d!dededee   ddfdZ	d	e
defd
Zd	e
ddfdZd	e
ddfdZ	 d!dej                   dee   ddfdZd	e
deeeeeeeef      ef   fdZd	e
dee   fdZ	 d!dee   deej                   eej6                     f   fdZd"dZd"dZdedefdZ defdZ!defdZ"defdZ#defdZ$de%fdZ&de%fdZ'd#dZ(	 	 	 d$deee)      dee)   dee*   ddfd Z+y)%HTTP11Connectioni   i  Noriginstreamkeepalive_expiryreturnc                     || _         || _        || _        d | _        t        j
                  | _        t               | _        d| _	        t        j                  t        j                  | j                        | _        y )Nr   )our_rolemax_incomplete_event_size)_origin_network_stream_keepalive_expiry
_expire_atr   r!   _stater   _state_lock_request_counth11
ConnectionCLIENTMAX_INCOMPLETE_EVENT_SIZE
_h11_state)selfr*   r+   r,   s       r'   __init__zHTTP11Connection.__init__6   sa     %2B+/)--6..ZZ&*&D&D
r&   requestc           	         | j                  |j                  j                        s/t        d|j                  j                   d| j                         | j
                  5  | j                  t        j                  t        j                  fv r2| xj                  dz  c_
        t        j                  | _        d | _        n
t               	 d d d        	 d|i}	 t        dt        ||      5 } | j                   di | d d d        t        dt        ||      5 } | j"                  di | d d d        t        dt        ||      5 } | j&                  di |\  }}}}}||||f|_        d d d        | j*                  }	dk(  s|j,                  d	k(  rd
|cxk  rdk  rn nt/        |	      }	t1        |t3        | |      |	d      S # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# t$        $ r Y w xY w# 1 sw Y   xY w# t4        $ r^}
t7               5  t        dt        |      5 }| j9                          d d d        n# 1 sw Y   nxY wd d d        |
# 1 sw Y   |
xY wd }
~
ww xY w)NzAttempted to send request to z on connection to r   r?   send_request_headerssend_request_bodyreceive_response_headerse   s   CONNECT   i,  )http_versionreason_phrasenetwork_stream)statusheaderscontent
extensionsresponse_closedr%   )can_handle_requesturlr*   RuntimeErrorr1   r6   r5   r   r!   r#   r7   r"   r4   r   r   logger_send_request_headers_send_request_bodyr   _receive_response_headersreturn_valuer2   methodHTTP11UpgradeStreamr   HTTP11ConnectionByteStreamBaseExceptionr   _response_closed)r=   r?   kwargstracerF   rI   rG   rJ   trailing_datarH   excs              r'   handle_requestzHTTP11Connection.handle_requestH   s   &&w{{'9'9:/0B0B/C Dll^% 
  	/{{2668K8P8PQQ##q(#188"&,..  		/8	)F*FGV 9.D..889 .H 6E+D++5f56 *FGV  3D22<V< !! !!	&"" "11N #:-C64GC4G!4^]!S24A$0%2&4		 	e	/ 	/9 96 6   F  	#% ,,fg> ,%))+, , ,, I, I		s   !A)GH G, +G>G, G +G, 3H $G;)AH GGG,  G)%G, ,	G85H 7G88H ;H H 	I.
I)I,I=	III
I)I&	!I))I.c                 n   |j                   j                  di       }|j                  dd       }t        t        j                  t        i      5  t        j
                  |j                  |j                  j                  |j                        }d d d        | j                  |       y # 1 sw Y   xY w)Ntimeoutwrite)rV   targetrJ   ra   )rL   getr   r8   r   r   rV   rO   rc   rJ   _send_eventr=   r?   timeoutsra   events        r'   rR   z&HTTP11Connection._send_request_headers   s    %%)))R8,,w-S335GHI 	KK~~{{))E	 	0	 	s   AB++B4c                 V   |j                   j                  di       }|j                  dd       }t        |j                  t              sJ |j                  D ]+  }t        j                  |      }| j                  ||       - | j                  t        j                         |       y )Nra   rb   )datard   )	rL   re   
isinstancer+   r   r8   Datarf   EndOfMessage)r=   r?   rh   ra   chunkri   s         r'   rS   z#HTTP11Connection._send_request_body   s    %%)))R8,,w-'..(333^^ 	5EHH%(EUG4	5 	))+W=r&   ri   ra   c                 z    | j                   j                  |      }|| j                  j                  ||       y y )Nrd   )r<   sendr2   rb   )r=   ri   ra   bytes_to_sends       r'   rf   zHTTP11Connection._send_event   s<     ,,U3$  &&}g&F %r&   c                    |j                   j                  di       }|j                  dd       }	 | j                  |      }t        |t        j
                        rn+t        |t        j                        r|j                  dk(  rnXd|j                  z   }|j                  j                         }| j                  j                  \  }}||j                  |j                  ||fS )Nra   readrd   rD   s   HTTP/)rL   re   _receive_eventrl   r8   r   InformationalResponsestatus_coderF   rJ   	raw_itemsr<   r]   reason)	r=   r?   rh   ra   ri   rF   rJ   r]   _s	            r'   rT   z*HTTP11Connection._receive_response_headers   s     %%)))R8,,vt,'''8E%.5#";";<%%,   %"4"44 --))+??88qU..g}TTr&   c              #   H  K   |j                   j                  di       }|j                  dd       }	 | j                  |      }t        |t        j
                        rt        |j                         n+t        |t        j                  t        j                  f      ry pw)Nra   rt   rd   )
rL   re   ru   rl   r8   rm   bytesrk   rn   PAUSEDrg   s        r'   _receive_response_bodyz'HTTP11Connection._receive_response_body   s     %%)))R8,,vt,'''8E%*EJJ''EC$4$4cjj#AB s   B B"c                    	 t        t        j                  t        i      5  | j                  j	                         }d d d        t        j
                  u r|| j                  j                  | j                  |      }|dk(  r4| j                  j                  t        j                  k(  rd}t        |      | j                  j                  |       n|S # 1 sw Y   xY w)Nrd   r&   z/Server disconnected without sending a response.)r   r8   r   r<   
next_event	NEED_DATAr2   rt   READ_NUM_BYTEStheir_stateSEND_RESPONSEreceive_data)r=   ra   ri   rk   msgs        r'   ru   zHTTP11Connection._receive_event   s     !8!8:M NO 52245 %++00'' 1  3;4??#>#>#BSBS#SKC-c22,,T2 1 5 5s   CCc                    | j                   5  | j                  j                  t        j                  u r| j                  j
                  t        j                  u rdt        j                  | _        | j                  j                          | j                  9t        j                         }|| j                  z   | _        n| j                          d d d        y # 1 sw Y   y xY wN)r6   r<   	our_stater8   DONEr   r   r#   r5   start_next_cycler3   time	monotonicr4   close)r=   nows     r'   rZ   z!HTTP11Connection._response_closed   s     	))SXX5OO//388;166002))5..*C&)D,B,B&BDO

	 	 	s   CCC c                 b    t         j                  | _        | j                  j	                          y r   )r   r$   r5   r2   r   r=   s    r'   r   zHTTP11Connection.close  s#     *00""$r&   c                      || j                   k(  S r   )r1   r=   r*   s     r'   rN   z#HTTP11Connection.can_handle_request  s    %%r&   c                 <    | j                   t        j                  k(  S r   r5   r   r#   r   s    r'   is_availablezHTTP11Connection.is_available  s    
 {{16666r&   c                     t        j                         }| j                  d uxr || j                  kD  }| j                  t        j
                  k(  xr | j                  j                  d      }|xs |S )Nis_readable)r   r   r4   r5   r   r#   r2   get_extra_info)r=   r   keepalive_expiredserver_disconnecteds       r'   has_expiredzHTTP11Connection.has_expired  sm    nn OO47QC$//<Q KK.333 C$$33MB 	
 !7$77r&   c                 <    | j                   t        j                  k(  S r   r   r   s    r'   is_idlezHTTP11Connection.is_idle'  s    {{16666r&   c                 <    | j                   t        j                  k(  S r   )r5   r   r$   r   s    r'   	is_closedzHTTP11Connection.is_closed*  s    {{18888r&   c                 |    t        | j                        }|d| j                  j                   d| j                   S )Nz, HTTP/1.1, , Request Count: )strr1   r5   namer7   r   s     r'   infozHTTP11Connection.info-  sA    T\\"jT[[%5%5$6 7"1124	
r&   c           	          | j                   j                  }t        | j                        }d| d|d| j                  j
                   d| j                   d	S )N<z [z, r   z]>)	__class__r   r   r1   r5   r   r7   )r=   
class_namer*   s      r'   __repr__zHTTP11Connection.__repr__4  sZ    ^^,,
T\\"
|2fZr$++*:*:); <"112"6	
r&   c                     | S r   r%   r   s    r'   	__enter__zHTTP11Connection.__enter__?  s    r&   exc_type	exc_value	tracebackc                 $    | j                          y r   )r   )r=   r   r   r   s       r'   __exit__zHTTP11Connection.__exit__B  s     	

r&   r   r-   N)r-   r)   )NNN),r   r   r    r   r;   r   r   r   floatr>   r   r   r_   rR   rS   r8   Eventrf   r	   r|   intr   rT   r   r~   r   r
   r}   ru   rZ   r   boolrN   r   r   r   r   r   r   r   r   rY   r   r   r%   r&   r'   r)   r)   2   s   N * -1	

 
 #5/	

 

$Gg G( GV
1W 
1 
1	>' 	>d 	> <@GYYG)1%G	GUU	uc5$uUE\':";UB	CU4	g 	(5/ 	 *.	syy$szz**	+: %& &D &7d 78T 87 794 9
c 

# 

 37-1-1	4./ M* M*	
 
r&   r)   c                   :    e Zd ZdededdfdZdee   fdZddZ	y)	rX   
connectionr?   r-   Nc                 .    || _         || _        d| _        y )NF)_connection_request_closed)r=   r   r?   s      r'   r>   z#HTTP11ConnectionByteStream.__init__L  s    %r&   c              #   ^  K   d| j                   i}	 t        dt        | j                   |      5   | j                  j                  di |D ]  }|  	 d d d        y # 1 sw Y   y xY w# t
        $ r7}t               5  | j                          d d d        |# 1 sw Y   |xY wd }~ww xY ww)Nr?   receive_response_bodyr%   )r   r   rQ   r   r~   rY   r   r   )r=   r[   ro   r^   s       r'   __iter__z#HTTP11ConnectionByteStream.__iter__Q  s     T]]+
	.vN  DT--DDNvN  EK        	 $% 

II	sc   B-A* &AA* B-A'#A* &B-'A* *	B*3
B%=B
B%B"	B%%B**B-c                     | j                   sFd| _         t        dt        | j                        5  | j                  j                          d d d        y y # 1 sw Y   y xY w)NTrM   )r   r   rQ   r   r   rZ   r   s    r'   r   z HTTP11ConnectionByteStream.close_  sR    ||DL(&$--@ 4  1134 4 4 4s   AAr   )
r   r   r    r)   r   r>   r   r|   r   r   r%   r&   r'   rX   rX   K  s2    #3 g $ 
(5/ 4r&   rX   c            	           e Zd ZdededdfdZddedee   defdZ	dd	edee   ddfd
Z
ddZ	 	 ddej                  dee   dee   defdZdedefdZy)rW   r+   leading_datar-   Nc                      || _         || _        y r   )_stream_leading_data)r=   r+   r   s      r'   r>   zHTTP11UpgradeStream.__init__g  s    )r&   	max_bytesra   c                     | j                   r%| j                   d | }| j                   |d  | _         |S | j                  j                  ||      S r   )r   r   rt   )r=   r   ra   buffers       r'   rt   zHTTP11UpgradeStream.readk  sN    ''
3F!%!3!3IJ!?DM<<$$Y88r&   r   c                 <    | j                   j                  ||       y r   )r   rb   )r=   r   ra   s      r'   rb   zHTTP11UpgradeStream.writes  s    67+r&   c                 8    | j                   j                          y r   )r   r   r   s    r'   r   zHTTP11UpgradeStream.closev  s    r&   ssl_contextserver_hostnamec                 <    | j                   j                  |||      S r   )r   	start_tls)r=   r   r   ra   s       r'   r   zHTTP11UpgradeStream.start_tlsy  s     ||%%k?GLLr&   r   c                 8    | j                   j                  |      S r   )r   r   )r=   r   s     r'   r   z"HTTP11UpgradeStream.get_extra_info  s    ||**400r&   r   r   )NN)r   r   r    r   r|   r>   r   r   r   rt   rb   r   ssl
SSLContextr   r   r   r   r%   r&   r'   rW   rW   f  s    *} *E *d *9c 9HUO 9u 9,E ,HUO ,t , *.#'	M^^M "#M %	M
 
M13 13 1r&   rW   )-enumloggingr   r   typesr   typingr   r   r   r   r   r	   r
   r   r8   _backends.baser   _exceptionsr   r   r   r   r   _modelsr   r   r   _synchronizationr   r   _tracer   
interfacesr   	getLoggerrQ   rm   rn   H11SendEventIntEnumr   r)   rX   rW   r%   r&   r'   <module>r      s      
  	 	 	  *  0 / 7  +			,	- KKHH$,, V* Vr4 461- 1r&   