o
    Žõ±jB  ã                   @   s@   d dl Z d dlmZ d dlmZ d dlmZ G dd„ deƒZdS )é    N)Úlogger)Úcalcualte_length)Ú
Packetizerc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚLDAPPacketizerc                 C   s   t  | d¡ d| _d| _d S )Niÿÿ  ó    T)r   Ú__init__Ú	in_bufferÚis_plain_msg)Úself© r   úŒ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/msldap/network/packetizer.pyr      s   
zLDAPPacketizer.__init__c                 c   s¬   � d}d}	 t | jƒ|k rd S | jd |… }| jdu r"t|ƒ| }ntj|d d… ddd�}|d | }t | jƒ|| krT| jd || … }| j|| d … | _|V  qd S )Né   éÿÿÿÿTé   ÚbigF)Ú	byteorderÚsigned)Úlenr   r	   r   ÚintÚ
from_bytes)r
   ÚprereadÚremaining_lengthÚlbÚdatar   r   r   Úprocess_buffer   s"   €
zLDAPPacketizer.process_bufferc                 C  s   �|V  d S ©Nr   )r
   r   r   r   r   Údata_out!   s   €
zLDAPPacketizer.data_outc                 C  s6   �|d u r|V  |  j |7  _ |  ¡ D ]}|V  qd S r   )r   r   )r
   r   Úpacketr   r   r   Údata_in$   s   €ÿzLDAPPacketizer.data_inN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r      s
    r   )ÚasyncioÚmsldapr   Úmsldap.protocol.utilsr   Ú#asysocks.unicomm.common.packetizersr   r   r   r   r   r   Ú<module>   s
    