KOKINIO - MANAGER
Edit File: functions.cpython-312.opt-1.pyc
� �W'j�C � � � d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm Z m Z ed d� D � ci c] } | dkD r| dk s| d�� c} Zd� Z d� Zd.d �Zd � Zd� Zd� Zd � Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z!d� Z"d� Z#d� Z$d� Z%d � Z&d!� Z'd"� Z(d#� Z)d$� Z*d%� Z+d&� Z,d'� Z-d(� Z.d)� Z/d*� Z0d+� Z1d,� Z2d-� Z3yc c} w )/� N)�log)�FIREWALLD_TEMPDIR�FIREWALLD_PIDFILE� � � c �� � t | t � r| }n| r| j � } t | � }|dkD ry|S # t $ r4 t j | � }n# t j $ r Y Y yw xY wY �Dw xY w)z�Check and Get port id from port string or port id using socket.getservbyname @param port port string or port id @return Port id if valid, -1 if port can not be found and -2 if port is too big ���� ���)� isinstance�int�strip� ValueError�socket� getservbyname�error)�port�_ids �7/usr/lib/python3.12/site-packages/firewall/functions.py� getPortIDr s� � � �$�������:�:�<�D� ��d�)�C� �U�{���J�� � � ��*�*�4�0����<�<� �� �� � �s3 �: � A7�A�A7�A1�-A7�0A1�1A7�6A7c � � t | t � st | t � r| S t | t � s| j � rt | � }|dk\ r|fS |S | j d� }t |� dk( ra|d j � rN|d j � r;t |d � }t |d � }|dk\ r|dk\ r||k r||fS ||kD r||fS |fS g }t t |� dd� D ]� }t dj |d| � � }dj ||d � }t |� dkD r\t |� }|dk\ s�S|dk\ s�Y||k r|j ||f� �r||kD r|j ||f� ��|j |f� ��|dk\ s��|j |f� |t |� k( s�� n t |� dk ryt |� dkD ry|d S )aH Get port range for port range string or single port id @param ports an integer or port string or port range string @return Array containing start and end port id for a valid range or -1 if port can not be found and -2 if port is too big for integer input or -1 for invalid ranges or None if the range is ambiguous. r �-� � r N)r �tuple�listr �isdigitr �split�len�range�join�append)�ports�id1�splits�id2�matched�i�port2s r �getPortRanger+ 5 s� � � �%���:�e�T�#:��� �%������������!�8��6�M�� � �[�[�� �F� �6�{�a��F�1�I�-�-�/�F�1�I�4E�4E�4G���q� �"����q� �"���!�8��q���S�y��S�z�!��s���S�z�!��v� � �G� �3�v�;��2� &����������,�-���������$���u�:��>��E�"�C��a�x�C�1�H���9��N�N�C��:�.��3�Y��N�N�C��:�.��N�N�C�6�*��a�x�����v�&���F��#��# '�$ �7�|�a��� �W��� ���1�:�� c � � | dk( ryt | � }t |t � r|dk ryt |� dk( rd|z S |d �|�|d ��S )a Create port and port range string @param port port or port range int or [int, int] @param delimiter of the output string for port ranges, default ':' @return Port or port range string, empty string if port isn't specified, None if port or port range is not valid � r Nr z%s)r+ r r r )r � delimiter�_ranges r �portStrr1 p sV � � �r�z�� �$� �F��&�#��6�A�:�� �V��� ��f�}��!�!�9�i����;�;r, c �X � t | � }t |� }t |� dk( rut |� dk( rt |d � t |d � k( S t |� dk( r;t |d � t |d � k\ rt |d � t |d � k ryyt |� dk( r�t |� dk( rut |d � t |d � k\ rXt |d � t |d � k r;t |d � t |d � k\ rt |d � t |d � k ryy)Nr r r TF)r+ r r )r r! �_portr0 s r �portInPortRanger4 � s � ����E� �%� �F� �5�z�Q���v�;�!���U�1�X�&�)�F�1�I�*>�>�>���K�1���%��(�#�y����';�;��%��(�#�y����';�;�� � �U��q����K�1���%��(�#�y����';�;��%��(�#�y����';�;��%��(�#�y����';�;��%��(�#�y����';�;��r, c �L � t | � }t |� dk( r |d |d f}t t |� }t t d� |� d� �� }g }|D ]� }|d |d k r|d |d k\ r|j |� �+|d |d k r2|d |d k r'|d |d k\ r|j |� |d |d f}�h|d |d kD s�t|d |d k\ s��|d |d k s��|j |� |d |d f}�� t t d� |� � }|d |d k( r|d f}|g|fS )z�Coalesce a port range with existing list of port ranges @param new_range tuple/list/string @param ranges list of tuple/list/string @return tuple of (list of ranges added after coalescing, list of removed original ranges) r r c �6 � t | � dk( r | d | d fS | S �Nr r �r ��xs r �<lambda>z#coalescePortRange.<locals>.<lambda>� �"