
    BfO&                        d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlZd dlm	Z	m
Z
mZmZmZmZm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mZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d dl(Z)d dl*m+Z+m,Z,  G d d	          Z-dS )
    N)DictOptional)ClientConnectionErrorClientConnectorErrorClientHttpProxyErrorClientProxyConnectionErrorClientSSLErrorServerDisconnectedErrorServerTimeoutError)URL)MAX_POOL_CONNECTIONSConnectionClosedErrorConnectTimeoutErrorEndpointConnectionErrorHTTPClientErrorInvalidProxiesConfigErrorLocationParseErrorProxyConfigurationProxyConnectionErrorReadTimeoutErrorSSLError_is_ipaddresscreate_urllib3_contextensure_booleanget_cert_pathloggermask_proxy_url	parse_urlurlparse)CIMultiDict)_IOBaseWrapper_textc            	       ~    e Zd Zdddeddddfdedeeef         dedefdZ	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd ZdS )AIOHTTPSessionTNverifyproxiestimeoutmax_pool_connectionsc	                    t          j                    | _        i | _        || _        t          ||          | _        t          |t          t          f          r|\  }	}
n|x}	}
t          j        |	|
          }d | _        d | _        t          |t                    r|| _        n$t          |t                    r|\  | _        | _        || _        || _        | j        t#          d          | _        || _        || _        |	g | _        d S d S )N)r&   proxies_settings)sock_connect	sock_read   )keepalive_timeout)
contextlibAsyncExitStack_exit_stack	_sessions_verifyr   _proxy_config
isinstancelisttupleaiohttpClientTimeout
_cert_file	_key_filestr_timeout_connector_argsdict_max_pool_connections_socket_options)selfr%   r&   r'   r(   socket_optionsclient_certproxies_configconnector_argsconn_timeoutread_timeouts              f/home/panchajanya/Development/work/volatility3/lib/python3.11/site-packages/aiobotocore/httpsession.py__init__zAIOHTTPSession.__init__/   s1    &466 FH/n
 
 
 ge}-- 	2)0&L,,*11L<'%
 
 
 k3'' 	:)DOOU++ 	:.9+DOT^-' $("#=#=#=D %9"-!#%D    "!    c                    K   | j         rJ | S N)r2   rB   s    rI   
__aenter__zAIOHTTPSession.__aenter__d   s      >!!!rK   c                 z   K   | j                                          | j                                         d {V  d S rM   )r2   clearr1   aclose)rB   exc_typeexc_valexc_tbs       rI   	__aexit__zAIOHTTPSession.__aexit__i   sG      %%'''''''''''rK   c                     t                      S rM   )r   rN   s    rI   _get_ssl_contextzAIOHTTPSession._get_ssl_contextm   s    %'''rK   c                 D   | j         j        }|                    d          }|                    d          }||d S |                                 }	 t	          |          }t          |j                  sd|_        ||                    |           t          |t                    r$|                    |d         |d                    n*t          |t                    r|                    |           |S # t          t          f$ r}t          |          d }~ww xY w)	Nproxy_ca_bundleproxy_client_certT)cafiler      )keyfileerror)r4   settingsgetrX   r   r   hostcheck_hostnameload_verify_locationsr5   r7   load_cert_chainr<   OSErrorr   r   )rB   	proxy_urlr*   rZ   
proxy_certcontexturles           rI   _setup_proxy_ssl_contextz'AIOHTTPSession._setup_proxy_ssl_contextp   s9   -6*../@AA%))*=>>
"z'94''))	5I&&C !** .)-&*--_-EEE*e,, 4''
1z!}'MMMMJ,, 4''
333N+, 	5 	5 	5+!4444	5s   B&C9 9D
DDc                 p    |                     dd          }|                                dk    x}r|d= |pd S )NzTransfer-Encoding chunked)rb   lower)rB   headerstransfer_encodingrp   s       rI   _chunkedzAIOHTTPSession._chunked   sH    #KK(;R@@'--//9<<7 	-+,$rK   c                    d }t          | j                  r|r|                     |          }n|                                 }|rT| j        r |                    | j        | j                   t          | j                  }|r|                    |d d            t          j
        d| j        t          | j                  |d| j        S )N)limit
verify_sslssl )boolr3   rm   rX   r:   rf   r;   r   re   r8   TCPConnectorr@   r>   )rB   rh   ssl_contextca_certss       rI   _create_connectorz AIOHTTPSession._create_connector   s     	L 6";;IFF #3355 
L? //   )66 L55hdKKK# 
,DL))
 
 "	
 
 	
