+
    iA?  c                   sf    ^ RI t^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 . ROt
 ! R R4      tR# )i    N)config)log)errorsc                   s|   a  ] tR t^(t o R tR tR tR tR tR t	R t
R tR	 tR
 t]R 4       t]R 4       tRtV tR# )firewalld_confc                sN    / V n         . V n        Wn        V P                  4        R # N)_config_deletedfilenameclear)selfr      &&D/usr/lib/python3.14/site-packages/firewall/core/io/firewalld_conf.py__init__Zfirewalld_conf.__init__)   s     

    c                s"    / V n         . V n        R # r   )r   r   r	      &r   r   Zfirewalld_conf.clear/   s    r   c                sH    V P                   P                  4        . V n        R # r   )r   r   r   r   r   r   cleanupZfirewalld_conf.cleanup3   s    r   c                sT    V P                   P                  VP                  4       4      # r   )r   getstrip)r	   keyr
   r   r   Zfirewalld_conf.get7   s    ||		,,r   c                s    VP                  4       pVP                  4       V P                  V&   W0P                  9   d   V P                  P                  V4       R # R # r   )r   r   r   remove)r	   r   valueZ_keys   &&& r   setZfirewalld_conf.set:   sB    yy{"[[]T== MM  & !r   c                s    R pV P                   P                  4        F%  w  r#V'       d
   VR,          pW: RV: 2,          pK'  	  V# ) 
=)r   items)r	   Zsr   r   s   &   r   __str__Zfirewalld_conf.__str__@   sB    ,,,,.JCT	C''A / r   c                s   V P                  R \        P                  4       V P                  R\        \        P                  4      4       T P                  R\        P
                  '       d   RMR4       T P                  R\        P                  '       d   RMR4       V P                  R\        P                  4       T P                  R\        P                  '       d   RMR4       V P                  R\        P                  4       V P                  R	\        P                  4       V P                  R
\        P                  4       T P                  R\        P                  '       d   RMR4       V P                  R\        P                  4       T P                  R\        P                  '       d   RMR4       T P                  R\        P                  '       d   RMR4       V P                  R\        P                   4       T P                  R\        P"                  '       d   RMR4       T P                  R\        P$                  '       d   RMR4       T P                  R\        P&                  '       d	   R4       R# R4       R# )DefaultZoneMinimalMarkCleanupOnExityesnoCleanupModulesOnExitIPv6_rpfilterIndividualCalls	LogDeniedAutomaticHelpersFirewallBackendFlushAllOnReloadReloadPolicyRFC3964_IPv4AllowZoneDriftingNftablesFlowtableNftablesCountersNftablesTableOwnerStrictForwardPortsN)r   r    FALLBACK_ZONEstrFALLBACK_MINIMAL_MARKFALLBACK_CLEANUP_ON_EXIT FALLBACK_CLEANUP_MODULES_ON_EXITFALLBACK_IPV6_RPFILTERFALLBACK_INDIVIDUAL_CALLSFALLBACK_LOG_DENIEDFALLBACK_AUTOMATIC_HELPERSFALLBACK_FIREWALL_BACKENDFALLBACK_FLUSH_ALL_ON_RELOADFALLBACK_RELOAD_POLICYFALLBACK_RFC3964_IPV4FALLBACK_ALLOW_ZONE_DRIFTINGZFALLBACK_NFTABLES_FLOWTABLEZFALLBACK_NFTABLES_COUNTERSZFALLBACK_NFTABLES_TABLE_OWNERZFALLBACK_STRICT_FORWARD_PORTSr   r   r   set_defaultsZfirewalld_conf.set_defaultsH   s    4 45F$@$@ AB6+J+J+J%PTU"<<<E$	
 	&"?"?@"V-M-M-MESWXf889#V%F%FG"F$D$DE)L)L)LRV	
 	!>!>?&*F*F*FDQ&*M*M*MSW	
 	$f&H&HI)J)J)JPT	
 	 999Et	
 	 999E	
