o
    jr                     @   s   d dl Z d dlZd dlT G dd dejZG dd dZG dd dejZG d	d
 d
ejZG dd dejZ	G dd dZ
dS )    N)*c                   @      e Zd ZdZdZdZdS )TreeConnectFlag         N)__name__
__module____qualname__(SMB2_TREE_CONNECT_FLAG_CLUSTER_RECONNECT(SMB2_TREE_CONNECT_FLAG_REDIRECT_TO_OWNER(SMB2_TREE_CONNECT_FLAG_EXTENSION_PRESENT r   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb2/commands/tree_connect.pyr          r   c                   @   <   e Zd Zdd Zdd Zedd Zedd Zd	d
 ZdS )TREE_CONNECT_REQc                 C   s(   d| _ d | _d | _d | _d | _d | _d S )N	   )StructureSizeFlags
PathOffset
PathLengthBufferPathselfr   r   r   __init__   s   
zTREE_CONNECT_REQ.__init__c                 C   s   | j r
| j d| _t| j| _d| _| jjdddd}|| jjdddd7 }|| jjdddd7 }|| jjdddd7 }|| j7 }|S )N	utf-16-leH   r   littleF)	byteordersigned)	r   encoder   lenr   r   r   to_bytesr   r   tr   r   r   r$      s   
zTREE_CONNECT_REQ.to_bytesc                 C      t t| S N)r   from_bufferioBytesIObbuffr   r   r   
from_bytes'      zTREE_CONNECT_REQ.from_bytesc                 C   s   t  }tj| ddd|_|jdksJ ttj| ddd|_tj| ddd|_tj| ddd|_| 	|jt
j | |j|_|jd|_|S )Nr   r   r    r   r   )r   intr.   readr   r   r   r   r   seekr*   SEEK_SETr   decoder   buffmsgr   r   r   r)   +   s   zTREE_CONNECT_REQ.from_bufferc                 C   sR   d}|d| j  7 }|dt| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|S )Nz!==== SMB2 TREE CONNECT REQ ====
StructureSize: %s
zFlags: %s
zPathOffset: %s
zPathLength: %s
z
Path: %s
)r   reprr   r   r   r   r%   r   r   r   __repr__:   s   zTREE_CONNECT_REQ.__repr__N	r   r	   r
   r   r$   staticmethodr.   r)   r;   r   r   r   r   r      s    


r   c                   @   r   )	ShareTyper   r      N)r   r	   r
   DISKPIPEPRINTr   r   r   r   r>   D   r   r>   c                   @   sH   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdS )
ShareFlagsr          0   r   r      i   i   i   i   i    i @  i   i   N)r   r	   r
   SMB2_SHAREFLAG_MANUAL_CACHINGSMB2_SHAREFLAG_AUTO_CACHINGSMB2_SHAREFLAG_VDO_CACHINGSMB2_SHAREFLAG_NO_CACHINGSMB2_SHAREFLAG_DFSSMB2_SHAREFLAG_DFS_ROOT'SMB2_SHAREFLAG_RESTRICT_EXCLUSIVE_OPENS"SMB2_SHAREFLAG_FORCE_SHARED_DELETE&SMB2_SHAREFLAG_ALLOW_NAMESPACE_CACHING*SMB2_SHAREFLAG_ACCESS_BASED_DIRECTORY_ENUM#SMB2_SHAREFLAG_FORCE_LEVELII_OPLOCKSMB2_SHAREFLAG_ENABLE_HASH_V1SMB2_SHAREFLAG_ENABLE_HASH_V2SMB2_SHAREFLAG_ENCRYPT_DATA SMB2_SHAREFLAG_IDENTITY_REMOTINGr   r   r   r   rC   I   s     rC   c                   @   s(   e Zd ZdZdZdZdZdZdZdZ	dS )	TreeCapabilitiesr      rD   rE   @      rG   N)
r   r	   r
   SMB2_SHARE_CAP_NONESMB2_SHARE_CAP_DFS&SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITYSMB2_SHARE_CAP_SCALEOUTSMB2_SHARE_CAP_CLUSTERSMB2_SHARE_CAP_ASYMMETRIC SMB2_SHARE_CAP_REDIRECT_TO_OWNERr   r   r   r   rW   Z   s    rW   c                   @   r   )TREE_CONNECT_REPLYc                 C   s(   d| _ d | _d| _d | _d | _d | _d S )NrD   r   )r   r>   ReservedrC   CapabilitiesMaximalAccessr   r   r   r   r   f   s   
zTREE_CONNECT_REPLY.__init__c                 C   s   | j jddd}|| jjjddd7 }|| jjddd7 }|| jjjddd7 }|| jjjddd7 }|| jjjddd7 }|S )Nr   r   r0   r   r   )r   r$   r>   valuerc   rC   rd   re   r%   r   r   r   r$   n   s   zTREE_CONNECT_REPLY.to_bytesc                 C   r'   r(   )rb   r)   r*   r+   r,   r   r   r   r.   w   r/   zTREE_CONNECT_REPLY.from_bytesc                 C   s   t  }tj| ddd|_|jdksJ ttj| ddd|_tj| ddd|_ttj| ddd|_ttj| ddd|_	t
tj| ddd|_|S )Nr   r   r0   rD   r   r   )rb   r1   r.   r2   r   r>   rc   rC   rW   rd   FileAccessMaskre   r6   r   r   r   r)   {   s   zTREE_CONNECT_REPLY.from_bufferc                 C   sP   d}|d| j  7 }|d| jj 7 }|d| j 7 }|d| j 7 }|d| j 7 }|S )Nz#==== SMB2 TREE CONNECT REPLY ====
r9   zShareType: %s
zShareFlags: %s
zCapabilities: %s
zMaximalAccess: %s
)r   r>   rf   rC   rd   re   r%   r   r   r   r;      s   zTREE_CONNECT_REPLY.__repr__Nr<   r   r   r   r   rb   e   s    	

rb   )r*   enumaiosmb.wintypes.access_maskIntFlagr   r   Enumr>   rC   rW   rb   r   r   r   r   <module>   s    6