
    h^                        d dl mZmZmZ d dlmZmZ d dl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e          Z G d de          Z G d de          Z eeeddd            eeed             eeed            G d de          Z G d de          Z eeeddd             eeed             eeed            G d! d"e          Z G d# d$e          Z eeeddd%            eeed             eeed            G d& d'e          Z G d( d)e          Z eeeddd            eeed             eeed            G d* d+e          Z G d, d-e          Z eeeddd.            eeed             eeed            G d/ d0e          Z G d1 d2e          Z eeeddd3            eeed             eeed            G d4 d5e          Z G d6 d7e          Z eeeddd8            eeed             eeed            G d9 d:e          Z G d; d<e          Z  eeeddd            eeed             eee d           d=S )>    )RPCRPC_CallObject_Name)Packetbind_layers)IntFieldStrLenField	LongFieldPacketFieldIntEnumField)File_ObjectNLM4_GRANTEDNLM4_DENIEDNLM4_DENIED_NOLOCKSNLM4_BLOCKEDNLM4_DENIED_GRACE_PERIODNLM4_DEADLCK	NLM4_ROFSNLM4_STALE_FH	NLM4_FBIGNLM4_FAILED)
r                           	   c                   r    e Zd ZdZ edd           eddd            edd	d
           gZddZd ZdS )NLM4_CookieCookielengthr   contents c                     | j         S )Nr$   pkts    U/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/nlm.py<lambda>zNLM4_Cookie.<lambda>!   s    CJ     )length_fromfillr-   c                     d| j         z
  dz  S )Nr   r(   r)   s    r+   r,   zNLM4_Cookie.<lambda>"   s    !cj.A9M r-   Nc                     |t          |          }|ddt          |          z
  dz  z  }|| _        || _        || _        d S )N    r   )lenr$   r%   r/   )selfcr$   r/   s       r+   setzNLM4_Cookie.set%   sI    >VVF<q3q66zQ./D			r-   c                 
    d|fS )Nr&    )r4   ss     r+   extract_paddingzNLM4_Cookie.extract_padding.   s    1ur-   )NN)	__name__
