File: //lib/python3.9/site-packages/firewall/core/__pycache__/ipset.cpython-39.pyc
a
� i�/ � @ s� d Z g d�ZddlZddlZddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZmZ dd lmZ d
Zg d�Zdd
d
dd�Zdddd�ZG dd� de�Zdd� Zdd� Zdd� Zdd� Zdd� ZdS ) zThe ipset command wrapper)�ipset�check_ipset_name�remove_default_create_options� N)�errors)�
FirewallError)�runProg)�log)�tempFile�readfile)�COMMANDS� )zhash:ipzhash:ip,portzhash:ip,port,ipzhash:ip,port,netzhash:ip,markzhash:netzhash:net,netz
hash:net,portzhash:net,port,netzhash:net,ifacezhash:macz
inet|inet6�valuez
value in secs)�family�hashsize�maxelem�timeoutZinetZ1024Z65536)r r r c @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd%dd�Zd
d� Z dd� Z
dd� Zd&dd�Zd'dd�Z
dd� Zd(dd�Zd)dd�Zdd� Zdd � Zd!d"� Zd#d$� Zd
S )*r zipset command wrapper classc C s t d | _d| _d S )Nr )r �_command�name��self� r �7/usr/lib/python3.9/site-packages/firewall/core/ipset.py�__init__K s
zipset.__init__c C s^ dd� |D �}t �d| j| jd�|�� t| j|�\}}|dkrZtd| jd�|�|f ��|S )zCall ipset with argsc S s g | ]}d | �qS )�%sr )�.0�itemr r r �
<listcomp>R � zipset.__run.<locals>.<listcomp>z %s: %s %s� r �'%s %s' failed: %s)r �debug2� __class__r �joinr �
ValueError)r �args�_args�status�retr r r Z__runO s
�zipset.__runc C s t |�tkrttjd| ��dS )zCheck ipset namezipset name '%s' is not validN)�len�IPSET_MAXNAMELENr r ZINVALID_NAME)r r r r r �
check_nameZ s �zipset.check_namec C s( t |�tks|tvr$ttjd| ��dS )zCheck ipset typez!ipset type name '%s' is not validN)r( r) �IPSET_TYPESr r ZINVALID_TYPE)r � type_namer r r �
check_type` s �zipset.check_typeNc C s` | � |� | �|� d||g}t|t�rV|�� D ]$\}}|�|� |dkr0|�|� q0| �|�S )z+Create an ipset with name, type and options�create� )r* r- �
isinstance�dict�items�append�_ipset__run)r �set_namer, �optionsr$ �key�valr r r �
set_createf s
zipset.set_createc C s | � |� | �d|g�S )NZdestroy)r* r4 )r r5 r r r �set_destroys s
zipset.set_destroyc C s d||g}| � |�S )N�add�r4 �r r5 �entryr$ r r r �set_addw s
z
ipset.set_addc C s d||g}| � |�S )N�delr<