Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/clcommon/__pycache__/clconfpars.cpython-311.pyc



]jX0\ddlZddlZddlZddlZddlZddlmZGddeZGddeZ	dZ
d d	Zd
Zde
de
fd
Zd!dZiZd"dZd#dZejdejejzejzZdZdZdZdZdZdZdZdZedgdZ dZ!de
de
fdZ"dS)$N)
namedtupleceZdZdZdS)WebConfigParsingErrorc||_dSNmessageselfr	s  s/builddir/build/BUILD/imunify360-venv-2.6.3/opt/imunify360/venv/lib/python3.11/site-packages/clcommon/clconfpars.py__init__zWebConfigParsingError.__init__
N__name__
__module____qualname__r
rrrr#rrceZdZdZdS)WebConfigMissingc||_dSrrr
s  rr
zWebConfigMissing.__init__rrNrrrrrrrrrasectionFc&tjddd}|rt|_|rbt	|d5}|tjd}dddn#1swxYwYn>t	|dd5}|}dddn#1swxYwY|	d	td
|z|t|tS)
NTF)allow_no_value
interpolationstrictrbreplacerutf-8encoding[z]
)source)section)
configparserConfigParserstroptionxformopenreaddecodelocalegetpreferredencodingread_stringSECHEADdictitems)pathcase_sensitiveignore_bad_encodingconfigfraws      rloadr:s

&d59.3555F! 
$

	L&&((//&"="?"?KKC	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L$g
.
.
.	!&&((C															
'7'''#-d;;;W--...s#:A>>BBB==CC)'"valreturnc|tr$|tr
|ddS|S)zW
    Strips single or double quote char only if the quote present from both sides.
    )
startswith_QUOTESendswith)r=s r$_strip_escape_quotes_of_config_valuerE0s>~~g3<<#8#81R4yJr=cfi}t|ddd5}|D]m}||d}	|\}}n#t$rY+wxYw|}|rt|n|}|||<n	dddn#1swxYwY|S)Nr r!surrogateescape)r#errorsr@)r+	readlinessplit
ValueErrorstriprE)	r4	delimiterstrip_quotesdatar8linepartskeyvalues	         r	load_fastrU9s
D	
dC'2C	D	D	D&KKMM	&	&DJJy!,,E
"
UU



KKMME 4U;;;

!&D	&&&&&&&&&&&&&&&& Ks6-B&A
	B&

AB&AAB&&B*-B*c	t|}nV#t$rI	t|x}t|<n+#ttjf$r|six}t|<YnwxYwYnwxYw|S)zD
    Read ini file once (cached) and return its content as dict
    )cacheKeyErrorr:IOErrorr'Error)r4
ignore_errorsress   r	load_oncer]Ps#Dk###	#!%d+C5;;+,	#	#	# 
 ""C%+++	##Js/

A#5A#%AA#AA#"A#c	|s|dz}g}t|dd5}t|dd5}|D]}|}|r}|dsh|dd\}}	|}||vr7||d||d	||||	dddn#1swxYwYdddn#1swxYwYt|d
d5}|D]'}||vr!||d||d	(	dddn#1swxYwYt
j||dS)Nz.tmpr r!r"w#rFr@
a)r+rMrBrKwriteappendosrename)

settings_dictr4tmp_path	used_keysfinfoutrQ
stripped_linerS_s
          rchange_settingsrn`su!&=I
tS7
+
+
+s
xw
/
/
/37				D JJLLM
]%=%=c%B%B
&,,S!44Qiikk-''JJ#>>
c(:>>>???$$S)))JJt		
hg	.	.	.<$ 	<	<C)##

c::M#$6:::;;;	<<<<<<<<<<<<<<<<
IhsGDB.C*D*C.	.D1C.	2DDD+EEEa
    (
      # Comments
      (:? \# .* $ )

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

      # Structural characters
      | ;
      | \{
      | \}
      | \n
    )
    cbdt|D}d|DS)Nc3nK|]0}||d|dV1dS)rN)group).0matchs  r	<genexpr>z _ngx_tokenize.<locals>.<genexpr>sZ[[^^
Arc3DK|]}|d|VdS)r`N)rB)rrtoks  rrtz _ngx_tokenize.<locals>.<genexpr>s3==C)<)<=C======r)_NGINX_TOKENS_REfinditer)rPtokenss  r
_ngx_tokenizerzsD%..t44F>=6====rc#*K|D]
}||vrdS|VdSrr)itr=rvs   r_ngx_take_untilr}s:#::FF					rc#`Kd}|D]&}|dkr|dz
}n|dkr|dz}|dkrdS|V'dS)Nr@{}r)r|lvlts   r_ngx_take_until_block_endrse
C
881HCC
#XX1HC77FFrci}|D]@}|dkrt|D]}||vr"t|d}t|||<A|S)z5Scan a block for required fields, skips nested blocksrz;
)rr}list)block_tokensneed_fieldsinforvrmvalue_tokenss      r_ngx_scan_block_inforsj
D++#::.|<<

+*<??L\**DIKrc#zKt|}|D]}|dkr	t|dD]}t|}t|d}	|d}|d}n#t$rYYwxYw|s|sbt|dt|dd|dgvd	Vd
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_namerootlistenrrrsslr)r
document_rootrN)rzr}rrrXrEget)rPryrvrmrrrrs        rnginx_conf_loose_parserrs4
 
 F

