????

Your IP : 18.116.170.100


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/__pycache__/clconfpars.cpython-311.pyc

�

K�f&��J�ddlZddlZddlZddlZddlmZddlmZGd�de��Z	Gd�de��Z
dZdd
�ZdZ
ded
efd�Zdd�ZiZd d�Zd!d�Zejdejejzejz��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zedgd���Z d�Z!dS)"�N)�
namedtuple)�&read_unicode_file_with_decode_fallbackc��eZdZd�ZdS)�WebConfigParsingErrorc��||_dS�N��message��selfr
s  ��/builddir/build/BUILDROOT/alt-python27-cllib-3.4.8-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/clconfpars.py�__init__zWebConfigParsingError.__init__�
�������N��__name__�
__module__�__qualname__r�rr
rr�#����������rrc��eZdZd�ZdS)�WebConfigMissingc��||_dSrr	rs  r
rzWebConfigMissing.__init__rrNrrrr
rrrrr�asectionFc�"�tjddd���}|rt|_|rbt	|d��5}|����tj��d��}ddd��n#1swxYwYn<t	|d��5}|���}ddd��n#1swxYwY|�	dt�d�|z|�	��t|�t�
����S)NTF)�allow_no_value�
interpolation�strict�rb�replace�r�[z]
)�source)�section)
�configparser�ConfigParser�str�optionxform�open�read�decode�locale�getpreferredencoding�read_string�SECHEAD�dict�items)�path�case_sensitive�ignore_bad_encoding�config�f�raws      r
�loadr8s���
�
&�d�59�.3�5�5�5�F��!� �����
�$��
�
�	L���&�&�(�(�/�/�&�"=�"?�"?��K�K�C�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L���$��_�_�	���&�&�(�(�C�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
���'�7�'�'�'�#�-�d��;�;�;�����W��-�-�.�.�.s#�:A>�>B�B�B;�;B?�B?)�'�"�val�returnc��|�t��r$|�t��r
|dd�S|S)zW
    Strips single or double quote char only if the quote present from both sides.
    ����)�
startswith�_QUOTES�endswith)r;s r
�$_strip_escape_quotes_of_config_valuerC1s>���~�~�g����3�<�<��#8�#8���1�R�4�y���Jr�=c�|�t��}t|dd���5}|���D]m}|�|d��}	|\}}n#t$rY�+wxYw|���}|rt
|��n|}|||���<�n	ddd��n#1swxYwY|S)Nr!�surrogateescape)�errorsr>)r0r)�	readlines�split�
ValueError�striprC)	r2�	delimiter�strip_quotes�datar6�line�parts�key�values	         r
�	load_fastrS:s���6�6�D�	
�d�C� 1�	2�	2�	2�&�a��K�K�M�M�	&�	&�D��J�J�y�!�,�,�E�
�"�
��U�U���
�
�
���
�����K�K�M�M�E� ��4�U�;�;�;��
�
!&�D��������	&�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&� �Ks6�-B1�A�B1�
A"�B1�!A"�"AB1�1B5�8B5c���	t|}nV#t$rI	t|��x}t|<n+#ttjf$r|s�ix}t|<YnwxYwYnwxYw|S)zD
    Read ini file once (cached) and return its content as dict
    )�cache�KeyErrorr8�IOErrorr%�Error)r2�
ignore_errors�ress   r
�	load_oncer[Ps���#��D�k�����#�#�#�	#�!%�d���+�C�5��;�;����+�,�	#�	#�	#� �
�� "�"�C�%��+�+�+�	#������#�����Js/�
�
A#�5�A#�%A�A#�A�A#�"A#c��|s|dz}t|d��}t|d��}g}|D]�}|���}|r�|�d��sx|�dd��\}}	|���}||vrG|�|dzt||��zdz��|�|����|�|����|���t|�	����D]7}||vr1|�|dzt||��zdz���8|���tj||��dS)Nz.tmpr!�w�#rDr>�
)r)rKr@rI�writer'�append�close�list�keys�os�rename)
r0r2�tmp_path�fin�fout�	used_keysrO�lrQrRs
          r