__module____qualname__namer   r	   fields_descr6   r:   r8   r-   r+   r"   r"      s        D1J0F0FGGGFC-M-MNNNK       r-   r"   c                       e Zd ZdZ ed e            e           ed e            e           ed e            e           ed e            e           edd           edd           e	d	dd
dd          gZ
dS )
SHARE_Callz
SHARE Callcookiecaller
filehandleownermoder   accessreclaimNOYESr   r   Nr;   r<   r=   r>   r   r"   r   r   r   r   r?   r8   r-   r+   rA   rA   2   s        DHkkmm[99Hkkmm[99L++--==G[[]]K881Yt#6#677KKKr-   rA   c                   l    e Zd ZdZ ed e            e           edde           edd          gZ	dS )SHARE_ReplyzSHARE ReplyrB   statusr   sequenceN
r;   r<   r=   r>   r   r"   r   
nlm4_statsr   r?   r8   r-   r+   rN   rN   ?   sQ        DHkkmm[99Xq*--QKKKr-   rN   i r      )programpversion	procedure)mtyper   c                       e Zd ZdZ ed e            e           ed e            e           ed e            e           ed e            e           edd           edd           e	d	dd
dd          gZ
dS )UNSHARE_CallUNSHARE ReplyrB   rC   rD   rE   rF   r   rG   rH   rI   rJ   rK   NrL   r8   r-   r+   rY   rY   M   s        DHkkmm[99Hkkmm[99L++--==G[[]]K881Yt#6#677KKKr-   rY   c                   l    e Zd ZdZ ed e            e           edde           edd          gZ	dS )UNSHARE_ReplyrZ   rB   rO   r   rP   NrQ   r8   r-   r+   r\   r\   Z   sQ        DHkkmm[99Xq*--QKKKr-   r\      c                   `   e Zd ZdZ ed e            e           eddddd           eddddd           ed	 e            e           ed
 e            e           ed e            e           e	dd           e
dd           e
dd           e	dd           e	dd          gZdS )	LOCK_Callz	LOCK CallrB   blockr   rI   rJ   rK   	exclusiverC   rD   rE   svidl_offsetl_lenrH   stateNr;   r<   r=   r>   r   r"   r   r   r   r   r
   r?   r8   r-   r+   r_   r_   j   s        DHkkmm[99WaTe!4!455[!%%8%899Hkkmm[99L++--==G[[]]K88	*a  	'1A!KKKr-   r_   c                   V    e Zd ZdZ ed e            e           edde          gZdS )
LOCK_Replyz
LOCK ReplyrB   rO   r   N	r;   r<   r=   r>   r   r"   r   rR   r?   r8   r-   r+   rh   rh   {   B        DHkkmm[99Xq*--KKKr-   rh   r   c            
           e Zd ZdZ ed e            e           ed e            e           ed e            e           ed e            e           edd           e	dd           e	d	d          gZ
d
S )UNLOCK_CallzUNLOCK CallrB   rC   rD   rE   rb   r   rc   rd   N)r;   r<   r=   r>   r   r"   r   r   r   r
   r?   r8   r-   r+   rl   rl      s        DHkkmm[99Hkkmm[99L++--==G[[]]K88	*a  	'1KKKr-   rl   c                   V    e Zd ZdZ ed e            e           edde          gZdS )UNLOCK_ReplyzUNLOCK ReplyrB   rO   r   Nri   r8   r-   r+   rn   rn      B        DHkkmm[99Xq*--KKKr-   rn   c                      e Zd ZdZ ed e            e           eddddd           ed e            e           ed	 e            e           ed
 e            e           e	dd           e
dd           e
dd          gZdS )GRANTED_MSG_CallzGRANTED_MSG CallrB   ra   r   rI   rJ   rK   rC   rD   rE   rb   rc   rd   Nrf   r8   r-   r+   rq   rq      s        DHkkmm[99[!%%8%899Hkkmm[99L++--==G[[]]K88	*a  	'1	KKKr-   rq   c                       e Zd ZdZg ZdS )GRANTED_MSG_ReplyzGRANTED_MSG ReplyNr;   r<   r=   r>   r?   r8   r-   r+   rs   rs              DKKKr-   rs   
   c                   V    e Zd ZdZ ed e            e           edde          gZdS )GRANTED_RES_CallzGRANTED_RES CallrB   rO   r   Nri   r8   r-   r+   rx   rx      sB        DHkkmm[99Xq*--KKKr-   rx   c                       e Zd ZdZg ZdS )GRANTED_RES_ReplyzGRANTED_RES ReplyNrt   r8   r-   r+   rz   rz      ru   r-   rz      c                   4   e Zd ZdZ ed e            e           eddddd           eddddd           ed	 e            e           ed
 e            e           ed e            e           e	dd           e
dd           e
dd          g	ZdS )CANCEL_CallzCANCEL CallrB   r`   r   rI   rJ   rK   ra   rC   rD   rE   rb   rc   rd   Nrf   r8   r-   r+   r}   r}      s        DHkkmm[99WaTe!4!455[!%%8%899Hkkmm[99L++--==G[[]]K88	*a  	'1
KKKr-   r}   c                   V    e Zd ZdZ ed e            e           edde          gZdS )CANCEL_ReplyzCANCEL ReplyrB   rO   r   Nri   r8   r-   r+   r   r      ro   r-   r   r   c                      e Zd ZdZ ed e            e           eddddd           ed e            e           ed	 e            e           ed
 e            e           e	dd           e
dd           e
dd          gZdS )	TEST_Callz	TEST CallrB   ra   r   rI   rJ   rK   rC   rD   rE   rb   rc   rd   Nrf   r8   r-   r+   r   r      s        DHkkmm[99[!%%8%899Hkkmm[99L++--==G[[]]K88	*a  	'1	KKKr-   r   c                   V    e Zd ZdZ ed e            e           edde          gZdS )
TEST_Replyz
TEST ReplyrB   rO   r   Nri   r8   r-   r+   r   r      rj   r-   r   N)!scapy.contrib.oncrpcr   r   r   scapy.packetr   r   scapy.fieldsr   r	   r
   r   r   scapy.contrib.nfsr   rR   r"   rA   rN   rY   r\   r_   rh   rl   rn   rq   rs   rx   rz   r}   r   r   r   r8   r-   r+   <module>r      s   < ; ; ; ; ; ; ; ; ; , , , , , , , ,              ) ) ) ) ) ) ! 
    &   *
 
 
 
 
 
 
 
    &    Hj&1 K K K K C1 % % % % CA & & & &
 
 
 
 
6 
 
 
    F    lFQ"    CQ ' ' ' ' Ca ( ( ( (       "        Hi!q I I I I C! $ $ $ $ C1 % % % %
 
 
 
 
& 
 
 
    6    Hk6A K K K K CA & & & & CQ ' ' ' '    v          
 b    C! + + + + C"! , , , ,    v          
 b    C! + + + + C"! , , , ,    &       6    Hk6A K K K K CA & & & & CQ ' ' ' '               Hi!q I I I I C! $ $ $ $ C1 % % % % % %r-   