HEX
Server: Apache
System: Linux insrv.serversdaddy.com 5.14.0-362.24.2.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Mar 30 14:11:54 EDT 2024 x86_64
User: jsaha (1066)
PHP: 8.3.6
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/clcommon/__pycache__/clconfpars.cpython-37.opt-1.pyc
B

���;d,��@s�ddlZddlZddlZddlmZddlZGdd�de�ZGdd�de�ZdZ	d+d	d
�Z
dZeed�d
d�Z
d,dd�ZiZd-dd�Zd.dd�Ze�dejejBejB�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zed%d&d'd(g�Zd)d*�ZdS)/�N)�
namedtuplec@seZdZdd�ZdS)�WebConfigParsingErrorcCs
||_dS)N)�message)�selfr�r��/builddir/build/BUILDROOT/alt-python27-cllib-3.4.1-1.el9.cloudlinux.x86_64/opt/alt/python37/lib/python3.7/site-packages/clcommon/clconfpars.py�__init__szWebConfigParsingError.__init__N)�__name__�
__module__�__qualname__rrrrrrsrc@seZdZdd�ZdS)�WebConfigMissingcCs
||_dS)N)r)rrrrrrszWebConfigMissing.__init__N)r	r
rrrrrrrsrZasectionFc	Cs�tjdddd�}|rt|_|rJt|d��}|���t��d�}WdQRXnt|d��}|��}WdQRX|j	dt
�d�||d	�t|jt
d
��S)NTF)Zallow_no_valueZ
interpolation�strict�rb�replace�r�[z]
)�source)Zsection)
�configparserZConfigParser�strZoptionxform�open�read�decode�localeZgetpreferredencodingZread_string�SECHEAD�dict�items)�pathZcase_sensitiveZignore_bad_encodingZconfig�f�rawrrr�loads r)�'�")�val�returncCs$|�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"rrr�$_strip_escape_quotes_of_config_value/sr)�=c	
Cs�t�}t|ddd��l}xd|��D]X}|�|d�}y|\}}Wntk
rRw YnX|��}|rht|�n|}|||��<q WWdQRX|S)Nr�surrogateescape)�errorsr$)rr�	readlines�split�
ValueError�stripr))	rZ	delimiterZstrip_quotes�datar�line�parts�key�valuerrr�	load_fast8sr6cCshyt|}WnVtk
rbyt|�}t|<Wn,ttjfk
r\|sL�i}t|<YnXYnX|S)zD
    Read ini file once (cached) and return its content as dict
    )�cache�KeyErrorr�IOErrorr�Error)r�
ignore_errorsZresrrr�	load_onceNsr<c
Cs�|s|d}t|d�}t|d�}g}xv|D]n}|��}|r�|�d�s�|�dd�\}}	|��}||kr�|�|dt||�d�|�|�q*|�|�q*W|��x:t|�	��D]*}||kr�|�|dt||�d�q�W|��t
�||�dS)Nz.tmpr�w�#r*r$�
)rr0r&r.�writer�append�close�list�keys�os�rename)
rrZtmp_pathZfinZfoutZ	used_keysr2�lr4r5rrr�change_settings^s*



"rHa
    (
      # Comments
      (:? \# .* $ )

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

      # Structural characters
      | ;
      | \{
      | \}
      | \n
    )
    cCs"dd�t�|�D�}dd�|D�S)Ncss&|]}|r|�d�r|�d�VqdS)rN)�group)�.0�matchrrr�	<genexpr>�sz _ngx_tokenize.<locals>.<genexpr>css|]}|�d�s|VqdS)r>N)r&)rJ�tokrrrrL�s)�_NGINX_TOKENS_RE�finditer)r1�tokensrrr�
_ngx_tokenize�srQccs$x|D]}||krdS|VqWdS)Nr)�itr"rMrrr�_ngx_take_until�s
rSccsJd}x@|D]8}|dkr |d7}n|dkr0|d8}|dkr<dS|Vq
WdS)Nr$�{�}r)rRZlvl�trrr�_ngx_take_until_block_end�s

rWcCsNi}xD|D]<}|dkr(xt|�D]}q W||kr
t|d�}t|�||<q
W|S)z5Scan a block for required fields, skips nested blocksrTz;
)rWrSrC)�block_tokensZneed_fields�inforM�_Zvalue_tokensrrr�_ngx_scan_block_info�s

r[c	cs�t|�}x�|D]�}|dkrqxt|d�D]}q(Wt|�}t|d�}y|d}|d}Wntk
rlwYnX|sx|sxqt|d�t|d�d|�dg�kd	�VqWd
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
    ZserverrT)�server_name�root�listenr\r]r�sslr^)r\�
document_rootr_N)rQrSrWr[r8r)�get)r1rPrMrZrXrYr\r]rrr�nginx_conf_loose_parser�s$



rbc	CsBtj�|�std|��t|d��}|��}WdQRXtt|��S)zGParse NGINX config file, see `nginx_conf_loose_parser` for more detailszFile does not exists %srN)rEr�isfilerrrrCrb)�	conf_filerZ
dirty_datarrr�nginx_conf_parser�s
recCs,tj�|�std|��t�}t|d�}|��}|��dd�|D�}d}d}i}g}x�t|�dk�r|�	d�}	d|	kr�|	�
�d}
d	}y|
�
d
�\}}|�dd�}Wntk
r�|
}YnX|�
|�|�
|�d
}qXd|	kr�|||<|d7}d}g}qX|rX|�
|	�qXqXW�x|D�]
}
ddddt||
d�dd�}x�||
D]�}d|k�rt|�
�d���dd�|d<�qFd|k�r�|�
�d���d�|d<�qFd|k�r�d�dd�|�
�dd�D��|d<�qFd|k�r�|�
�d��|d<d|k�rF|�
�d����dk|d<�qFW|�
|��qW|S) NzFile does not exists %srcSsg|]}t�d|�r|�qS)z^((?!#).)*$)�re�search)rJ�irrr�
<listcomp>�sz&apache_conf_parser.<locals>.<listcomp>rFz<VirtualHostr$�0�:�>�Tz</VirtualHost>)�userr\r`�server_alias�portr_Z
ServerNamezwww.r\ZDocumentRootr!r`ZServerAlias�,css|]}t|�VqdS)N)r)rJ�nrrrrL+sz%apache_conf_parser.<locals>.<genexpr>roZSuexecUserGrouprnZ	SSLEngineZonr_)rErrcrrCrr-rB�len�popr.rr/rA�intr0�join�lower)rdZ	conf_datarZdata_allr1ZIDZenable�resultZvhost�outZip_portrpZiprhr2rrr�apache_conf_parser�sr








$

"rz�	PamLVECfg�min_uid�cagefs_enabled�groupsc	Cs�t|d���}x�|D]�}|�d�r"q|��}t|�}|dkr|ddkr|dkrZt|d�nd}|dkrvtt|d��nd	}|d
kr�|d�d�ndg}t|||�SqWWd
QRXd
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
    rr>��z
pam_lve.so�i��F�rqZwheelN)rr&r.rsru�boolr{)Z
configfilerr2�srGr|r}r~rrr�parse_pam_lve_config9s


r�)FF)r*F)F)N) rrErf�collectionsrr�	Exceptionrrrrr'rr)r6r7r<rH�compile�
IGNORECASE�	MULTILINE�VERBOSErNrQrSrWr[rbrerzr{r�rrrr�<module>	s4
	


	+J