�change_settingsrl`ss������;��
�t�S�/�/�C���#���D��I��	�	���J�J�L�L���	�Q�\�\�#�&�&�	�����a���J�C���)�)�+�+�C��d�{�{��
�
�3�s�7�3�t�C�y�>�>�1�$�6�7�7�7�� � ��%�%�%���
�
�4������I�I�K�K�K��D�I�I�K�K� � �4�4���i����J�J�s�3�w�s�4��9�~�~�-�d�2�3�3�3���J�J�L�L�L��I�h������ra
    (
      # Comments
      (:? \# .* $ )

      # Single-, double-quoted strings and bare strings without whitespaces
      | (:? "[^"\n]*?" )
      | (:? '[^'\n]*?' )
      | (:? [^"';\s\{\}]+ )

      # Structural characters
      | ;
      | \{
      | \}
      | \n
    )
    c�b�d�t�|��D��}d�|D��S)Nc3�nK�|]0}|�|�d���|�d��V��1dS)rN)�group)�.0�matchs  r
�	<genexpr>z _ngx_tokenize.<locals>.<genexpr>�sZ����������[�[��^�^��
���A��������rc3�DK�|]}|�d���|V��dS)r^N)r@)rp�toks  r
rrz _ngx_tokenize.<locals>.<genexpr>�s3����=�=�C�����)<�)<�=�C�=�=�=�=�=�=r)�_NGINX_TOKENS_RE�finditer)rN�tokenss  r
�
_ngx_tokenizerx�sD����%�.�.�t�4�4����F�>�=�6�=�=�=�=rc#�*K�|D]
}||vrdS|V��dSrr)�itr;rts   r
�_ngx_take_untilr{�s:���������#�:�:��F�F��	�	�	�	�	�rc#�`K�d}|D]&}|dkr|dz
}n|dkr|dz}|dkrdS|V��'dS)Nr>�{�}r)rz�lvl�ts   r
�_ngx_take_until_block_endr��se����
�C�
������8�8��1�H�C�C�
�#�X�X��1�H�C���7�7��F�F�������rc��i}|D]@}|dkrt|��D]}�||vr"t|d��}t|��||<�A|S)z5Scan a block for required fields, skips nested blocksr}z;
)r�r{rc)�block_tokens�need_fields�infort�_�value_tokenss      r
�_ngx_scan_block_infor��sj��
�D��+�+���#�:�:�.�|�<�<�
�
����+���*�<��?�?�L��\�*�*�D��I���Krc#�zK�t|��}|D]�}|dkr�	t|d��D]}�t|��}t|d��}	|d}|d}n#t$rY�YwxYw|s|s�bt|d��t|d��d|�dg��vd	�V���d
S)aq
    Parse content of NGINX configuration in a manner tolerant to minor mistakes
    and extract relevant fields from all `server` directives.

    Relevant fields are:
    - `server_name`
    - `root` - returned as `document_root`
    - `ssl` - if `listen` field contains "ssl" word

    Doesn't handle interpolated values (ex. `${val}`) outside of quoted strings
    �serverr})�server_name�root�listenr�r�r�sslr�)r��
document_rootr�N)rxr{r�r�rVrC�get)rNrwrtr�r�r�r�r�s        r
�nginx_conf_loose_parserr��s�����4�
 �
 �F��
�
���(�?�?��
!���-�-�	�	�A��1��8�8��$�L�2S�T�T��	��}�-�K���<�D�D���	�	�	��H�	�����	�4�	��@��A��O�O�A�$�q�'�J�J��D�H�H�X�r�2�2�2�
�
�	
�	
�	
�	
�/
�
s�A!�!
A.�-A.c��tj�|��std|z���t	|��}tt
|����S)zGParse NGINX config file, see `nginx_conf_loose_parser` for more details�File does not exists %s)rer2�isfilerrrcr�)�	conf_file�
dirty_datas  r
�nginx_conf_parserr��sQ��
�7�>�>�)�$�$�F��8�9�D�E�E�E�7�	�B�B�J��'�
�3�3�4�4�4rc	��tj�|��std|z���t	��}t|�����}d�|D��}d}d}i}g}t|��dkr�|�d��}d|vr�|�	��d}	d}
	|	�	d��\}}
