File: //usr/lib/python3/dist-packages/twisted/protocols/haproxy/__pycache__/_interfaces.cpython-310.pyc
o
�bf � @ sH d Z ddlmZmZ ddlZG dd� dejj�ZG dd� dejj�Z dS )z0
Interfaces used by the PROXY protocol modules.
� )�Tuple�UnionNc @ s4 e Zd ZdZej�d�Zej�d�Zej�d�Z dS )�
IProxyInfoz8
Data container for PROXY protocol header data.
z<The raw byestring that represents the PROXY protocol header.zNAn L{twisted.internet.interfaces.IAddress} representing the connection source.zSAn L{twisted.internet.interfaces.IAddress} representing the connection destination.N)
�__name__�
__module__�__qualname__�__doc__�zope� interface� Attribute�header�source�destination� r r �G/usr/lib/python3/dist-packages/twisted/protocols/haproxy/_interfaces.pyr
s ���r c @ sH e Zd ZdZdedeeeef ed f fdd�Zdedefdd �Z d
S )�IProxyParserz?
Streaming parser that handles PROXY protocol headers.
�data�return)NNc C � dS )a�
Consume a chunk of data and attempt to parse it.
@param data: A bytestring.
@type data: bytes
@return: A two-tuple containing, in order, an L{IProxyInfo} and any
bytes fed to the parser that followed the end of the header. Both
of these values are None until a complete header is parsed.
@raises InvalidProxyHeader: If the bytes fed to the parser create an
invalid PROXY header.
Nr )r r r r �feed$ � zIProxyParser.feed�linec C r )az
Parse a bytestring as a full PROXY protocol header line.
@param line: A bytestring that represents a valid HAProxy PROXY
protocol header line.
@type line: bytes
@return: An L{IProxyInfo} containing the parsed data.
@raises InvalidProxyHeader: If the bytestring does not represent a
valid PROXY header.
Nr )r r r r �parse3 r zIProxyParser.parseN)
r r r r �bytesr r r r r r r r r r s &r )
r �typingr r �zope.interfacer r
� Interfacer r r r r r �<module> s