o
    Žõ±jd  ã                   @   s:   d dl Z d dlZd dlZd dlT d dlT G dd„ dƒZdS )é    N)Ú*c                   @   sB   e Zd ZdZddd„Zedd„ ƒZedd„ ƒZd	d
„ Zdd„ Z	dS )Ú
SMBMessagez-
	Base class for all SMB version 1 messages
	Nc                 C   s   || _ || _d S ©N)ÚheaderÚcommand)Úselfr   r   © r   úŽ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb/message.pyÚ__init__   s   
zSMBMessage.__init__c                 C   s   t  t | ¡¡S r   )r   Úfrom_bufferÚioÚBytesIO)Úbbuffr   r   r	   Ú
from_bytes   s   zSMBMessage.from_bytesc                 C   s\   t ƒ }t | ¡|_|jjj}tj|jjv r|d7 }n|d7 }t	t
jt |ƒ}| | ¡|_|S )NÚ_REPLYÚ_REQ)r   Ú	SMBHeaderr   r   ÚCommandÚnameÚSMBHeaderFlagsEnumÚSMB_FLAGS_REPLYÚFlagsÚgetattrÚsysÚmodulesÚ__name__r   )ÚbuffÚmsgÚ	classnameÚclass_r   r   r	   r      s   

zSMBMessage.from_bufferc                 C   s   | j  ¡ }|| j ¡ 7 }|S r   )r   Úto_bytesr   ©r   Útr   r   r	   r    #   s   
zSMBMessage.to_bytesc                 C   s$   d}|t | jƒ7 }|t | jƒ7 }|S )Nz== SMBMessage ==
)Úreprr   r   r!   r   r   r	   Ú__repr__(   s   zSMBMessage.__repr__)NN)
r   Ú
__module__Ú__qualname__Ú__doc__r
   Ústaticmethodr   r   r    r$   r   r   r   r	   r   	   s    


r   )r   Úenumr   Úaiosmb.protocol.smb.commandsÚaiosmb.protocol.smb.headerr   r   r   r   r	   Ú<module>   s    