3 YÉj%ñ ã @ s< d dl Zd dlZd dlmZ d dlmZ d dlmZm Z m Z mZmZm Z mZmZ d dlmZ d dlmZmZmZmZmZmZ d dlmZmZmZmZmZmZm Z d dl!m"Z"m#Z# d dl$Z$d Z%d ddgd dgd dd ddgd ddgd ddgdœZ&dddœZ'dddœZ(dd„ Z)dd„ Z*dd„ Z+G dd„ de,ƒZ-G dd„ de-ƒZ.dS )é 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_MasqueradeÚRich_ForwardPortÚRich_IcmpBlock)Ú ICMP_TYPESÚICMPV6_TYPESÚ ÚINPUTÚOUTPUTÚFORWARDÚ PREROUTINGÚPOSTROUTING)ÚsecurityÚrawÚmangleÚnatÚfilterzicmp-host-prohibitedzicmp6-adm-prohibited)Úipv4Úipv6Úicmpz ipv6-icmpc C s¢ dddddddœ}| dd… }x~|D ]v}y|j |ƒ}W n tk rL w$Y nX |d krŽyt||d ƒ W n tk r~ Y nX |j|d ƒ || ||<