File: //lib64/python3.9/http/__pycache__/client.cpython-39.opt-2.pyc
a
    �DOg��  �                   @   sJ  d dl Zd dlZd dlZd dlZd dlZd dlZd dlZd dlZ	d dl
mZ g d�ZdZ
dZdZdZdZd	Ze� �ejj� d
d� ejj�� D �ZdZd
ZdZe�d�jZe�d�jZ e�d�Z!e�d�Z"h d�Z#d?dd�Z$G dd� dej%j&�Z'dd� Z(e'fdd�Z)G dd� dej*�Z+G dd � d �Z,zd dl-Z-W n e.�yD   Y n0 G d!d"� d"e,�Z/e�0d"� G d#d$� d$e1�Z2G d%d&� d&e2�Z3G d'd(� d(e2�Z4G d)d*� d*e2�Z5G d+d,� d,e2�Z6G d-d.� d.e2�Z7G d/d0� d0e2�Z8G d1d2� d2e2�Z9G d3d4� d4e9�Z:G d5d6� d6e9�Z;G d7d8� d8e9�Z<G d9d:� d:e2�Z=G d;d<� d<e2�Z>G d=d>� d>e?e=�Z@e2ZAdS )@�    N)�urlsplit)�HTTPResponse�HTTPConnection�
HTTPException�NotConnected�UnknownProtocol�UnknownTransferEncoding�UnimplementedFileMode�IncompleteRead�
InvalidURL�ImproperConnectionState�CannotSendRequest�CannotSendHeader�ResponseNotReady�
BadStatusLine�LineTooLong�RemoteDisconnected�error�	responses�P   i�  ZUNKNOWNZIdlezRequest-startedzRequest-sentc                 C   s   i | ]}||j �qS � )�phrase)�.0�vr   r   �#/usr/lib64/python3.9/http/client.py�
<dictcomp>k   �    r   i   i   �d   s   [^:\s][^:\r\n]*s   \n(?![ \t])|\r(?![ \t\n])z[ - ]z[ -]>   ZPATCHZPOST�PUT�datac              
   C   sj   z| � d�W S  tyd } z@t|j|j|j|jd|�� | |j|j� |f �d �W Y d }~n
d }~0 0 d S )N�latin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.)�encode�UnicodeEncodeError�encoding�object�start�end�title)r   �name�errr   r   r   �_encode�   s    ���r*   c                   @   s   e Zd Zdd� ZdS )�HTTPMessagec                 C   sj   |� � d }t|�}g }d}| �� D ]@}|d |� � � |krBd}n|d d� �� sVd}|r$|�|� q$|S )N�:r   �   )�lower�len�keys�isspace�append)�selfr(   �nZlstZhit�liner   r   r   �getallmatchingheaders�   s    
z!HTTPMessage.getallmatchingheadersN)�__name__�
__module__�__qualname__r6   r   r   r   r   r+   �   s   r+   c                 C   sX   g }| � td �}t|�tkr&td��|�|� t|�tkrHtdt ��|dv rqTq|S )Nr-   �header linezgot more than %d headers��   
�   
r   )�readline�_MAXLINEr/   r   r2   �_MAXHEADERSr   )�fp�headersr5   r   r   r   �
_read_headers�   s    
rC   c                 C   s,   t | �}d�|��d�}tjj|d��|�S )Nr   �
iso-8859-1)�_class)rC   �join�decode�email�parserZParserZparsestr)rA   rE   rB   Zhstringr   r   r   �
parse_headers�   s    
rJ   c                       s  e Zd Zd@dd�Zdd� Zdd� Zd	d
� Zdd� Z� fd
d�Z� fdd�Z	dd� Z
dd� ZdAdd�Zdd� Z
dd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� ZdBd(d)�ZdCd*d+�ZdD� fd,d-�	Zd.d/� Zd0d1� Zd2d3� ZdEd4d5�Zd6d7� Zd8d9� Zd:d;� Zd<d=� Zd>d?� Z �  Z!S )Fr   r   Nc                 C   sR   |� d�| _|| _|| _d  | _| _t| _t| _t| _	t| _
t| _t| _t| _
d S )N�rb)�makefilerA   �
debuglevel�_methodrB   �msg�_UNKNOWN�version�status�reason�chunked�
chunk_left�length�
will_close)r3   �sockrM   �method�urlr   r   r   �__init__�   s    zHTTPResponse.__init__c                 C   s  t | j�td �d�}t|�tkr*td��| jdkrBtdt|�� |sNt	d��z|�
d d�\}}}W nB ty�   z|�
d d�\}}d}W n ty�   d}Y n0 Y n0 |�d	�s�| �
�  t|��z$t|�}|d
k s�|dkr�t|��W n t�y   t|��Y n0 |||fS )Nr-   rD   zstatus liner   zreply:z-Remote end closed connection without response�   � zHTTP/r   i�  )�strrA   r>