
    tff                         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 .**	" KKKr   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 U5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   