Server IP : 209.38.156.173 / Your IP : 216.73.216.122 [ Web Server : Apache/2.4.52 (Ubuntu) System : Linux lakekumayuhotel 5.15.0-136-generic #147-Ubuntu SMP Sat Mar 15 15:53:30 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.1.2-1ubuntu2.22 Disable Function : NONE Domains : 2 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/lib/python3/dist-packages/twisted/protocols/haproxy/__pycache__/ |
Upload File : |
o �b� � @ sp d Z ddlmZmZ ddlmZ ddlmZ ddlm Z m Z ddlmZm Z mZmZ ee j�G dd � d ��Zd S )zD IProxyParser implementation for version one of the PROXY protocol. � )�Tuple�Union)�implementer)�address� )�_info�_interfaces)�InvalidNetworkProtocol�InvalidProxyHeader�MissingAddressData�convertErrorc @ sx e Zd ZdZdZdZdZdZeeefZdZ dd d �Z dedee ejef e d f fd d�Zededejfdd��ZdS )�V1Parserz� PROXY protocol version one header parser. Version one of the PROXY protocol is a human readable format represented by a single, newline delimited binary string that contains all of the relevant source and destination data. s PROXYs UNKNOWNs TCP4s TCP6s �returnNc C s d| _ d S )N� )�buffer)�self� r �E/usr/lib/python3/dist-packages/twisted/protocols/haproxy/_v1parser.py�__init__, s zV1Parser.__init__�data�NNc C sv | j |7 _ t| j �dkr| j| j vrt� �| j �| jd�}t|�dks'dS d| _ |�� }|�� }| �|�}||fS )a� Consume a chunk of data and attempt to parse it. @param data: A bytestring. @type data: L{bytes} @return: A two-tuple containing, in order, a L{_interfaces.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. �k r r r )r �len�NEWLINEr �split�pop�parse)r r �lines� remaining�header�infor r r �feed/ s z V1Parser.feed�linec C s |}d}d}d}d}d}d}t tt�� |�dd�\}}W d � n1 s&w Y || jkr3t� �t tt�� |�dd�\}}W d � n1 sKw Y || jvrXt� �|| jkrdt� |dd�S t tt �� |�dd�\}}W d � n1 s|w Y t tt �� |�dd�\}}W d � n1 s�w Y t tt �� |�dd�\}}W d � n1 s�w Y t tt �� |�d�d }W d � n1 s�w Y || jkr�t� |t� d|�� t|��t� d|�� t|���S t� |t�d|�� t|��t�d|�� t|���S )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: A L{_interfaces.IProxyInfo} containing the parsed data. @raises InvalidProxyHeader: If the bytestring does not represent a valid PROXY header. @raises InvalidNetworkProtocol: When no protocol can be parsed or is not one of the allowed values. @raises MissingAddressData: When the protocol is TCP* but the header does not contain a complete set of addresses and ports. N� r r �TCP)r � ValueErrorr r �PROXYSTRr �ALLOWED_NET_PROTOS� UNKNOWN_PROTOr � ProxyInfor � TCP4_PROTOr �IPv4Address�decode�int�IPv6Address) �clsr"