HEX
Server: LiteSpeed
System: Linux baran.dnsprotection.me 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: ddir12 (3618)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/future/backports/test/__pycache__/ssl_servers.cpython-36.opt-1.pyc
3

�c)�@s>ddlmZmZmZmZddlmZmZddlm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZddlmZmZmZddlmZejd�Ze
jje�ZejZe
jj ed	�Z!Gd
d�de�Z"Gdd
�d
e�Z#Gdd�de�Z$Gdd�dej%�Z&e!edfdd�Z'e(dk�r:ddl)Z)e)j*dd�Z+e+j,dde-ddd�e+j,ddddd d!d"�e+j,d#d$d%d&d'd(d"�e+j,d)d*ed+d,d-�e+j,d.d/ed+d0d-�e+j.�Z/e/j0e_0e/j1�r�e$Z2n"e#Z2e	j3�r�e
j4�e2_5n
e
j6�e2_5ej7ej8�Z9e9j:e!�e/j;�r�e9j<e/j;�e/j=�re9j>e/j=�e"d1e/j?fe2e9�Z@e/j0�r0eAd2jBe/��e@jCd3�dS)4�)�absolute_import�division�print_function�unicode_literals)�filter�str)�utilsN)�parse)�
HTTPServer�SimpleHTTPRequestHandler�BaseHTTPRequestHandler)�support�	threadingzkeycert.pemc@s$eZdZdd�Zdd�Zdd�ZdS)�HTTPSServercCstj|||�||_dS)N)�_HTTPServer�__init__�context)�self�server_address�
handler_classr�r�!/usr/lib/python3.6/ssl_servers.pyrszHTTPSServer.__init__cCsd|jj|j|jfS)Nz
<%s %s:%s>)�	__class__�__name__Zserver_name�server_port)rrrr�__str__szHTTPSServer.__str__cCshy"|jj�\}}|jj|dd�}Wn<tjk
r^}ztjrLtjj	d|��WYdd}~XnX||fS)NT)Zserver_sidezGot an error:
%s
)
�socketZacceptrZwrap_socket�errorr
�verbose�sys�stderr�write)r�sockZaddrZsslconn�errr�get_request"szHTTPSServer.get_requestN)r�
__module__�__qualname__rrr$rrrrrsrc@s(eZdZdZeZdZdd�Zdd�ZdS)�RootedHTTPRequestHandlerz
TestHTTPS/1.0�cCs~tjj|�d}tjjtjj|��}|jd�}td|�}|j	}x:|D]2}tjj
|�\}}tjj|�\}}tjj||�}qDW|S)z�Translate a /-separated PATH to the local filename syntax.

        Components that mean special things to the local file system
        (e.g. drive or directory names) are ignored.  (XXX They should
        probably be diagnosed.)

        ��/N)Zurllibr	Zurlparse�os�path�normpathZunquote�splitr�root�
splitdrive�join)rr,ZwordsZwordZdrive�headrrr�translate_path8s	


z'RootedHTTPRequestHandler.translate_pathcGs:tjr6tjjd|jj|jj|jj	�|j
�||f�dS)Nz server (%s:%d %s):
   [%s] %s
)r
rr�stdoutr!�serverrrZrequest�cipherZlog_date_time_string)r�format�argsrrr�log_messageLsz$RootedHTTPRequestHandler.log_messageN)	rr%r&�server_version�herer/Ztimeoutr3r9rrrrr'.s
r'c@s.eZdZdZdZddd�Zdd�Zdd	�Zd
S)�StatsRequestHandlerzSExample HTTP request handler which returns SSL statistics on GET
    requests.
    zStatsHTTPS/1.0TcCs�|jjj}|j}|j�|j�|j�d�}tj|�}|j	d�}|j
d�|jdd�|jdtt
|���|j�|r~|jj|�dS)zServe a GET request.)Z
session_cacher6�compressionzutf-8��zContent-typeztext/plain; charset=utf-8zContent-LengthN)Zrfile�rawZ_sockrZ
session_statsr6r=�pprintZpformat�encodeZ
send_responseZsend_headerr�lenZend_headersZwfiler!)r�	send_bodyr"rZstatsZbodyrrr�do_GET^s



zStatsRequestHandler.do_GETcCs|jdd�dS)zServe a HEAD request.F)rCN)rD)rrrr�do_HEADpszStatsRequestHandler.do_HEADcGstjrtj||f|��dS)N)r
rr�log_request)rr7r8rrrrFtszStatsRequestHandler.log_requestN)T)rr%r&�__doc__r:rDrErFrrrrr<Ws

r<c@s<eZdZedfdd�Zdd�Zddd�Zdd	�Zd
d�ZdS)
�HTTPSServerThreadNcCs<d|_t|df|pt|�|_|jj|_tjj|�d|_	dS)NrT)
�flagrr'r5r�portr�ThreadrZdaemon)rr�hostrrrrr{s
zHTTPSServerThread.__init__cCsd|jj|jfS)Nz<%s %s>)rrr5)rrrrr�szHTTPSServerThread.__str__cCs||_tjj|�dS)N)rIrrK�start)rrIrrrrM�szHTTPSServerThread.startc
Cs2|jr|jj�z|jjd�Wd|jj�XdS)Ng�������?)rI�setr5�
serve_foreverZserver_close)rrrr�run�s

zHTTPSServerThread.runcCs|jj�dS)N)r5Zshutdown)rrrr�stop�szHTTPSServerThread.stop)N)	rr%r&�HOSTrrrMrPrQrrrrrHys
	
rHcsVtjtj�}|j|�t|||��tj�}�j|�|j��fdd�}|j	|��S)Ncs8tjrtjjd��j�tjr,tjjd��j�dS)Nzstopping HTTPS server
zjoining HTTPS thread
)r
rrr4r!rQr1r)r5rr�cleanup�sz"make_https_server.<locals>.cleanup)
�ssl�
SSLContextZPROTOCOL_SSLv23�load_cert_chainrHrZEventrM�waitZ
addCleanup)ZcaseZcertfilerLrrrIrSr)r5r�make_https_server�s


rX�__main__zERun a test HTTPS server. By default, the current directory is served.)�descriptionz-pz--portiQz(port to listen on (default: %(default)s))�type�default�helpz-qz--quietrTZstore_falsezbe less verbose)�destr\�actionr]z-sz--stats�use_stats_handlerF�
store_truezalways return stats pagez--curve-name�
curve_nameZstorez&curve name for EC-based Diffie-Hellman)r^r[r_r]z--dh�dh_filez!PEM file containing DH parameters�z'Listening on https://localhost:{0.port}g�������?)DZ
__future__rrrrZfuture.builtinsrrZfuturerr+rrTr@rZfuture.backports.urllibr	Zurllib_parseZfuture.backports.http.serverr
rrrZfuture.backports.testr
�
import_modulerr,�dirname�__file__r;rRr1ZCERTFILErr'r<rKrHrXr�argparse�ArgumentParser�parser�add_argument�int�
parse_argsr8rr`rZPY2Zgetcwdur/�getcwdrUZPROTOCOL_TLSv1rrVrbZset_ecdh_curvercZload_dh_paramsrJr5�printr7rOrrrr�<module>sh
)"