
    @OOf"
                     d    d dl mZmZ d dlmZmZmZmZ d dlm	Z	 d dl
mZmZ g dZ G d d      Zy)	    )DictList)DataReceivedH3EventHeadersHeadersReceived)QuicConnection)	QuicEventStreamDataReceived)z
hq-interopzhq-32zhq-31zhq-30zhq-29c            	       f    e Zd ZdZdefdZdedee   fdZ	de
ded	edd
fdZ	 dde
ded	edd
fdZy
)H0Connectionz(
    An HTTP/0.9 connection object.
    quicc                 d    i | _         i | _        |j                  j                  | _        || _        y N)_buffer_headers_receivedconfiguration	is_client
_is_client_quic)selfr   s     V/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/aioquic/h0/connection.py__init__zH0Connection.__init__   s+    )+24,,66
    eventreturnc                    g }t        |t              ru|j                  dz  dk(  rb| j                  j	                  |j                  d      |j
                  z   }| j                  j                  |j                  d      s| j                  r(|j                  t        g d|j                               n|j                  d      s|j                  rS|j                         j                  dd      \  }}|j                  t        d	|fd
|fgd|j                               d}n|| j                  |j                  <   |S d| j                  |j                  <   |j                  t        ||j                  |j                               |S )N   r   r   F)headersstream_ended	stream_id   
          :method   :pathT)datar    r!   )
isinstancer   r!   r   popr'   r   getr   appendr   endswith
end_streamrstripsplitr   )r   r   http_eventsr'   methodpaths         r   handle_eventzH0Connection.handle_event   sO   %'e/0eoo6Ia5O<<##EOOS9EJJFD))--eoouE??&&'$&Ueoo
 ]]7+u/?/?#';;=#6#6tQ#?LFD&&'&0&%9Hd;K$L).&+oo D 59DLL1&&:>&&u7E,<,< r   r!   r'   r-   Nc                 >    | j                   j                  |||       y r   )r   send_stream_data)r   r!   r'   r-   s       r   	send_datazH0Connection.send_data9   s    

##ItZ@r   r   c                     | j                   rt        |      }|d   dz   |d   z   dz   }nd}| j                  j                  |||       y )Nr%   r#   r&   r"   r   )r   dictr   r5   )r   r!   r   r-   headers_dictr'   s         r   send_headerszH0Connection.send_headers<   sM     ??=L
+d2\(5KKgUDD

##ItZ@r   )F)__name__
__module____qualname____doc__r	   r   r
   r   r   r3   intbytesboolr6   r   r:    r   r   r   r   
   s    ^ ") "W "HA3 Ae A A$ A DIAA'.A<@A	Ar   r   N)typingr   r   aioquic.h3.eventsr   r   r   r   aioquic.quic.connectionr	   aioquic.quic.eventsr
   r   H0_ALPNr   rB   r   r   <module>rH      s%     M M 2 =
<:A :Ar   