
    h                     "   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e          Z eeee            eeee           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                   2   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? f ed<d@          dA fg e ed<d=          d)d;>                     e e edBd=          d)d;>          dC f edBd@          dD fg e edBd=          d)d;>                     edEd           edFd          gZdG ZdHS )IPFLogz*
    Class for handling PFLog headers
    hdrlen
addrfamilyr   IPv4r   action   passdropscrubzno-scrubnatzno-natbinatzno-binatrdrzno-rdrzsyn-proxy-drop)r   r   r                     	   
   reasonr   matchz
bad-offsetfragmentshort	normalizememoryzbad-timestamp
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+               iface    ruleset
rulenumbersubrulenumberuidpidruleuidrulepid	direction   inoutinoutunknown)r   r   r   rB   	rewrittennaddrfamilypad    saddrz	127.0.0.1)padwithc                 "    | j         t          k    S Nr   OPENBSD_AF_INETpkts    V/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/layers/pflog.py<lambda>zPFLog.<lambda>M       /(I     z::1c                 "    | j         t          k    S rN   r   OPENBSD_AF_INET6rQ   s    rS   rT   zPFLog.<lambda>O       :J(J rV   daddrc                 "    | j         t          k    S rN   rO   rQ   s    rS   rT   zPFLog.<lambda>W   rU   rV   c                 "    | j         t          k    S rN   rX   rQ   s    rS   rT   zPFLog.<lambda>Y   rZ   rV   sportdportc                 ,    |                      d          S )NzM%PFLog.addrfamily% %PFLog.action% on %PFLog.iface% by rule %PFLog.rulenumber%)sprintf)selfs    rS   	mysummaryzPFLog.mysummary`   s    ||klllrV   N)__name__
__module____qualname____doc__namer   PFLOG_HDRLENr   rP   rY   r   r   r   r   r   r   r	   r
   r   fields_descrc    rV   rS   r   r      s,         D 9X|44 =q?F3CV3M N N =1&V29j27H29j27H3C/E /E F F !=1'l2<2=(2A2>2>2?3C3A3@3>3>/@ /@ A A $#GR44##Ir266!>,22!>/155!>%++8E1%%!>)Q//8Iq)) =cw47<94N 4N O O!>+q11 =OV4Df4N O O##E7A66$$$HWWWk%B%B%': : :IIK %HWe44JJL	  x = = "G5 5 5	7 	7 %$$HWWWk%B%B%': : :IIK %HWe44JJL	  x = = "G5 5 5	7 	7 :gq)):gq))q8-Ktm m m m mrV   r   )r   N)rg   
scapy.datar   scapy.packetr   r   scapy.fieldsr   r   r   r	   r
   r   r   r   r   r   r   scapy.layers.inetr   scapy.configr   ipv6_enabledscapy.layers.inet6r   rP   rY   ri   r   l2typesregisterrk   rV   rS   <module>ru      s    !           , , , , , , , ,5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 !                 (''''''
   Bm Bm Bm Bm BmF Bm Bm BmJ E2/ 2 2 2 2 E4$4 5 5 5 5   i ' ' ' ' 'rV   