a «°i×õ ã @ sD d dl Zd dlZd dlmZ d dlmZ d dlmZm Z m Z mZmZm Z mZmZ d dlmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d d l%m&Z&m'Z' d dl(Z(d Z)g d¢dd gg d¢g d¢g d¢dœZ*dddœZ+dddœZ,dd„ Z-dd„ Z.dd„ Z/G dd„ de0ƒZ1G dd„ de1ƒZ2dS ) é N)ÚrunProg)Úlog)ÚtempFileÚreadfileÚ splitArgsÚ check_macÚportStrÚcheck_single_addressÚ check_addressÚnormalizeIP6)Úconfig)Ú FirewallErrorÚINVALID_PASSTHROUGHÚINVALID_RULEÚ UNKNOWN_ERRORÚINVALID_ADDRÚINVALID_ICMPTYPE) ÚRich_AcceptÚRich_RejectÚ Rich_DropÚ Rich_MarkÚ Rich_NFLogÚRich_MasqueradeÚRich_ForwardPortÚRich_IcmpBlockÚRich_Tcp_Mss_Clamp)ÚDEFAULT_ZONE_TARGET)Ú ICMP_TYPESÚICMPV6_TYPESÚ )ÚINPUTÚOUTPUTÚFORWARDÚ PREROUTINGr! )r# ÚPOSTROUTINGr r! r" )r# r$ r! )ÚsecurityÚrawÚmangleÚnatÚfilterzicmp-host-prohibitedzicmp6-adm-prohibited©Úipv4Úipv6Úicmpú ipv6-icmpc C sœ dddddddœ}| dd… }|D ]t}z| |¡}W n tyJ Y q"Y n0 |dv rŠzt||d ƒ W n tyz Y n0 | |d ¡ || ||<