File: //lib/python3.6/site-packages/firewall/core/__pycache__/nftables.cpython-36.pyc
3
Y�jBu � @ s6 d dl mZ d dlZd dlZd dlZd dlmZ d dlmZm Z m
Z
mZmZ d dl
mZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZmZ d dl m!Z! d Z"e"d
d Z#dZ$d
Z%i ddde% fidde% fdde% fd�dd e% fdd e% fdd e% fdd e% fd�d�Z&G dd� de'�Z(dS )� )�absolute_importN)�log)� check_mac�getPortRange�normalizeIP6�check_single_address�
check_address)�
FirewallError�
UNKNOWN_ERROR�INVALID_RULE�INVALID_ICMPTYPE�INVALID_TYPE�
INVALID_ENTRY�INVALID_PORT)�Rich_Accept�Rich_Reject� Rich_Drop� Rich_Mark�Rich_Masquerade�Rich_ForwardPort�Rich_IcmpBlock)�
ICMP_TYPES�ICMPV6_TYPES)�NftablesZ firewalld�_Zpolicy_dropZpolicy_�
�
PREROUTING�
prerouting� �d Zpostrouting)r �POSTROUTING�input�forward�output)r �INPUT�FORWARD�OUTPUT)�raw�mangle�nat�filterc @ sj e Zd Zd ZdZdd� Zdd� Zdd� Zdd � Zd
d� Z dd
� Z
dd� Zd�dd�Zdd� Z
dd� Zdd� Zdd� Zd�dd�Zdd� Zd�d d!�Zd"d#� Zd�d%d&�Zd�d(d)�Zd�d*d+�Zd�d,d-�Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Zd<d=� Z d>d?� Z!d@dA� Z"dBdC� Z#dDdE� Z$dFdG� Z%dHdI� Z&d�dJdK�Z'dLdM� Z(dNdO� Z)dPdQ� Z*dRdS� Z+d�dTdU�Z,d�dVdW�Z-d�dXdY�Z.dZd[� Z/d�d\d]�Z0d�d^d_�Z1d�d`da�Z2d�dbdc�Z3d�ddde�Z4d�dfdg�Z5dhdi� Z6d�djdk�Z7dldm� Z8d�dndo�Z9dpdq� Z:drds� Z;dtdu� Z<dvdw� Z=d�dxdy�Z>d�dzd{�Z?d|d}� Z@d�d~d�ZAd�d�� ZBd�d�� ZCd�d�� ZDd�d�� ZEd�d�� ZFd�d�� ZGd�d�� ZHd�d�d��ZIdS )��nftablesTc C sb || _ d| _g | _i | _i | _i | _i | _i | _g g g d�| _t � | _
| j
jd� | j
jd� d S )NT)�inet�ip�ip6)
�_fwZrestore_command_existsZavailable_tables�rule_to_handle�rule_ref_count�rich_rule_priority_counts�policy_priority_counts�zone_source_index_cache�created_tablesr r+ Zset_echo_outputZset_handle_output)�self�fw� r8 �/usr/lib/python3.6/nftables.py�__init__X s znftables.__init__c C s� xdD ]}||krP qW d|| d kr`|| d d d || d d d f}|| d d= n(d|| d kr�d }|| d d= nd S || d d }|r�|dkr�||kr�||| kr�|| j |� n�|dk�r�||kr�g ||<