(??
!--		A188$L2STT	}-K<DD			H		4	@AOOA$q'JJDHHXr222

	
	
	
	
/

sA!!
A.-A.ctj|std|t	|}tt
|S)zGParse NGINX config file, see `nginx_conf_loose_parser` for more detailsFile does not exists )rer4isfiler&read_unicode_file_with_decode_fallbackrr)	conf_file
dirty_datas  rnginx_conf_parserrsT
7>>)$$DByBBCCC7	BBJ'
33444rc	tj|std|g}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|ddd
}|D]O}
d|
vrD|
d	dd
|d<Kd|
vrC|
dd|d<d|
vr=dd|
ddD|d<d|
vr/|
d|d<d|
vrE|
ddk|d<Q|||S)Nrc<g|]}tjd||S)z^((?!#).)*$)research)rris  r
<listcomp>z&apache_conf_parser.<locals>.<listcomp>s)???!29]A#>#>?A???rrFz<VirtualHostr@0:>Tz</VirtualHost>userrrserver_aliasportr
ServerNamezwww.rDocumentRootr<rServerAlias,c34K|]}t|VdSr)r))rrns  rrtz%apache_conf_parser.<locals>.<genexpr>.s(/Q/Q1A/Q/Q/Q/Q/Q/QrrSuexecUserGroupr	SSLEngineonr)rer4rrr
splitlineslenpoprKrrLrdvaluesintrMjoinlower)r	conf_datadata_allrPIDenableresultvhostoutip_portriprTrQs              rapache_conf_parserrs*
7>>)$$DByBBCCCI5i@@KKMMH??x???D	
B
F
FE

d))a--hhqkkS  iikk!nGD
"==--D||C,,



LLLLFs""F2JEBFE	LL1d))a--4 ""$!%U1X
	F	FDt##&*jjll1o&;&;&=&=&E&Efb&Q&Q]#%%(,

Q(=(=(?(?(E(Ec(J(J_%$$'*xx/Q/Q

QRR@P/Q/Q/Q'Q'Q^$ D((#zz||A4466Vd"""jjll1o3355;;==EUs2.C!!C0/C0c|tj|std|g}t	|}d}|D]}|}|dr^|r||ddddddd}tj
d|}|r"t|dnd|d<||d	r3|
}t|d
kr|d|d	<|dr4|
}t|d
kr|d|d<|d
r4|
}t|d
kr|d|d<g|dr4|
}t|d
kr|d|d<|drd|d<|r|||S)z
    Parsing Open Litespeed config
    Retrieves data from user's openlitespeed.conf
    :param: full httpd.conf path (/usr/local/directadmin/data/users/<username>/openlitespeed.conf)
    :return: list of virtual host configurations.
    zFile does not exist NvirtualHostFrz-(\d+)r@rrdocRootrvhDomainr	vhAliasesrvhsslTr)rer4rrrrrMrBrdrrrrqrKr)rrr
vhost_dictrQ
match_portrRs       ropenlitespeed_conf_parserr:sC7>>)$$CAiAABBBI5i@@KKMMHJ"%"%zz||??=))
	R
-  ,,,"&td*.ULLJ9d33J=G!QZ%5%5a%8%8!9!9!9TJv??6""	%JJLLE5zzQ%*1X
6"
__Y
'
'
	%JJLLE5zzQ.3Ah
?+
__Z
(
(		%JJLLE5zzQ,1!H
=)
__[
)
)	%JJLLE5zzQ-21X
>*
__W
%
%	% $Ju%$$$r	PamLVECfg)min_uidcagefs_enabledgroupscZt|dd5}|D]}|dr|}t|dkr|ddkrt|dkrt	|dnd	}t|d
kr"tt	|dnd}t|dkr|d
d
ndg}t
|||ccdddS	dddn#1swxYwYdS)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!r"r`rz
pam_lve.soiFrwheelN)r+rBrKrrboolr)
configfiler8rQsrrrs       rparse_pam_lve_configrus
j#	0	0	0
BA		B		BDs##


A1vv{{qt|33'*1vv{{#ad)))47FFaKKc!A$iiU,/FFaKK1CgY .&AAAA
B
B
B
B
B
B
B
B		B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B4sC2D D  D$'D$	file_pathc6t|d5}|}dddn#1swxYwY	|S#t$r<t	jtjd|d|dcYSwxYw)NrzFailed to decode "zL" content as utf-8 - loading with placeholders for invalid unicode sequencesr)rI)r+r,r-UnicodeDecodeErrorsyslogLOG_WARNING)rr8raw_datas   rrrs	
i		!66881   111
xxxx	
	
	
i000001s266AABB)FF)rFF)Fr)#r'r.rerrcollectionsr	Exceptionrrr1r:rCr)rErUrWr]rncompile
IGNORECASE	MULTILINEVERBOSErwrzr}rrrrrrrrrrrr<module>rs'



								



""""""I
y

/
/
/
/ cc*	



 62:"MBL 2:-%,>>>			


 (
(
(
V555FFFR666r
J{$K$K$KLL	2
1c
1c
1
1
1
1
1
1r
Back to Directory File Manager