a
«°iÜY ã @ sn d gZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl
mZ ddlm
Z
G d d „ d eƒZd
S )ÚFirewallDirecté )ÚLastUpdatedOrderedDict)Ú ipXtables)Úebtables)ÚFirewallTransaction)Úlog)Úerrors)Ú
FirewallErrorc @ sL e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd d
„ Zdd„ Zd
d„ Z dd„ Z
dNdd„Zdd„ Zdd„ Z
dOdd„Zdd„ Zdd„ Zdd„ Zd d!„ ZdPd"d#„ZdQd$d%„Zd&d'„ Zd(d)„ Zd*d+„ ZdRd,d-„ZdSd.d/„Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ ZdTdd?„Z!d@dA„ Z"dBdC„ Z#dDdE„ Z$dFdG„ Z%dHdI„ Z&dJdK„ Z'dLdM„ Z(dS )Vr c C s || _ | ¡ d S ©N)Ú_fwÚ_FirewallDirect__init_vars)ÚselfÚfw© r ú;/usr/lib/python3.9/site-packages/firewall/core/fw_direct.pyÚ__init__' s zFirewallDirect.__init__c C s d| j | j| j| jf S )Nz%s(%r, %r, %r))Ú __class__Ú_chainsÚ_rulesÚ_rule_priority_positions©r
r r r Ú__repr__+ s ÿzFirewallDirect.__repr__c C s" i | _ i | _i | _i | _d | _d S r
)r r r Ú
_passthroughsÚ_objr r r r Z__init_vars/ s
zFirewallDirect.__init_varsc C s | ¡ d S r
)r r r r r Úcleanup6 s zFirewallDirect.cleanupc C s
t | jƒS r
)r r r r r r Únew_transaction; s zFirewallDirect.new_transactionc C s
|| _ d S r
)r )r
Úobjr r r Úset_permanent_config@ s z#FirewallDirect.set_permanent_configc C s* t | jƒt | jƒ t | jƒ dkr&dS dS )Nr TF)Úlenr r r r r r r Úhas_runtime_configurationC s "z(FirewallDirect.has_runtime_configurationc C sB | ¡ rdS t| j ¡ ƒt| j ¡ ƒ t| j ¡ ƒ dkr>dS dS )NTr F)r r r Úget_all_chainsÚ
get_all_rulesÚget_all_passthroughsr r r r Úhas_configurationH s ÿþþz FirewallDirect.has_configurationNc C sP |d u r| ¡ }n|}| | j ¡ | j ¡ | j ¡ f|¡ |d u rL| d¡ d S ©NT)r Ú
set_configr r r! r" Úexecute)r
Úuse_transactionÚtransactionr r r Úapply_directQ s
þýzFirewallDirect.apply_directc C s i }i }i }| j D ]>}|\}}| j | D ]&}| j |||¡s(| |g ¡ |¡ q(q| jD ]X}|\}}}| j| D ]>\} }
| j |||| |
¡sp||vržtƒ ||<