?C	
r   c                s    V P                  R 4      R8X  dQ   V P                  R4      R9   d9   \        P                  ! \        P                  RV P                  R4       R24      hR# R# )r&   Ziptablesr"   zIPv6_rpfilter=z] is incompatible with FirewallBackend=iptables. This is a limitation of the iptables backend.N)zloose-forwardzstrict-forward)r   r   ZFirewallErrorZINVALID_VALUEr   r   r   sanity_checkZfirewalld_conf.sanity_checkj   sk    88%&*4/9R W
 :
 &&$$ /!: ; <+ + 	:
4r   c                s   V P                  4         \        V P                  R 4      pT EF{  pT'       g    EMqTP                  4       p\        T4      ^8  g   T^ ,          R'9   d   K?  TP                  R4       Uu. uF  qDP                  4       NK  	  pp\        T4      ^8w  d(   \        P
                  ! RTP                  4       4       K  T^ ,          \        9  d(   \        P
                  ! RTP                  4       4       K  T^,          R8X  d)   \        P
                  ! RTP                  4       4       EK  T P                  P                  T^ ,          4      e)   \        P
                  ! RTP                  4       4       EK^  T^,          T P                  T^ ,          &   EK~  	  TP                  4        T P                  R	4      '       gO   \        P
                  ! R
\        P                  4       T P!                  R	\#        \        P                  4      4       T P                  R4      p \%        T4       T P                  R4      pT'       d   TP/                  4       R(9  d_   Te1   \        P*                  ! RT'       d   TMR\        P0                  4       T P!                  R\        P0                  '       d   RMR4       T P                  R4      pT'       d   TP/                  4       R(9  d_   Te1   \        P*                  ! RT'       d   TMR\        P2                  4       T P!                  R\        P2                  '       d   RMR4       T P                  R4      pT'       d,   TP/                  4       R)9  d   \        P*                  ! R4       T P                  R4      pT'       d$   TP/                  4       \        P4                  9  dU   Te1   \        P*                  ! RT'       d   TMR\        P6                  4       T P!                  R\        P6                  4       T P                  R4      pT'       d   TP/                  4       R*9  d_   Te1   \        P*                  ! RT'       d   TMR\        P8                  4       T P!                  R\        P8                  '       d   RMR4       T P                  R4      pT'       d   T\        P:                  9  dT   Te'   \        P*                  ! RT\        P<                  4       T P!                  R\#        \        P<                  4      4       T P                  R4      pT'       d$   TP/                  4       \        P>                  9  d^   Te1   \        P*                  ! RT'       d   TMR\        P@                  4       T P!                  R\#        \        P@                  4      4       T P                  R4      pT'       d$   TP/                  4       \        PB                  9  d^   Te1   \        P*                  ! RT'       d   TMR\        PD                  4       T P!                  R\#        \        PD                  4      4       T P                  R4      pT'       d   TP/                  4       R*9  d^   Te1   \        P*                  ! R T'       d   TMR\        PF                  4       T P!                  R\#        \        PF                  4      4       T P                  R!4      p T PI                  T4      pT P                  R#4      pT'       d   TP/                  4       R*9  d^   Te1   \        P*                  ! R$T'       d   TMR\        PL                  4       T P!                  R#\#        \        PL                  4      4       T P                  R%4      pT'       d   TP/                  4       R*9  d_   Te1   \        P*                  ! R&T'       d   TMR\        PN                  4       T P!                  R%\        PN                  '       d   RMR4       T PQ                  4        R#   \         d9   p\        P
                  ! RT P                  T4       T P                  4        h Rp?ii ; iu upi   \&        \(        3 db    Te1   \        P*                  ! RT'       d   TMR\        P,                  4       T P!                  R\#        \        P,                  4      4        ELi ; i  \&         dK    \        P*                  ! R"T\        PJ                  4       T P!                  R!\        PJ                  4        EL=i ; i)+ZrzFailed to load '%s': %sNr   zInvalid option definition: '%s'zInvalid option: '%s'r   zMissing value: '%s'z!Duplicate option definition: '%s'r   z0DefaultZone is not set, using default value '%s'r   z7MinimalMark '%s' is not valid, using default value '%d'r   r    r   z7CleanupOnExit '%s' is not valid, using default value %sr!   z>CleanupModulesOnExit '%s' is not valid, using default value %sLockdownz1"Lockdown" option is deprecated and has no effectr"   z7IPv6_rpfilter '%s' is not valid, using default value %sr#   z9IndividualCalls '%s' is not valid, using default value %sr$   z3LogDenied '%s' is invalid, using default value '%s'r%   z:AutomaticHelpers '%s' is not valid, using default value %sr&   z9FirewallBackend '%s' is not valid, using default value %sr'   z:FlushAllOnReload '%s' is not valid, using default value %sr(   z8ReloadPolicy '%s' is not valid, using default value '%s'r)   z6RFC3964_IPv4 '%s' is not valid, using default value %sr*   z;AllowZoneDrifting '%s' is not valid, using default value %s)#;)r    falser   true)r    rB   )r   rC   r    rB   ))r   openr   	Exceptionr   errorr=   r   lensplit
valid_keysr   r   closer    r/   r   r0   Zint
ValueErrorZ	TypeErrorZwarningr1   Zlowerr2   r3   ZIPV6_RPFILTER_VALUESr4   r5   ZLOG_DENIED_VALUESr6   ZAUTOMATIC_HELPERS_VALUESr7   ZFIREWALL_BACKEND_VALUESr8   r9   _parse_reload_policyr:   r;   r<   r>   )r	   fmsglineZxZpairr      &      r   readZfirewalld_conf.readw   s   

	T]]C(A D::<D4y1}Q: 5'+zz#7!GGID74yA~		;TZZ\Ja
