
    Lf	                         d Z ddlZddlmZ ddlmZ ddlmZ ddlZej                  j                  Z
ej                  d   dk  sej                  d   dk  rdd	lmZ eej                  _         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
    N)Version)HTTPAdapter)BaseHTTPAdapter         )match_hostnamec                   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        =/usr/lib/python3/dist-packages/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_connection3   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_version@   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/   syspackaging.versionr   requests.adaptersr    docker.transport.basehttpadapterr   r(   r   r   version_infobackports.ssl_match_hostnamer	   
connectionr   r   r   r   <module>r9      sr     % ) <  !!-- Ac..q1A5;(6G%.4_ .4r   