HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/url.cpython-310.pyc
o

�N�g��@s�dZddlZddlZddlmZmZddlZddlZddl	Zddl
Zdd�Zddd�Zdd	�Z
d
d�Zdd
�Zdd�Zdd�Zdd�Zdd�Zddd�Zdd�ZdS)z
URL utils
�N)�urlparse�
urlunparsecCs�|�d�s	|dfS|�dd�d}d|vr!|�dd�dd}}nd|vr.|�dd�\}}n|d}}tjj��r@tjj�|�}||fS)zL
    Parse a salt:// URL; return the path and a possible saltenv query.
    �salt://N����z?env=rz	?saltenv=)�
startswith�split�salt�utils�platform�
is_windows�path�sanitize_win_path)�urlZresourcer
�saltenv�r�B/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/url.py�parses

rc	Csz|�dd�}tjj��rtjj�|�}tjj�|�}|r!d|��nd}tjj�t	dd|d|df��}d�
|td�d��S)	z9
    join `path` and `saltenv` into a 'salt://' URL.
    �\�/zsaltenv=��filez	salt://{}zfile:///N)�replacer	r
rrr
r�data�decoder�format�len)r
r�queryrrrr�create'srcCsXt|�j}|s|�d�S|dkr*t|�\}}tjj��r%d|vr%|�d�S|�d�SdS)z0
    test whether `url` is escaped with `|`
    �|r	�_F)r�schemerrr	r
rr�rr!r
rrrr�
is_escaped5s



r#cCsrtjj��r|St|�j}|s|�d�r|Sd|��S|dkr7t|�\}}|�d�r/t||�Std|��|�S|S)z+
    add escape character `|` to `url`
    rr	)	r	r
rrrr!rrrr"rrr�escapeFs




r$cCsdt|�j}|s|�d�S|dkr0t|�\}}tjj��r(d|vr(t|�d�|�St|�d�|�S|S)z0
    remove escape character `|` from `url`
    rr	r )	rr!�lstriprr	r
rrrr"rrr�unescape]s

r&cCs$|�d�s|St|�\}}t||�S)zK
    append `saltenv` to `url` as a query parameter to a 'salt://' url
    r�rrr)rrr
�senvrrr�add_envns

r)cCs*|�d�s	|dfSt|�\}}t|�|fS)zA
    remove the saltenv query parameter from a 'salt://' url
    rNr')rr
r(rrr�	split_envys
r*cCst|�j|vr	dSdS)zP
    Return true if the passed URL scheme is in the list of accepted protos
    TF)rr!)r�protosrrr�validate�sr,cCst�dd|�S)ze
    Return a copy of the string with the protocol designation stripped, if one
    was present.
    z
^[^:/]+://r)�re�sub)rrrr�strip_proto�sr/FcCs�|dur
|dur
|St|�}|r|jdkrtd��|dur/|�d|j��}|j|d�}t|�S|�d|�d|j��}|j|d�}t|�S)zC
    Return a string with http basic auth incorporated into it
    N�httpsz#Basic Auth only supported for HTTPS�@)�netloc�:)rr!�
ValueErrorr2�_replacer)r�user�passwordZ
https_onlyZurltupler2rrr�add_http_basic_auth�sr8cCsLd}d}tjdkrtj|||tjd�St�||���r$t�|||���S|S)z'
    Remove HTTP user and password
    z(https?)://.*@z\1://<redacted>@)��)�flags)�sys�version_infor-r.�
IGNORECASE�search�lower)�outputZurl_reZredactedrrr�redact_http_basic_auth�s
rB)N)NNF)�__doc__r-r<�urllib.parserrZsalt.utils.datar	Zsalt.utils.pathZsalt.utils.platformZsalt.utils.versionsrrr#r$r&r)r*r,r/r8rBrrrr�<module>s&