o
    j                     @   sF   d dl Z d dlZd dlmZ d dlmZ d dlmZ G dd dZdS )    N)SMB2Command)NTStatus)SMB2HeaderFlagc                   @   sN   e Zd Zdd Zedd Zeddddddejfdd	Zd
d Z	dd Z
dS )SMB2Header_ASYNCc                 C   sL   d| _ d| _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d S N   SMB@   )
ProtocolIdStructureSizeCreditChargeStatusCommandCreditFlagsNextCommand	MessageIdAsyncId	SessionId	Signature)self r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb2/headers/asynch.py__init__   s   
zSMB2Header_ASYNC.__init__c                 C   s"  t  }| d|_|jdksJ tj| dddd|_|jdks#J tj| dddd|_ttj| dddd|_t	tj| dddd|_
tj| dddd|_ttj| dddd|_tj| dddd|_tj| dddd|_| d|_| d|_| d	|_|S )
N   r      littleF	byteordersignedr         )r   readr	   int
from_bytesr
   r   r   r   r   r   r   r   r   r   r   r   r   r   )buffhdrr   r   r   from_buffer   s    zSMB2Header_ASYNC.from_bufferr   s                   s           c
                 C   sR   t  }
d|
_d|
_||
_|	|
_| |
_||
_||
_||
_||
_	||
_
||
_||
_|
S r   )r   r	   r
   r   r   r   r   r   r   r   r   r   r   )cmdflagsmsgidr   r   r   r   r   r   statusr%   r   r   r   	construct-   s   zSMB2Header_ASYNC.constructc                 C   s   | j }|| jjdddd7 }|| jjdddd7 }|| jjjdddd7 }|| jjjdddd7 }|| jjdddd7 }|| jjdddd7 }|| j	jdddd7 }|| j
jdddd7 }|| j7 }|| j7 }|| j7 }|S )Nr   r   Fr   r   r   )r	   r
   to_bytesr   r   valuer   r   r   r   r   r   r   r   r   tr   r   r   r,   B   s   


zSMB2Header_ASYNC.to_bytesc                 C   s   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| jj 7 }|d| jj 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j	 7 }|d| j
 7 }|d| j 7 }|d| j 7 }|S )Nz===SMB2 HEADER ASYNC===
zProtocolId: %s
zStructureSize: %s
zCreditCharge: %s
zStatus: %s
zCommand: %s
zCredit: %s
zFlags: %s
zNextCommand: %s
zMessageId: %s
zAsyncId: %s
zSessionId: %s
zSignature: %s
)r	   r
   r   r   namer   r   r   r   r   r   r   r   r.   r   r   r   __repr__Q   s   zSMB2Header_ASYNC.__repr__N)__name__
__module____qualname__r   staticmethodr&   r   SUCCESSr+   r,   r1   r   r   r   r   r      s    
r   )	enumio"aiosmb.protocol.smb2.command_codesr   aiosmb.wintypes.ntstatusr   #aiosmb.protocol.smb2.headers.commonr   r   r   r   r   r   <module>   s   