*		0$**,?aB		/>!!$q'*6		=tzz|L$(GDLLa!) * 	
	 xx&&IIBFDXDX HH]C(<(<$=> '		GJ )-KK P"E33
 HH&*I*I*It
 /0-KK W"E;;
 HH&@@@d
 $U[[]/9KKKL )V-H-HH P"E11
 HH_f&C&CD *+-KK R"E44
 HH!F,L,L,L5RV
 %V%=%== I..
 HH[#f&@&@"AB +,V-L-LL S"E55
 HH'V-N-N)OP*+V-K-KK R"E44
 HH&F,L,L(MN+,-KK S"E77
 HH'V-P-P)QR(	D--e4E (-KK O"E00
 HH^S)E)E%FG,--KK T"E77
 HH#<<<$
 	g  	II/D	 86 I& 	G P"E00
 HH]C(D(D$EF	GZ  	DKKJ--
 HH^V%B%BC	DsI   `> <b1b	 c> >b	3a<<b	-c;7A c;:c;>Aeec                s
   \        V P                  4      ^8  d   R# . p\        P                  P	                  \
        P                  4      '       g&   \        P                  ! \
        P                  R4        \        P                  ! RR\        P                  P                  V P                  4      ,          \        P                  P                  V P                  4      RR7      pRpRp \         P"                  ! T P                  RR	R
7      pT EF  pT'       g    EMTP%                  R4      p\        T4      ^8  d    T'       g   TP'                  R4       RpKM  KO  T^ ,          R8X  d'   RpTP'                  T4       TP'                  R4       K  TP)                  R4      p\        T4      ^8w  d   RpTP'                  TR,           4       K  T^ ,          P%                  4       p	T^,          P%                  4       p
Y9  d   YP                  9   dH   T P                  T	,          T
8w  d0   RpTP'                  T	: RT P                  T	,          : R24       RpM-YP*                  9   d   RpMRpTP'                  TR,           4       TP-                  T	4       EK  RpEK  	   \        T P                  4      ^ 8  dk   T P                  P/                  4        FL  w  rY9   d   K  T	R9   d   K  T'       g   TP'                  R4       RpTP'                  T	: RT
: R24       RpKN  	  T'       d   TP1                  4        TP1                  4        T'       g#   \        P2                  ! TP4                  4       R# \        P                  P	                  T P                  4      '       d4    \6        P8                  ! T P                  RT P                  ,          4        \6        P<                  ! TP4                  T P                  4       \        P>                  ! T P                  R4       R#   \         d$   p\        P                  ! RT,          4       h Rp?ii ; i  \         df   p\        P                  P	                  T P                  4      '       d*   \        P                  ! RT P                  : RT: 24       h Rp Rp?EL#Rp?ii ; i  \         dC   p\        P2                  ! TP4                  4       \;        RT P                  : RT: 24      hRp?ii ; i  \         dC   p\        P2                  ! TP4                  4       \;        RT P                  : RT: 24      hRp?ii ; i)i   Ni  Zwtz%s.F)modeZprefixZdirZdeletez!Failed to open temporary file: %sZrtzUTF-8)rR   Zencodingr   Tr@   r   zFailed to open 'z': z%s.oldzBackup of 'z
' failed: i  zFailed to create ')r   r%   r*   ) rG   r   osZpathZexistsr    ZETC_FIREWALLDZmkdirtempfileZNamedTemporaryFileZbasenamer   ZdirnamerE   r   rF   iorD   r   writerH   r   Zappendr   rJ   r   ZnameshutilZcopy2ZIOErrorZmoveZchmod)r	   ZdoneZ	temp_filerN   ZmodifiedZemptyrM   rO   Zpr   r   s   &          r   rV   Zfirewalld_conf.write1  s   t||q  ww~~f2233HHV))51		 33rww//>>GGOODMM2	I ,	(D7CA zz$'t9q= !- $ ! !W^!EOOD)OOD)

3A1v{ %!t4 A$**,CaDJJLE,,.4<<3D3M$)E%OOdll3>O>O,PQ'+H MM1'+H$)E%OOD4K8C(#'G L t||q "ll002
;  
 OOD) ES% 89 3 GGIIIinn%77>>$--((RT]]Ht}},DE	+KK	6
 HHT]]E*w  	II9C?@	  	ww~~dmm,,		t}}cJK	P  R		)..)T]]CPQQR  	NIIinn%LMM	Nsb   8A/P, ,#Q +2S +T  ,Q7QQS(ASST=TT U-+=U((U-c                sr   R pRRRRRR/pV '       Ed   V P                  4       p V P                  4       pVR9   d   V F  pW2V&   K	  	  MV P                  RR4      P                  R4       F  pVP                  4       pV'       g   K  VP                  RR4      P                  R^4      p\	        V4      ^8w  d   R	pKS  V^ ,          P                  4       P                  4       pWB9  d   R	pK  V^,          P                  4       P                  4       pVR9  d   R	pK  W2V&   K  	  V'       g   \        R
4      hV# )TZINPUTDROPZFORWARDZOUTPUTrA   ,r   :FzInvalid ReloadPolicy)ZACCEPTZREJECTrX   )r   ZupperZreplacerH   rG   rK   )r   ZvalidZresultvkZaZa2rP   r   rL   Z#firewalld_conf._parse_reload_policy  s"   Vvf

 5KKMEA00A !1I   sC066s;A	A 3,223:B2w!| % 1++-A % 1++-A << %  !1I! <$ 344r   c                sN    R P                  R V P                  4        4       4      # )rY   c              3   s4   "   T F  w  rV R V 2x  K  	  R# 5i)rZ   N )Z.0r\   r[   s   &  r   Z	<genexpr>Z8firewalld_conf._unparse_reload_policy.<locals>.<genexpr>  s     =}tq1#Qqc
}s   )Zjoinr   )r   r   r   _unparse_reload_policyZ%firewalld_conf._unparse_reload_policy  s    xx=u{{}===r   )r   r   r   N)Z__name__Z
__module__Z__qualname__Z__firstlineno__r   r   r   r   r   r   r=   r>   rQ   rV   ZstaticmethodrL   r^   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r   (   se     -' 
D
wtm+^ # #J > >r   r   )r   r   r   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r?   )Zos.pathrS   rU   rT   rW   Zfirewallr    Zfirewall.core.loggerr   r   rI   r   r]   r   r   <module>r_      s/     	    $ 
.`> `>r   