a
    kÄ#dž  ã                   @   sd  d dl mZmZ d dlmZmZ d dlmZmZm	Z	m
Z
mZmZ d dlmZ ddddd	d
dddddœ
ZG dd„ deƒZG dd„ deƒZG dd„ deƒZeeed d� eeedd� eeedd dd� G dd„ deƒZG dd„ deƒZeeed d� eeedd� eeedddd� G dd „ d eƒZG d!d"„ d"eƒZeeed d� eeedd� eeedddd� d#S )$é    )ÚRPCÚRPC_Call)ÚPacketÚbind_layers)ÚIntFieldÚStrLenFieldÚIntEnumFieldÚPacketFieldÚConditionalFieldÚFieldListField)ÚFile_ObjectZMNT3_OKZMNT3ERR_PERMZMNT3ERR_NOENTZ
MNT3ERR_IOZMNT3ERR_ACCESZMNT3ERR_NOTDIRZMNT3ERR_INVALZMNT3ERR_NAMETOOLONGZMNT3ERR_NOTSUPPZMNT3ERR_SERVERFAULT)
r   é   é   é   é   é   é   é?   i'  i'  c                   @   sN   e Zd Zd Zeddƒedddd„ d�eddd	d„ d�gZd
d„ Zddd„ZdS )ÚPathÚlengthr   ÚpathÚ c                 C   s   | j S ©N©r   ©Zpkt© r   úJ/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/mount.pyÚ<lambda>!   ó    zPath.<lambda>)Zlength_fromÚfillc                 C   s   d| j  d S )Né   r   r   r   r   r   r   "   r   c                 C   s   d|fS )Nr   r   )ÚselfÚsr   r   r   Úextract_padding%   s    zPath.extract_paddingNc                 C   sB   |d u rt |ƒ}|d u r,ddt |ƒ d  }|| _|| _|| _d S )Nó    r    )Úlenr   r   r   )r!   r   r   r   r   r   r   Úset(   s    zPath.set)NN)	Ú__name__Ú
__module__Ú__qualname__Únamer   r   Úfields_descr#   r&   r   r   r   r   r      s   ýr   c                   @   s   e Zd ZdZg ZdS )Ú	NULL_CallzMOUNT NULL CallN©r'   r(   r)   r*   r+   r   r   r   r   r,   2   s   r,   c                   @   s   e Zd ZdZg ZdS )Ú
NULL_ReplyzMOUNT NULL ReplyNr-   r   r   r   r   r.   7   s   r.   )Úmtyper   i¥† é   )ÚprogramZ	procedureZpversionc                   @   s    e Zd ZdZedeƒ eƒgZdS )Ú
MOUNT_Callz
MOUNT Callr   N©r'   r(   r)   r*   r	   r   r+   r   r   r   r   r2   A   s   ÿr2   c                
   @   sp   e Zd ZdZeddeƒeedeƒ eƒdd„ ƒee	ddƒdd„ ƒee
d	d
e	dd
ƒdd„ d�dd„ ƒgZdd„ Zd
S )ÚMOUNT_ReplyzMOUNT ReplyÚstatusr   Ú
filehandlec                 C   s
   | j dkS ©Nr   ©r5   r   r   r   r   r   N   r   zMOUNT_Reply.<lambda>Úflavorsc                 C   s
   | j dkS r7   r8   r   r   r   r   r   P   r   ZflavorNr   c                 C   s   | j S r   )r9   r   r   r   r   r   T   r   )Z
count_fromc                 C   s
   | j dkS r7   r8   r   r   r   r   r   V   r   c                 C   s   | j dkr| jjS d S r7   )r5   r6   Úfh)r!   r   r   r   Úget_filehandleZ   s    
zMOUNT_Reply.get_filehandle)r'   r(   r)   r*   r   Ú
mountstat3r
   r	   r   r   r   r+   r;   r   r   r   r   r4   H   s    
þþûùr4   c                   @   s    e Zd ZdZedeƒ eƒgZdS )ÚUNMOUNT_CallzUNMOUNT Callr   Nr3   r   r   r   r   r=   e   s   ÿr=   c                   @   s   e Zd ZdZg ZdS )ÚUNMOUNT_ReplyzUNMOUNT ReplyNr-   r   r   r   r   r>   l   s   r>   N)Zscapy.contrib.oncrpcr   r   Zscapy.packetr   r   Zscapy.fieldsr   r   r   r	   r
   r   Zscapy.contrib.nfsr   r<   r   r,   r.   r2   r4   r=   r>   r   r   r   r   Ú<module>	   s@    ö
ÿ