Your IP : 3.148.115.187


Current Path : /opt/alt/python311/lib64/python3.11/wsgiref/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/wsgiref/__pycache__/simple_server.cpython-311.pyc

�

c��f3��<�dZddlmZmZddlZddlZddlmZddl	m
Z
dZgd�ZdezZ
e
��d	zej���dzZe
d
zezZGd�de��ZGd
�de��ZGd�de��Zd�Zeefd�Zedkr�edde��5Zej���Zededdedd��ddlZejd��e���ddd��dS#1swxYwYdSdS)a!BaseHTTPServer that implements the Python WSGI protocol (PEP 3333)

This is both an example of how WSGI can be implemented, and a basis for running
simple web applications on a local machine, such as might be done when testing
or debugging an application.  It has not been reviewed for security issues,
however, and we strongly recommend that you use a "real" web server for
production use.

For example usage, see the 'if __name__=="__main__"' block at the end of the
module.  See also the BaseHTTPServer module docs for other API information.
�)�BaseHTTPRequestHandler�
HTTPServerN)�
SimpleHandler)�python_implementationz0.2)�
WSGIServer�WSGIRequestHandler�demo_app�make_server�WSGIServer/�/� c��eZdZeZd�ZdS)�
ServerHandlerc���	|j�|j�dd��d|j��tj|��dS#tj|��wxYw)Nr
�r)�request_handler�log_request�status�split�
bytes_sentr�close��selfs �</opt/alt/python311/lib64/python3.11/wsgiref/simple_server.pyrzServerHandler.close sp��	&�� �,�,���!�!�#�a�(�(��+�T�_�
�
�
�
���%�%�%�%�%��M���%�%�%�%���s�?A�A-N)�__name__�
__module__�__qualname__�software_version�server_softwarer��rrrs(������&�O�&�&�&�&�&r!rc�.�eZdZdZdZd�Zd�Zd�Zd�ZdS)rz7BaseHTTPServer that implements the Python WSGI protocolNc�V�tj|��|���dS)z.Override server_bind to store the server name.N)r�server_bind�
setup_environrs rr$zWSGIServer.server_bind0s+����t�$�$�$��������r!c��ix}|_|j|d<d|d<t|j��|d<d|d<d|d<d|d<dS)	N�SERVER_NAMEzCGI/1.1�GATEWAY_INTERFACE�SERVER_PORT��REMOTE_HOST�CONTENT_LENGTH�SCRIPT_NAME)�base_environ�server_name�str�server_port)r�envs  rr%zWSGIServer.setup_environ5sa��"$�$��d��!�-��M��#,��� � ��!1�2�2��M����M�� ������M���r!c��|jS�N��applicationrs r�get_appzWSGIServer.get_app?s����r!c��||_dSr4r5)rr6s  r�set_appzWSGIServer.set_appBs��&����r!)	rrr�__doc__r6r$r%r7r9r r!rrr*s[������A�A��K����
 � � � � � �'�'�'�'�'r!rc�*�eZdZdezZd�Zd�Zd�ZdS)rrc��|jj���}|j|d<|j|d<|j|d<d|jvr|j�dd��\}}n	|jd}}tj	�
|d��|d<||d	<|���}||jd
kr||d<|jd
|d<|j
�d
���|j
���|d<n|j
d
|d<|j
�d��}|r||d<|j
���D]l\}}|�dd�����}|���}||vr�Fd|z|vr|d|zxxd|zz
cc<�d||d|z<�m|S)N�SERVER_PROTOCOL�SERVER_SOFTWARE�REQUEST_METHOD�?rr*z
iso-8859-1�	PATH_INFO�QUERY_STRINGrr+�REMOTE_ADDRzcontent-type�CONTENT_TYPEzcontent-lengthr,�-�_�HTTP_�,)�serverr.�copy�request_version�server_version�command�pathr�urllib�parse�unquote�address_string�client_address�headers�get�get_content_type�items�replace�upper�strip)rr2rN�query�host�length�k�vs        r�get_environzWSGIRequestHandler.get_environKs����k�&�+�+�-�-��!%�!5����!%�!4���� $������$�)��������Q�/�/�J�D�����2��D�!�<�/�/��l�C�C��K��#��N���"�"�$�$���4�&�q�)�)�)�!%�C�
��!�0��3��M���<���N�+�+�3�"&�,�"?�"?�"A�"A�C����"&�,�~�">�C�����!�!�"2�3�3���	+�$*�C� �!��L�&�&�(�(�	#�	#�D�A�q��i�i��C� � �&�&�(�(�A�A�G�G�I�I�!��C�x�x���q�y�C����G�A�I����#�a�%�'�����!"��G�A�I����
r!c��tjSr4)�sys�stderrrs r�
get_stderrzWSGIRequestHandler.get_stderrps
���z�r!c���|j�d��|_t|j��dkr,d|_d|_d|_|�d��dS|���sdSt|j|j
|���|���d���}||_
|�|j�����dS)zHandle a single HTTP requestiir*i�NF)�multithread)�rfile�readline�raw_requestline�len�requestlinerKrM�
send_error�
parse_requestr�wfilerdr`r�runrIr7)r�handlers  r�handlezWSGIRequestHandler.handless��� $�z�2�2�5�9�9����t�#�$�$�u�,�,�!�D��#%�D� ��D�L��O�O�C� � � ��F��!�!�#�#�	��F���J��
�D�O�O�$5�$5�t�7G�7G�7I�7I��
�
�
��#'������D�K�'�'�)�)�*�*�*�*�*r!N)rrr�__version__rLr`rdrqr r!rrrGsL������"�[�0�N�#�#�#�J���+�+�+�+�+r!rc�`�ddlm}|��}td|���t|���t|�����}|D]%\}}t|dt|��|����&|ddg��|����d��gS)	Nr)�StringIOzHello world!)�file�=z200 OK)zContent-Typeztext/plain; charset=utf-8zutf-8)�iort�print�sortedrW�repr�getvalue�encode)�environ�start_responsert�stdout�hr^r_s       rr	r	�s���������
�X�Z�Z�F�	�.�v�&�&�&�&�	�v������w�}�}�����A��*�*���!�
�a��D��G�G�&�)�)�)�)�)��N�8�J�K�L�L�L��O�O���$�$�W�-�-�.�.r!c�L�|||f|��}|�|��|S)zACreate a new WSGI server listening on `host` and `port` for `app`)r9)r\�port�app�server_class�
handler_classrIs      rr
r
�s0���\�4��,�
�
6�
6�F�
�N�N�3�����Mr!�__main__r*i@zServing HTTP onr�rz...zhttp://localhost:8000/xyz?abc) r:�http.serverrrrb�urllib.parserO�wsgiref.handlersr�platformrrr�__all__rL�versionr�sys_versionrrrrr	r
r�httpd�socket�getsockname�sarx�
webbrowser�open�handle_requestr r!r�<module>r�sS��
�
�;�:�:�:�:�:�:�:�
�
�
�
�����*�*�*�*�*�*�*�*�*�*�*�*���
I�
I�
I����,��#�#�%�%��+�c�k�.?�.?�.A�.A�!�.D�D��!�C�'�+�5��
&�
&�
&�
&�
&�M�
&�
&�
&�'�'�'�'�'��'�'�'�:?+�?+�?+�?+�?+�/�?+�?+�?+�F	/�	/�	/�#-�<N������z���	��R��x�	(�	(��E�
�\�
%�
%�
'�
'��
����A����1��u�=�=�=������
��7�8�8�8�
����������������������������s�%AD�D�D

?>