rK   c                    K   | j                             |          x}s[|                     |          }| j                            t          j        || j        dhd                     d {V x| j         |<   }|S )NzCONTENT-TYPEF)	connectorr'   skip_auto_headersauto_decompress)r2   rb   r~   r1   enter_async_contextr8   ClientSessionr=   )rB   rh   sessionr   s       rI   _get_sessionzAIOHTTPSession._get_session   s      >--i888 	..y99I !% 0 D D%' M'5&6$)	  ! !      	DN rK   c                 D   K   |                      d d d            d {V  d S rM   )rV   rN   s    rI   closezAIOHTTPSession.close   s4      nnT4...........rK   c           	        K   	 | j                             |j                  }| j                             |j                  }|j        }|j        }|j        }t          t          j        	                    dd                    rt          |j                  j        }||d<   t          d |                                D                       }d|d<   t          |t          j                  rt#          |          }t%          |d          }|                     |           d {V }	|	                    |j        ||                     |          ||||	           d {V }
t.          j                            t5          |
j                  |
j        |
j        |
          }|j        s|j         d {V  |S # t<          $ r}t?          |j        |
          d }~wt@          tB          f$ r#}tE          tG          |          |          d }~wtH          tJ          j&        tJ          j'        j(        f$ r}tS          |||j                  d }~wtT          $ re}t5          |          +                                ,                    d          rt[          |j        |
          t]          |j        |
          d }~wt^          t`          tb          j2        f$ r}tg          |j        |
          d }~wth          j5        $ r}t]          |j        |
          d }~wtl          $ r-}d}to          j8        |d           ts          |          d }~ww xY w)N(BOTO_EXPERIMENTAL__ADD_PROXY_HOST_HEADERro   rc   c              3   T   K   | ]#}|d          t          |d         d          fV  $dS )r   r]   zutf-8)encodingN)r"   ).0zs     rI   	<genexpr>z&AIOHTTPSession.send.<locals>.<genexpr>   sM       # #:;1uQqTG4445# # # # # #rK   identityzAccept-EncodingT)encoded)rk   rp   rr   dataproxyproxy_headers)endpoint_urlr`   )rh   r`   )r`   requestr   connectz4Exception received when sending urllib3 HTTP request)exc_infor_   ):r4   proxy_url_forrk   proxy_headers_forrr   bodyr   osenvironrb   r   hostnamer    itemsr5   ioIOBaser!   r   r   r   methodrt   aiobotocore
awsrequestAioAWSResponser<   statusstream_outputcontentr	   r   r   r   r   r   r
   r8   ClientPayloadErrorhttp_exceptionsBadStatusLiner   r   rq   
startswithr   r   r   r   socketgaierrorr   asyncioTimeoutError	Exceptionr   debugr   )rB   r   rh   r   rk   rr   r   rc   headers_r   responsehttp_responserl   messages                 rI   sendzAIOHTTPSession.send   s     P	+*88EEI .@@MMM+CoG<D
I2NN  -  ,,5(,f%" # #?F}}# # #  H
 +5H&'$	** ,%d++c4(((C --i88888888G$__h// + -        H (2AAHL!!8?H4Dh M ( , $++++++++   	> 	> 	>1====*,@A 	 	 	&(331    $&#1
 	 	 	
 (w{    " 	J 	J 	J1vv||~~((33 J)w{!LLLL&GKqIIII !O
 	M 	M 	M
 *w{!LLLL# 	F 	F 	F"1EEEE 	+ 	+ 	+LGL40000!****	+sa   F0F5 5
M?GM)H)M0IMA J44MK))M;LM(MM)__name__
__module____qualname__r   rz   r   r<   floatintrJ   rO   rV   rX   rm   rt   r~   r   r   r   ry   rK   rI   r$   r$   .   s        "&$8/& /&/& c3h/& 	/&
 "/& /& /& /&j  
( ( (( ( (5 5 54  
 
 
:   / / /Q+ Q+ Q+ Q+ Q+rK   r$   ).r   r/   r   r   r   typingr   r   r8   r   r   r   r   r	   r
   r   aiohttp.clientr   botocore.httpsessionr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	multidictr    aiobotocore.awsrequestr   aiobotocore._endpoint_helpersr!   r"   r$   ry   rK   rI   <module>r      s
        				 				  ! ! ! ! ! ! ! !                                                                 * " ! ! ! ! !     ? ? ? ? ? ? ? ?d+ d+ d+ d+ d+ d+ d+ d+ d+ d+rK   