← Back
Editing: ipset.cpython-312.opt-1.pyc
� �=j�, � � � d Z ddlZddlZddlmZ ddlmZ ddlm Z ddl mZ ddlm Z mZ ddlmZ d Zg d �Zdddd d�Zdddd�Z G d� d� Zd� Zd� Zd� Zd� Zd� Zy)zThe ipset command wrapper� 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�timeout�inet�1024�65536)r r r c � � e Zd ZdZd� Zd� Zd� Zd� Zdd�Zd� Z d � Z d � Zdd�Zdd�Z d � Zdd�Z dd�Zd� Zd� Zd� Zd� Zy)�ipsetzipset command wrapper classc �. � t d | _ d| _ y )Nr )r �_command�name��selfs �8/usr/lib/python3.12/site-packages/firewall/core/ipset.py�__init__zipset.__init__9 s � � ��)�� ��� � c �@ � |D �cg c] }d|z �� }}t j d| j | j dj |� � t | j |� \ }}|dk7 r-t d| j �ddj |� �d|��� �|S c c}w )zCall ipset with args�%sz %s: %s %s� r �'� ' failed: )r �debug2� __class__r �joinr � ValueError)r �args�item�_args�status�rets r �__runzipset.__run= s� � � *.�.��������.�� � �;����� � �s�x�x���O��� � �u�5� ����Q�;��(,� � �s�x�x����L�� � � �� /s �Bc �b � t |� t kD rt t j d|z � �y)zCheck ipset namezipset name '%s' is not validN)�len�IPSET_MAXNAMELENr r �INVALID_NAME)r r s r � check_namezipset.check_nameI s2 � ��t�9�'�'���#�#�%C�d�%J�� � (r c �r � t |� t kD s|t vrt t j d|z � �y)zCheck ipset typez!ipset type name '%s' is not validN)r- r. �IPSET_TYPESr r �INVALID_TYPE)r � type_names r � check_typezipset.check_typeP s: � ��y�>�,�,� ��0L���#�#�%H�9�%T�� � 1Mr Nc � � | j |� | j |� d||g}t |t � r@|j � D ]- \ }}|j |� |dk7 s�|j |� �/ | j |� S )z+Create an ipset with name, type and options�create� )r0 r5 � isinstance�dict�items�append�_ipset__run)r �set_namer4 �optionsr&