§
    Ètºff  ã                   ó‚   — d Z ddlmZmZ ddlZ G d„ dej        j        ¦  «        Z G d„ dej        j        ¦  «        Z	dS )z0
Interfaces used by the PROXY protocol modules.
é    )ÚTupleÚUnionNc                   ó®   — e Zd ZdZej                             d¦  «        Zej                             d¦  «        Zej                             d¦  «        Z	dS )Ú
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© ó    úd/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/protocols/haproxy/_interfaces.pyr   r      sp   € € € € € ðð ð Œ^×%Ò%ØFñô €Fð Œ^×%Ò%ð	ñô €Fð ”.×*Ò*ð	"ñô €K€K€Kr   r   c                   ó^   — e Zd ZdZdedeeeef         ed         f         fd„Zdedefd„Z	dS )	ÚIProxyParserz?
    Streaming parser that handles PROXY protocol headers.
    ÚdataÚreturn)NNc                 ó   — dS )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   s    r   ÚfeedzIProxyParser.feed$   ó   € € € r   Úlinec                 ó   — dS )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   s    r   ÚparsezIProxyParser.parse3   r   r   N)
r   r   r	   r
   Úbytesr   r   r   r   r   r   r   r   r   r      s{   € € € € € ðð ð�5ð ˜U 5¨°UÐ):Ô#;¸UÀ:Ô=NÐ#NÔOð ð ð ð ð�Eð ˜jð ð ð ð ð ð r   r   )
r
   Útypingr   r   Úzope.interfacer   r   Ú	Interfacer   r   r   r   r   ú<module>r"      s�   ðð
ð ð  Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð ðð ð ð ð �”Ô)ñ ô ð ð$ ð  ð  ð  ð  �4”>Ô+ñ  ô  ð  ð  ð  r   