File: //proc/2863166/root/usr/lib/python3.9/site-packages/S3/__pycache__/Custom_httplib27.cpython-39.pyc
a
�9pe� � @ s d dl mZmZ d dlZd dlZd dlmZmZmZmZm Z m
Z
mZmZm
Z
mZ zd dlmZ W n ey~ d dlmZ Y n0 ddlmZ g d�Zdd � Zd
d� Zdd
� Zddd�ZdZddd�ZG dd� de�Zdd� Zeej_eej_ eej_!eej_"eej_#eej_$dS )� )�absolute_import�print_functionN)
�_CS_REQ_SENT�_CS_REQ_STARTED�CONTINUE�UnknownProtocol�CannotSendHeader�
NO_CONTENT�NOT_MODIFIED�EXPECTATION_FAILED�HTTPMessage�
HTTPException)�StringIO� )�encode_to_s3)ZPATCHZPOSTZPUTc C s� | j durdS | �� \}}}|| _|�� | _|dkr<d| _n*|�d�rNd| _n|dkr^d| _nt|��| jdkr�d| _d| _ d | _
tt� �| _ dS t| j
d�| _ | jdkr�| j jD ]}td
|dd� q�d| j _
| j �d
�}|r�|�� dkr�d | _ d| _nd| _ | �� | _
| j �d�}|�r`| j �s`zt|�| _W n t�yJ d| _Y n0 | jdk �rfd| _nd| _|tk�s�|tk�s�d| k�r�dk �s�n | jdk�r�d| _| j
�s�| j �s�| jdu �r�d | _
dS )z� Re-implemented httplib begin function
to not loop over "100 CONTINUE" status replies
but to report it to higher level so it can be processed.
NzHTTP/1.0�
zHTTP/1.� zHTTP/0.9� r r zheader:� )�endztransfer-encoding�chunked�content-length�d �� ZHEAD)�msgZ_read_status�status�strip�reason�version�
startswithr �lengthr Z
will_closer r �fp�
debuglevel�headers�printZ getheader�lowerZ
chunk_leftZ_check_close�int�
ValueErrorr r
�_method)�selfr r r �hdrZtr_encr � r+ �7/usr/lib/python3.9/site-packages/S3/Custom_httplib27.py�httpresponse_patched_begin sh
�
�
���r- c C s� d }|d u r|� � tv rd}nr|d ur�ztt|��}W nX ttfy� ztt�|�� �j �}W n( tt
fy� | jdkr�td� Y n0 Y n0 |d ur�| �
d|� d S )N�0r z
Cannot stat!!zContent-Length)�upper�_METHODS_EXPECTING_BODY�str�len� TypeError�AttributeError�os�fstat�fileno�st_size�OSErrorr"