File: //usr/lib/python3/dist-packages/uaclient/http/__pycache__/__init__.cpython-38.pyc
U
��Jhi; � @ sx d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
mZmZm
Z
mZmZmZ d dlmZmZ d dlmZmZ d dlmZmZmZmZ dZdZdZd Zd
Z e�!e�"e#��Z$edde%fd
ee&e&f fde'fg�Z(edde%fd
ee&e&f fde&fdee&ef fde
e fg�Z)e&e*d�dd�Z+e&ee& e&ee& d�dd�Z,i a-ee& ee& dd�dd�Z.ee&e&f d�dd�Z/ej0j1ee&e&f d�dd �Z2d;ej3ee% e(d!�d"d#�Z4d$d%� Z5d&d'� Z6d<ej3ee% ee& e(d(�d)d*�Z7ee d�d+d,�Z8e&d-�d.d/�Z9d=e&ee% ee'e&f d0�d1d2�Z:di ddd3fe&ee' ee&e&f ee& ee% e*e)d4�d5d6�Z;d>e&e&e&e&e)d8�d9d:�Z<dS )?� N)�Any�Dict�List�
NamedTuple�Optional�Tuple)�error�request)�ParseResult�urlparse)�defaults�
exceptions�system�util)z169.254.169.254Zmetadataz[fd00:ec2::254]zhttp://archive.ubuntu.comzhttps://esm.ubuntu.comzhttp://api.snapcraft.iozhttps://api.snapcraft.io�UnparsedHTTPResponse�code�headers�body�HTTPResponse� json_dict� json_list)�url�returnc C sX zt | �}W n tk
r" Y dS X |jdkr2dS z
|j W n tk
rR Y dS X dS )NF)�https�httpT)r �
ValueError�schemeZport)r Z
parsed_url� r �8/usr/lib/python3/dist-packages/uaclient/http/__init__.py�is_service_url+ s
r )�protocol�proxy�test_urlr c
C sr |sd S t |�stj|d��tj|dd�}| dkr�t|�jdkr�zt||d�}W n� tjk
rh � Y nn tj k
r~ � Y nX tj
k
r� � Y nB tk
r� } z$t�
d||t|�� tj|d��W 5 d }~X Y nX |jdkr�|S tj|d��t�| |i�}t�|�}z|�|� |W S tjt
jfk
�rl } z,t�
d||t|d t|��� tj|d��W 5 d }~X Y nX d S )
N)r! �HEAD)�methodr ��https_proxyz:Error trying to use "%s" as pycurl proxy to reach "%s": %s�� z:Error trying to use "%s" as urllib proxy to reach "%s": %s�reason)r r
ZProxyInvalidUrlr �Requestr r �_readurl_pycurl_https_in_https�PycurlRequiredError�ProxyAuthenticationFailed�PycurlCACertificatesError� Exception�LOGr �strZProxyNotWorkingErrorr �ProxyHandler�build_opener�open�socket�timeout�URLError�getattr)r r! r"