File: //usr/lib/python3/dist-packages/firewall/__pycache__/functions.cpython-38.pyc
U
/ �^�8 � ! @ s� d ddddddddd d
ddd
ddddddddddddddddddd g!Z d!d"lZd!d"lZd!d"lZd!d"lZd!d"lZd!d"lZd!d"lZd!d"lZd!d#l m
Z
d!d$lmZm
Z
ejd%k Zd&d� Zd'd� ZdMd)d�Zd*d+� Zd,d� Zd-d� Zd.d/� Zd0d� Zd1d� Zd2d� Zd3d � Zd4d
� Zd5d� Zd6d� Zd7d
� Zd8d� Zd9d� Z d:d� Z!d;d<� Z"d=d� Z#d>d� Z$d?d� Z%d@d� Z&dAd� Z'dBd� Z(dCd� Z)dDd� Z*dEd� Z+dFd� Z,dGd� Z-dHd� Z.dId� Z/dJd� Z0dKd� Z1dLd � Z2d"S )N�PY2� getPortID�getPortRange�portStr�getServiceName�checkIP�checkIP6�checkIPnMask�
checkIP6nMask�
checkProtocol�checkInterface�checkUINT32�firewalld_is_active�tempFile�readfile� writefile�enable_ip_forwarding�
check_port�
check_address�check_single_address� check_mac�uniqify�ppid_of_pid�max_zone_name_len� checkUser�checkUid�checkCommand�checkContext�joinArgs� splitArgs�b2u�u2b�
u2b_if_py2� N)�log)�FIREWALLD_TEMPDIR�FIREWALLD_PIDFILE�3c C sx t | t�r| }nX| r| �� } zt| �}W n> tk
rf zt�| �}W n tjk
r` Y Y dS X Y nX |dkrtdS |S )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
���i�� ���)�
isinstance�int�strip�
ValueError�socketZ
getservbyname�error)�portZ_id� r0 �4/usr/lib/python3/dist-packages/firewall/functions.pyr - s
c C s� t | t�s| �� r,t| �}|dkr(|fS |S | �d�}t|�dkr�|d �� r�|d �� r�t|d �}t|d �}|dkr�|dkr�||k r�||fS ||kr�||fS |fS g }tt|�dd�D ]�}td�|d|� ��}d�||d� �}t|�dk�rTt|�}|dk�rz|dk�rz||k �r,|�||f� n&||k�rF|�||f� n|�|f� q�|dkr�|�|f� |t|�kr� �q|q�t|�dk �r�dS t|�dk�r�dS |d S )aI 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"