File: //lib64/python2.7/site-packages/mercurial/httpclient/socketutil.pyo
�
Hq�Qc @ sQ d Z d d l Z d d l Z e j e � Z y d d l Z e j e Z WnA e
k
r� d d l Z d d l Z e
e d e � Z e Z n Xy
e j Z Wn e k
r� d � Z n Xe r� e j Z e j Z e j Z e j Z nR d e j f d � � YZ d Z d Z d Z d Z d d e e e d e e d
� Z d e f d � � YZ d S(
s� Abstraction to simplify socket use for Python < 2.6
This will attempt to use the ssl module and the new
socket.create_connection method, but fall back to the old
methods if those are unavailable.
i����Nt HTTPSHandlerc C s� | \ } } d } d } x� t j | | d t j � D]� } | \ } } } } }
y9 t j | | | � } t j d | | � | j |
� WnE t j k
r� } t j d | | � | r� | j � n d } q4 n XPq4 W| s� t j | � � n | S( Ns! getaddrinfo returns an empty listi s connect: (%s, %s)s connect fail: %s %s( t Nonet sockett getaddrinfot SOCK_STREAMt loggert infot connectt errort close( t addresst hostt portt msgt sockt rest aft socktypet protot
_canonnamet sa( ( sE /usr/lib64/python2.7/site-packages/mercurial/httpclient/socketutil.pyt create_connection6 s(
t
FakeSocketc B s e Z d Z d d d � Z RS( s* Socket wrapper that supports SSL.
i i c C s� | d k r"