MOON
Server: Apache
System: Linux server30c.hostingraja.org 3.10.0-962.3.2.lve1.5.63.el7.x86_64 #1 SMP Fri Oct 8 12:03:35 UTC 2021 x86_64
User: jibhires (1887)
PHP: 8.1.30
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, symlink, escapeshellcmd, pcntl_exec
Upload Files
File: //opt/alt/python37/lib64/python3.7/site-packages/aiohttp/__pycache__/http_writer.cpython-37.pyc
B

�k�aX�@s*dZddlZddlZddlmZmZmZmZmZm	Z	ddl
mZddlm
Z
ddlmZddlmZd	ZGd
d�de�Zedd�Zedd�ZeeegedfZeedgedfZGd
d�de
�Zeed�dd�Zeded�dd�ZeZy ddlmZejZ e�se ZWne!k
�r$YnXdS)z"Http related parsers and protocol.�N)�Any�	Awaitable�Callable�
NamedTuple�Optional�Union)�CIMultiDict�)�AbstractStreamWriter)�BaseProtocol)�
NO_EXTENSIONS)�StreamWriter�HttpVersion�
HttpVersion10�
HttpVersion11c@seZdZUeed<eed<dS)r�major�minorN)�__name__�
__module__�__qualname__�int�__annotations__�rr�F/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/http_writer.pyrs
rzCIMultiDict[str]c@s�eZdZd"eejeedd�dd�Ze	e
ejd�dd��Ze	ed�dd	��Z
dd�d
d�Zdejfeedd
�dd�Zedd�dd�Zddd�eeedd�dd�Zeddd�dd�Zd#edd�dd�Zdd�d d!�ZdS)$r
N)�protocol�loop�
on_chunk_sent�on_headers_sent�returncCsN||_|j|_||_d|_d|_d|_d|_d|_d|_	d|_
||_||_dS)NFr)
�	_protocol�	transport�
_transportr�length�chunked�buffer_size�output_size�_eof�	_compressZ
_drain_waiter�_on_chunk_sent�_on_headers_sent)�selfrrrrrrr�__init__szStreamWriter.__init__)rcCs|jS)N)r!)r*rrrr 5szStreamWriter.transportcCs|jS)N)r)r*rrrr9szStreamWriter.protocolcCs
d|_dS)NT)r#)r*rrr�enable_chunking=szStreamWriter.enable_chunkingZdeflate)�encoding�strategyrcCs,|dkrdtjntj}tj||d�|_dS)NZgzip�)Zwbitsr.)�zlibZ	MAX_WBITSZcompressobjr')r*r-r.Z	zlib_moderrr�enable_compression@szStreamWriter.enable_compression)�chunkrcCsPt|�}|j|7_|j|7_|jdks8|j��r@td��|j�|�dS)Nz!Cannot write to closing transport)�lenr$r%r!Z
is_closing�ConnectionResetError�write)r*r2�sizerrr�_writeFszStreamWriter._writeTi)�drain�LIMIT)r2r8r9rc�s�|jdk	r|�|�IdHt|t�r<|jt|�kr<|�d�}|jdk	rZ|j�|�}|sZdS|jdk	r�t|�}|j|kr�|j||_n|d|j�}d|_|s�dS|r�|j	r�dt|��
d�}||d}|�|�|j|kr�|r�d|_|�
�IdHdS)z�Writes chunk of data to a stream.

        write_eof() indicates end of stream.
        writer can't be used after write_eof() method being called.
        write() return drain future.
        N�crz%x
�asciis
)r(�
isinstance�
memoryview�nbytesr3�castr'�compressr"r#�encoder7r$r8)r*r2r8r9�	chunk_lenZ
chunk_len_prerrrr5Os2	






zStreamWriter.writezCIMultiDict[str])�status_line�headersrc�s2|jdk	r|�|�IdHt||�}|�|�dS)z*Write request/response status and headers.N)r)�_serialize_headersr7)r*rCrDZbufrrr�
write_headerszs

zStreamWriter.write_headers�c�s�|jr
dS|r(|jdk	r(|�|�IdH|jrv|r>|j�|�}||j��}|r�|jr�dt|��d�}||d}n.|jr�|r�dt|��d�}||d}nd}|r�|�|�|�	�IdHd|_d|_
dS)Nz%x
r;s
0

s0

T)r&r(r'r@�flushr#r3rAr7r8r!)r*r2rBrrr�	write_eof�s*

zStreamWriter.write_eofc�s |jjdk	r|j��IdHdS)zFlush the write buffer.

        The intended use is to write

          await w.write(data)
          await w.drain()
        N)rr Z
_drain_helper)r*rrrr8�szStreamWriter.drain)NN)rG)rrrr�asyncioZAbstractEventLoop�_T_OnChunkSent�_T_OnHeadersSentr+�propertyrZ	Transportr rr,r0ZZ_DEFAULT_STRATEGY�strrr1�bytesr7�boolr5rFrIr8rrrrr
s"
*	r
)�stringrcCsd|ksd|krtd��|S)N�
�
zRNewline or carriage return detected in headers. Potential header injection attack.)�
ValueError)rQrrr�_safe_header�srU)rCrDrcCs2dd�|��D�}|dd�|�d}|�d�S)Ncss&|]\}}t|�dt|�VqdS)z: N)rU)�.0�k�vrrr�	<genexpr>�sz(_py_serialize_headers.<locals>.<genexpr>z
z

zutf-8)�items�joinrA)rCrDZheaders_gen�linerrr�_py_serialize_headers�sr])"�__doc__rJr0�typingrrrrrrZ	multidictr�abcr
Z
base_protocolrZhelpersr�__all__rrrrOrKrLr
rNrUr]rEZaiohttp._http_writerZ_http_writerZ_c_serialize_headers�ImportErrorrrrr�<module>s2