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
    