a
    kÄ#d‰  ã                   @   sÈ   d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZ ddlmZ ddlmZ ejr~ddlmZ dZd	Zd
ZG dd„ deƒZeeeed� eeeed� ej ee¡ dS )z*
PFLog: OpenBSD PF packet filter logging.
é    )Ú	DLT_PFLOG)ÚPacketÚbind_layers)ÚByteEnumFieldÚ	ByteFieldÚIntFieldÚIPFieldÚIP6FieldÚMultipleTypeFieldÚPadFieldÚ
ShortFieldÚSignedIntFieldÚStrFixedLenFieldÚYesNoByteField)ÚIP)Úconf)ÚIPv6é   é   éd   c                   @   s–  e Zd ZdZd Zedeƒeddede	diƒeddd	d
ddddddddddœƒedddddddddddd d!d"d#d$d%d&œƒe
d'd(d)ƒe
d*d(d)ƒed+dƒed,dƒed-dƒed.dƒed/dƒed0dƒed1d2d3d4d5d6d7œƒed8dƒed9dede	diƒe
d:d;dƒeeed<d=ƒd)d;d>�d?d@„ fed<dAƒdBd@„ fgeed<d=ƒd)d;d>�ƒeeedCd=ƒd)d;d>�dDd@„ fedCdAƒdEd@„ fgeedCd=ƒd)d;d>�ƒedFdƒedGdƒgZdHdI„ ZdJS )KÚPFLogz*
    Class for handling PFLog headers
    ZhdrlenÚ
addrfamilyr   ZIPv4r   Úactioné   ÚpassZdropZscrubzno-scrubZnatzno-natZbinatzno-binatÚrdrzno-rdrzsyn-proxy-drop)r   r   r   é   é   é   é   é   é   é	   é
   Úreasonr   Úmatchz
bad-offsetÚfragmentÚshortÚ	normalizeZmemoryzbad-timestampZ
congestionz
ip-optionszproto-cksumzstate-mismatchzstate-insertzstate-limitz	src-limitz	syn-proxy)r   r   r   r   r   r   r   r    r!   r"   r#   é   é   é   é   ZifaceÚ é   ZrulesetZ
rulenumberZsubrulenumberÚuidÚpidZruleuidZrulepidÚ	directionéÿ   ZinoutÚinÚoutÚunknown)r   r   r   r2   Z	rewrittenZnaddrfamilyÚpadó    Zsaddrz	127.0.0.1)Zpadwithc                 C   s
   | j tkS ©N©r   ÚOPENBSD_AF_INET©Zpkt© r<   úI/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/layers/pflog.pyÚ<lambda>M   ó    zPFLog.<lambda>z::1c                 C   s
   | j tkS r8   ©r   ÚOPENBSD_AF_INET6r;   r<   r<   r=   r>   O   r?   Zdaddrc                 C   s
   | j tkS r8   r9   r;   r<   r<   r=   r>   W   r?   c                 C   s
   | j tkS r8   r@   r;   r<   r<   r=   r>   Y   r?   ZsportÚdportc                 C   s
   |   d¡S )NzM%PFLog.addrfamily% %PFLog.action% on %PFLog.iface% by rule %PFLog.rulenumber%)Zsprintf)Úselfr<   r<   r=   Ú	mysummary`   s    zPFLog.mysummaryN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   ÚPFLOG_HDRLENr   r:   rA   r   r   r   r   r
   r   r   r	   r   Zfields_descrD   r<   r<   r<   r=   r      s”   
ÿ
û
õ


ÿ
ÿ

ÿþÿü
ÿø

ÿþÿü
ÿø
È:r   )r   N)rH   Z
scapy.datar   Zscapy.packetr   r   Zscapy.fieldsr   r   r   r   r	   r
   r   r   r   r   r   Zscapy.layers.inetr   Zscapy.configr   Zipv6_enabledZscapy.layers.inet6r   r:   rA   rJ   r   Zl2typesÚregisterr<   r<   r<   r=   Ú<module>   s   4E