o w[eO @ s d Z dZg dZddlZddlZddlZddlZddlZ ddl Z ddlZddlZddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddl mZ dZdZG dd d ejZG d d dejeZG dd d ejZG dd deZ dd Z!da"dd Z#dd Z$G dd de Z%dd Z&eedddfddZ'e(dkrddl)Z)ddl*Z*e)+ Z,e,j-dd d!d" e,j-d#d$d%d&d' e,j-d(d)e . d*d+ e,j-d,d-de/d.d/d0 e,0 Z1e1j2re%Z3ne Z3G d1d2 d2eZ4e'e3e4e1j5e1j6d3 dS dS )4a@ 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) HTTPServerThreadingHTTPServerBaseHTTPRequestHandlerSimpleHTTPRequestHandlerCGIHTTPRequestHandler N) HTTPStatusa
Error code: %(code)d
Message: %(message)s.
Error code explanation: %(code)s - %(explain)s.
ztext/html;charset=utf-8c @ 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 TCPServerserver_bindserver_addresssocketgetfqdnserver_nameserver_port)selfhostport r "/usr/lib/python3.10/http/server.pyr s zHTTPServer.server_bindN)__name__ __module____qualname__allow_reuse_addressr r r r r r s r c @ s e Zd ZdZdS )r TN)r r r daemon_threadsr r r r r s r c @ s* e Zd ZdZdej d Zde Z e ZeZ dZdd Zdd Zd d Zdd Zd5ddZd6ddZd6ddZdd Zdd Zdd Zd7ddZdd Zed d! eed"ed#d$D Z d%e e!d&<