File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/cherrypy/__pycache__/_cpnative_server.cpython-310.pyc
Back
o ;j � @ s� d Z ddlZddlZddlZddlZddlZddlmZm Z ddl mZ ddlm Z G dd� dejj�ZG d d � d ejj�ZdS )z;Native adapter for serving CherryPy via its builtin server.� N)� format_exc� bare_error)�httputil� ��tonativec @ s$ e Zd ZdZdZdd� Zdd� ZdS )� NativeGatewayz6Native gateway implementation allowing to bypass WSGI.Fc C s: | j }z�|jj}t|d �|d f}t�|d |d d�}t|jj�|jjf}t�|d |d d�}t|j �}t j�t|j p?d��}|du rQ| �dg dg� W dS t jj| }t|j�}t|j�}t|jpfd�} dd� |j�� D �} |j}d}z|g } |�|||d �\}}d |_d|_||_||_z|�||| t|j�| |� W nA t jy� t�� d }|� � |}| j!s�|j| v r�t"d|j ��| r�d | } | �#|| | � d}|j}|j$} t%�&� }Y nw q{| �|j'|j(|j)� W |� � W dS |� � w t*�y t+� }t j,|dt-j.d� t/� \}}}| �|||� Y dS w )z9Obtain response from CherryPy machinery and then send it.r r � �/Nz 404 Not Foundc s s$ � | ] \}}t |�t |�fV qd S )Nr )�.0�h�v� r �M/opt/saltstack/salt/lib/python3.10/site-packages/cherrypy/_cpnative_server.py� <genexpr>( s � � �z(NativeGateway.respond.<locals>.<genexpr>TzHTTP/1.1Fz1InternalRedirector visited the same URL twice: %r�?ZGETZNATIVE_ADAPTER)Zseverity)0�req�server� bind_addrr r �Host�connZremote_addrZremote_port�scheme�cherrypyZtree�script_nameZuri� send_responseZapps�method�path�qsZ inheaders�items�rfileZget_servingZmultithreadZmultiprocess�app�prev�runZrequest_protocolZInternalRedirect�sys�exc_infoZrelease_serving� recursive�RuntimeError�appendZquery_string�io�BytesIOZ output_statusZheader_list�body� Exceptionr �log�logging�ERRORr )�selfr �localZremoter Zsnr r r r �headersr r! Zredirections�request�responseZir�tb�sr �br r r �respond s� ��� ����(��zNativeGateway.respondc C s` | j }|pd|_|D ]\}}|j�||f� q |jr$|js$d|_|�� |D ]}|�|� q&dS )zSend response to HTTP request.s 500 Server ErrorTN)r �statusZ outheadersr'