HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/twisted/protocols/haproxy/__pycache__/_interfaces.cpython-310.pyc
o

�bf�@sHdZddlmZmZddlZGdd�dejj�ZGdd�dejj�Z	dS)z0
Interfaces used by the PROXY protocol modules.
�)�Tuple�UnionNc@s4eZdZdZej�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�rr�G/usr/lib/python3/dist-packages/twisted/protocols/haproxy/_interfaces.pyr
s���rc@sHeZdZdZdedeeeefedffdd�Zdedefdd	�Z	d
S)�IProxyParserz?
    Streaming parser that handles PROXY protocol headers.
    �data�return)NNcC�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)rrrr�feed$�zIProxyParser.feed�linecCr)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)rrrr�parse3rzIProxyParser.parseN)
rrrr�bytesrrrrrrrrrrs&r)
r�typingrr�zope.interfacer	r
�	Interfacerrrrrr�<module>s