o
    Žõ±j}  ã                   @   sn   d dl Z d dlZd dlT 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G dd„ dƒZ	dS )é    N)Ú*c                   @   s   e Zd ZdZdZdZdZdS )ÚQueryInfoTypeé   é   é   é   N)Ú__name__Ú
__module__Ú__qualname__ÚFILEÚ
FILESYSTEMÚSECURITYÚQUOTA© r   r   ú›/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/protocol/smb2/commands/query_info.pyr      s
    r   c                   @   s,   e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
ÚSecurityInfor   r   r   é   é   é    é@   i   N)r   r	   r
   ÚOWNER_SECURITY_INFORMATIONÚGROUP_SECURITY_INFORMATIONÚDACL_SECURITY_INFORMATIONÚSACL_SECURITY_INFORMATIONÚLABEL_SECURITY_INFORMATIONÚATTRIBUTE_SECURITY_INFORMATIONÚSCOPE_SECURITY_INFORMATIONÚBACKUP_SECURITY_INFORMATIONr   r   r   r   r      s    r   c                   @   s   e Zd ZdZdZdZdS )ÚEaInformationr   r   r   N)r   r	   r
   ÚSL_RESTART_SCANÚSL_RETURN_SINGLE_ENTRYÚSL_INDEX_SPECIFIEDr   r   r   r   r      s    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 )ÚQUERY_INFO_REQc                 C   sL   d| _ d | _d | _d| _d| _d| _d| _d | _d | _d | _	d | _
d | _d S )Né)   iÿÿ  r   )ÚStructureSizeÚInfoTypeÚFileInfoClassÚOutputBufferLengthÚInputBufferOffsetÚReservedÚInputBufferLengthÚAdditionalInformationÚFlagsÚFileIdÚBufferÚData©Úselfr   r   r   Ú__init__   s   
zQUERY_INFO_REQ.__init__c                 C   s  | j rt | j ¡| _d| _t| j ƒ| _| jjdddd�}|| 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jdddd�7 }|| jjdddd�7 }|| jjdddd�7 }| jr‰|| j7 }|S )	Néf   r   ÚlittleF©Ú	byteorderÚsignedr   r   r   )r0   ÚioÚBytesIOr/   r)   Úlenr+   r%   Úto_bytesr&   Úvaluer'   r(   r*   r,   r-   r.   ©r2   Útr   r   r   r<   -   s"   
zQUERY_INFO_REQ.to_bytesc                 C   ó   t  t | ¡¡S ©N)r#   Úfrom_bufferr9   r:   ©Úbbuffr   r   r   Ú
from_bytesB   ó   zQUERY_INFO_REQ.from_bytesc                 C   s,  t ƒ }tj|  d¡dd�|_|jdksJ ‚ttj|  d¡dd�ƒ|_ttj|  d¡dd�ƒ|_tj|  d¡dd�|_tj|  d¡dd�|_	tj|  d¡dd�|_
tj|  d¡dd�|_ttj|  d¡dd�ƒ|_ttj|  d¡dd�ƒ|_tj|  d¡dd�|_|jdkr”|  |j	tj¡ |  |j¡|_|S )	Nr   r5   ©r7   r$   r   r   r   r   )r#   ÚintrE   Úreadr%   r   r&   r'   r(   r)   r*   r+   r   r,   r   r-   r.   Úseekr9   ÚSEEK_SETr/   ©ÚbuffÚmsgr   r   r   rB   F   s    
zQUERY_INFO_REQ.from_bufferc                 C   s”   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j 7 }|d| j	 7 }|S )Nú==== SMB2 QUERY INFO REQ ====
úStructureSize: %s
zInfoType: %s
zFileInfoClass: %s
úOutputBufferLength: %s
zInputBufferOffset: %s
zInputBufferLength: %s
zAdditionalInformation: %s
zFlags: %s
zFileId: %s
úBuffer: %s
)
r%   r&   r'   r(   r)   r+   r,   r-   r.   r/   r>   r   r   r   Ú__repr__[   s   zQUERY_INFO_REQ.__repr__N©	r   r	   r
   r3   r<   ÚstaticmethodrE   rB   rS   r   r   r   r   r#      s    

r#   c                   @   r"   )ÚQUERY_INFO_REPLYc                 C   s"   d| _ d | _d | _d | _d | _d S )Né	   )r%   ÚOutputBufferOffsetr(   r/   r0   r1   r   r   r   r3   l   s
   
zQUERY_INFO_REPLY.__init__c                 C   sn   | j d ur| j nd}t|ƒ| _d| _| jjdddd�}|| jjdddd�7 }|| jjdddd�7 }||7 }|S )Nó    éH   r   r5   Fr6   r   )r0   r;   r(   rX   r%   r<   )r2   Údatar?   r   r   r   r<   u   s   
zQUERY_INFO_REPLY.to_bytesc                 C   r@   rA   )rV   rB   r9   r:   rC   r   r   r   rE      rF   zQUERY_INFO_REPLY.from_bytesc                 C   s‚   t ƒ }tj|  d¡dd�|_|jdksJ ‚tj|  d¡dd�|_tj|  d¡dd�|_|jdkr?|  |jtj	¡ |  |j¡|_
|S )Nr   r5   rG   rW   r   r   )rV   rH   rE   rI   r%   rX   r(   rJ   r9   rK   r0   rL   r   r   r   rB   ƒ   s   
zQUERY_INFO_REPLY.from_bufferc                 C   s@   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| j 7 }|S )NrO   rP   zOutputBufferOffset: %s
rQ   rR   )r%   rX   r(   r/   r>   r   r   r   rS   ’   s   zQUERY_INFO_REPLY.__repr__NrT   r   r   r   r   rV   k   s    	


rV   )
r9   ÚenumÚ-aiosmb.wintypes.fscc.structures.fileinfoclassÚEnumr   ÚIntFlagr   r   r#   rV   r   r   r   r   Ú<module>   s    
O