File: //opt/alt/python310/lib64/python3.10/http/__pycache__/server.cpython-310.pyc
o
0�i� � @ s� d Z dZg d�ZddlZddlZddlZddlZddlZ ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddl mZ dZdZdZG d d
� d
ej�ZG dd� deje�ZG d
d� dej�Z G dd� de �Z!dd� Z"da#dd� Z$dd� Z%G dd� de!�Z&dd� Z'e edddfdd�Z(e)dkr�ddl*Z*ddl+Z+e*�,� Z-e-j.d d!d"d#� e-j.d$d%d&d'd(� e-j.d)d*e
�/� d+d,� e-j.d-d.de0d/d0d1� e-�1� Z2e2j3r�e&Z4ne!Z4G d2d3� d3e�Z5e(e4e5e2j6e2j7d4� dS dS )5a@ HTTP server classes.
Note: BaseHTTPRequestHandler doesn't implement any HTTP request; see
SimpleHTTPRequestHandler for simple implementations of GET, HEAD and POST,
and CGIHTTPRequestHandler for CGI scripts.
It does, however, optionally implement HTTP/1.1 persistent connections,
as of version 0.3.
Notes on CGIHTTPRequestHandler
------------------------------
This class implements GET and POST requests to cgi-bin scripts.
If the os.fork() function is not present (e.g. on Windows),
subprocess.Popen() is used as a fallback, with slightly altered semantics.
In all cases, the implementation is intentionally naive -- all
requests are executed synchronously.
SECURITY WARNING: DON'T USE THIS CODE UNLESS YOU ARE INSIDE A FIREWALL
-- it may execute arbitrary Python code or external programs.
Note that status code 200 is sent prior to execution of a CGI script, so
scripts cannot send other status codes such as 302 (redirect).
XXX To do:
- log requests even later (to capture byte count)
- log user-agent header and other interesting goodies
- send error log to separate file
z0.6)�
HTTPServer�ThreadingHTTPServer�BaseHTTPRequestHandler�SimpleHTTPRequestHandler�CGIHTTPRequestHandler� N)�
HTTPStatusa� <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Error response</title>
</head>
<body>
<h1>Error response</h1>
<p>Error code: %(code)d</p>
<p>Message: %(message)s.</p>
<p>Error code explanation: %(code)s - %(explain)s.</p>
</body>
</html>
ztext/html;charset=utf-8i c @ s e Zd ZdZdd� ZdS )r � c C s4 t j�| � | jdd� \}}t�|�| _|| _dS )z.Override server_bind to store the server name.N� )�socketserver� TCPServer�server_bindZserver_address�socketZgetfqdn�server_name�server_port)�self�host�port� r �2/opt/alt/python310/lib64/python3.10/http/server.pyr � s
zHTTPServer.server_bindN)�__name__�
__module__�__qualname__Zallow_reuse_addressr r r r r r � s r c @ s e Zd ZdZdS )r TN)r r r Zdaemon_threadsr r r r r � s r c @ s* e Zd ZdZdej�� d Zde Z e
ZeZ
dZdd� Zdd � Zd
d� Zdd
� Zd5dd�Zd6dd�Zd6dd�Zdd� Zdd� Zdd� Zd7dd�Zdd� Ze�d d!� e�ed"�ed#d$��D ��Z d%e e!d&�<