ó
ñ1Mc           @   sn   d  Z  d d l Z d d l Z d d l Z d d l Td d l Z d d l Z d Z d d d „ Z e e	 _ d S(   s‚   M2Crypto enhancement to Python's urllib for handling 
'https' url's.

Copyright (c) 1999-2003 Ng Pheng Siong. All rights reserved.iÿÿÿÿN(   t   *t   sslv23c         C   s€  | d  k	 r* t | t j ƒ r* | |  _ n t j t ƒ |  _ d  } t | ƒ t d ƒ k rœ t | ƒ \ } } | r“ t | ƒ \ } } t	 | ƒ } n  | } n‘ | \ } } t
 | ƒ \ } }	 |	 } d  } t j | ƒ d k rä d  } nI t |	 ƒ \ } }	 | rt | ƒ \ } } n  | r-d | | |	 f } n  | s?t d ‚ n  | rld d  l }
 t j |
 j | ƒ ƒ } n d  } t j d | d |  j ƒ } | d  k	 rÖ| j d	 | ƒ | j d
 d ƒ | j d d t | ƒ ƒ n | j d | ƒ | r| j d d | ƒ n  x! |  j D] } t | j | ƒ qW| j ƒ  | d  k	 rQ| j | d ƒ n  | j ƒ  } | j } t j | | j d | ƒ S(   Nt    t   https	   %s://%s%ss
   http errors   no host giveniÿÿÿÿt   hostt   ssl_contextt   POSTs   Content-types!   application/x-www-form-urlencodeds   Content-lengths   %dt   GETt   Authorizations   Basic %ss   
s   https:(   s
   http errors   no host given(   t   Nonet
   isinstancet   SSLt   Contextt   ctxt   DEFAULT_PROTOCOLt   typet	   splithostt	   splitusert   unquotet	   splittypet   stringt   lowert   IOErrort   base64t   stript   encodestringt   httpslibt   HTTPSConnectiont
   putrequestt	   putheadert   lent
   addheaderst   applyt
   endheaderst   sendt   getresponset   fpt   urllibt
   addinfourlt   msg(   t   selft   urlt   dataR   t   user_passwdR   t   selectort   realhostt   urltypet   restR   t   autht   ht   argst   respR$   (    (    s7   /usr/lib64/python2.7/site-packages/M2Crypto/m2urllib.pyt
   open_https   sV    		   
	(
   t   __doc__R   t   sysR%   R   R   R   R	   R4   t	   URLopener(    (    (    s7   /usr/lib64/python2.7/site-packages/M2Crypto/m2urllib.pyt   <module>   s   $
6