
    |                     v    d Z ddlmZ ddlmZ ddlmZ ddlZej                  j                  Z	 G d de      Z
y)z Resolves OpenSSL issues in some servers:
      https://lukasa.co.uk/2013/01/Choosing_SSL_Version_In_Requests/
      https://github.com/kennethreitz/requests/pull/799
    )Version)HTTPAdapter)BaseHTTPAdapterNc                   b     e Zd ZdZej
                  g dz   Z	 	 d fd	ZddZ fdZd Z	 xZ
S )	SSLHTTPAdapterz>An HTTPS Transport Adapter that uses an arbitrary SSL version.)assert_fingerprintassert_hostnamessl_versionc                 N    || _         || _        || _        t        |   di | y )N )r
   r	   r   super__init__)selfr
   r	   r   kwargs	__class__s        .lib/third_party/docker/transport/ssladapter.pyr   zSSLHTTPAdapter.__init__   s+    &."4"6"    c                     |||| j                   | j                  d}| j                  r| j                         r| j                  |d<   t	        di || _        y )N)	num_poolsmaxsizeblockr	   r   r
   r   )r	   r   r
   can_override_ssl_versionPoolManagerpoolmanager)r   connectionsr   r   r   s        r   init_poolmanagerzSSLHTTPAdapter.init_poolmanager   sZ    $#33"&"9"9
  = = ?$($4$4F=!&00r   c                 z    t        |   |i |}|j                  | j                  k7  r| j                  |_        |S )z
        Ensure assert_hostname is set correctly on our pool

        We already take care of a normal poolmanager via init_poolmanager

        But we still need to take care of when there is a proxy poolmanager
        )r   get_connectionr	   )r   argsr   connr   s       r   r   zSSLHTTPAdapter.get_connection+   s@     w%t6v64#7#77#'#7#7D r   c                     t         j                  j                  d      d   }|y|dk(  ryt        |      t        d      kD  S )N-r   FdevTz1.5)urllib3__version__splitr   )r   
urllib_vers     r   r   z'SSLHTTPAdapter.can_override_ssl_version8   sE    ((..s3A6
z"WU^33r   )NNN)F)__name__
__module____qualname____doc__r   	__attrs__r   r   r   r   __classcell__)r   s   @r   r   r      s7    H%% )8 8I :>$(#14r   r   )r+   packaging.versionr   requests.adaptersr    docker.transport.basehttpadapterr   r$   r   r   r   r   r   r   <module>r1      s7    & ) <  !!--.4_ .4r   