|
�
d	d
��}
n#t$r|	}YnwxYw|�|��|�|
��d}��d|vr|||<|dz
}d}g}��|r|�|����t|��dk��|D�]�}dd
d
dt||d��dd
�}||D�]O}
d|
vrD|
�	��d����
dd
��|d<�Kd|
vrC|
�	��d����d��|d<��d|
vr=d�d�|
�	��dd�D����|d<��d|
vr/|
�	��d���|d<d|
vrE|
�	��d������dk|d<��Q|�|�����|S)Nr�c�<�g|]}tjd|���|��S)z^((?!#).)*$)�re�search)rp�is  r
�
<listcomp>z&apache_conf_parser.<locals>.<listcomp>�s)��?�?�?�!�2�9�]�A�#>�#>�?�A�?�?�?rrFz<VirtualHostr>�0�:�>�Tz</VirtualHost>)�userr�r��server_alias�portr��
ServerNamezwww.r��DocumentRootr:r��ServerAlias�,c3�4K�|]}t|��V��dSr)r')rp�ns  r
rrz%apache_conf_parser.<locals>.<genexpr>+s(����/Q�/Q�1��A���/Q�/Q�/Q�/Q�/Q�/Qrr��SuexecUserGroupr��	SSLEngine�onr�)rer2r�rrcr�
splitlines�len�poprIr rJra�intrK�join�lower)r��	conf_data�data_allrN�ID�enable�result�vhost�out�ip_portr��ipr�rOs              r
�apache_conf_parserr��s-��
�7�>�>�)�$�$�F��8�9�D�E�E�E����I�5�i�@�@�K�K�M�M�H�?�?�x�?�?�?�D�	
�B�
�F�
�F��E�

�d�)�)�a�-�-��h�h�q�k�k���S� � ��i�i�k�k�!�n�G��D�
�"�=�=��-�-���D��|�|�C��,�,�����
�
�
�����
�����L�L������L�L������F���s�"�"��F�2�J���E�B��F��E���	��L�L������1�d�)�)�a�-�-�4����� "�"$�!%��V�A�Y�q�\�*�*��
����1�I�	F�	F�D��t�#�#�&*�j�j�l�l�1�o�&;�&;�&=�&=�&E�&E�f�b�&Q�&Q��]�#����%�%�(,�
�
���Q��(=�(=�(?�(?�(E�(E�c�(J�(J��_�%����$�$�'*�x�x�/Q�/Q��
�
���Q�R�R�@P�/Q�/Q�/Q�'Q�'Q��^�$�� �D�(�(�#�z�z�|�|�A��4�4�6�6��V���d�"�"�"�j�j�l�l�1�o�3�3�5�5�;�;�=�=��E��U������������s�>.C-�-C<�;C<�	PamLVECfg)�min_uid�cagefs_enabled�groupsc��t|d��5}|D]�}|�d��r�|���}t|��}|dkr�|ddkr�|dkrt	|d��nd}|dkr"tt	|d����nd	}|d
kr|d�d��ndg}t
|||��ccd
d
d
��S��	d
d
d
��n#1swxYwYd
S)aD
    Parse string like:
    "session      required      pam_lve.so      500      1     group1,group2"
    :param configfile: path to config file to parse
    :type configfile: str
    :return: PamLVECfg instance when pam_lve configuratiom is found, None otherwise
    :rtype: namedtuple
    :raises: IOError, ValueError
    r!r^��z
pam_lve.so�i��F�r��wheelN)r)r@rIr�r��boolr�)�
configfiler6rO�srkr�r�r�s        r
�parse_pam_lve_configr�9s}��
�j�#�	�	�B�!��
	B�
	B�D����s�#�#�
���
�
���A��A���A��A�v�v�!�A�$�,�.�.�'(�A�v�v�#�a��d�)�)�)�3��45��F�F��c�!�A�$�i�i������,-��F�F��1����C�����	�� ��.�&�A�A�A�A�B�B�B�B�B�B�B�B��
	B�B�B�B�B�B�B�B�B�B�B�B����B�B�B�B��4s�C
C9�+C9�9C=�C=)FF)rDF)Fr)"r%r,rer��collectionsr�clcommon.utilsr�	Exceptionrrr/r8rAr'rCrSrUr[rl�compile�
IGNORECASE�	MULTILINE�VERBOSErurxr{r�r�r�r�r�r�r�rrr
�<module>r�s�������
�
�
�
�	�	�	�	�	�	�	�	�"�"�"�"�"�"�A�A�A�A�A�A������I����
�����y����
��
/�
/�
/�
/� ���c��c���������(	��
�
�
�
� ����0�2�:��"�M�B�L� �2�:�-�%���,>�>�>����	�	�	�
�
�
� (
�(
�(
�V5�5�5�F�F�F�R
�J�{�$K�$K�$K�L�L�	�����r