ó
    Ö›‘hf  ã                   óœ   • S r SSKJrJr  SSKr " S S\R                  R                  5      r " S S\R                  R                  5      r	g)z0
Interfaces used by the PROXY protocol modules.
é    )ÚTupleÚUnionNc                   óº   • \ rS rSrSr\R                  R                  S5      r\R                  R                  S5      r	\R                  R                  S5      r
Srg)Ú
IProxyInfoé   z0
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__Ú__firstlineno__Ú__doc__ÚzopeÚ	interfaceÚ	AttributeÚheaderÚsourceÚdestinationÚ__static_attributes__r   ó    ÚiC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/protocols/haproxy/_interfaces.pyr   r      sV   † ñð �^‰^×%Ñ%ØFó€Fð �^‰^×%Ñ%ð	ó€Fð —.‘.×*Ñ*ð	"óƒKr   r   c                   óV   • \ rS rSrSrS\S\\\\4   \S   4   4S jr	S\S\4S jr
S	rg
)ÚIProxyParseré   z7
Streaming parser that handles PROXY protocol headers.
ÚdataÚreturn)NNc                 ó   • g)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   ÚfeedÚIProxyParser.feed$   ó   � r   Úlinec                 ó   • g)a:  
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   ÚparseÚIProxyParser.parse3   r   r   r   N)r	   r
   r   r   r   Úbytesr   r   r   r   r"   r   r   r   r   r   r      sF   † ñð�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   