HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/ssl_servers.cpython-37.opt-2.pyc
B

��g+�@sddlZddlZddlZddlZddlZddlZddlmZ	m
Z
mZddlm
Z
ej�e�Ze
jZej�ed�ZGdd�de	�ZGdd�de
�ZGd	d
�d
e�ZGdd�dej�Zdeedd
�dd�Zedk�rddlZejdd�Zejdde ddd�ejddddddd�ejdd d!d"d#d$d�ejd%d&e!d'd(d)�ejd*d+e!d,d-�ejd.d/e!d'd0d)�e�"�Z#e#j$e
_$e#j%�r|eZ&neZ&e�'�e&_(e�)ej*j+�Z,e,�-e�e#j.�r�e,�/e#j.�e#j0�r�e,�1e#j0�e#j2�r�e,�3e#j2�ed1e#j4fe&e,�Z5e#j$�re6d2�7e#��e5�8d3�dS)4�N)�
HTTPServer�SimpleHTTPRequestHandler�BaseHTTPRequestHandler)�supportzkeycert.pemc@s$eZdZdd�Zdd�Zdd�ZdS)�HTTPSServercCst�|||�||_dS)N)�_HTTPServer�__init__�context)�self�server_address�
handler_classr	�r
�,/usr/local/lib/python3.7/test/ssl_servers.pyrszHTTPSServer.__init__cCsd|jj|j|jfS)Nz
<%s %s:%s>)�	__class__�__name__Zserver_name�server_port)r
r
r
r�__str__szHTTPSServer.__str__c
Csfy"|j��\}}|jj|dd�}Wn:tk
r\}ztjrJtj�	d|��Wdd}~XYnX||fS)NT)Zserver_sidezGot an error:
%s
)
ZsocketZacceptr	Zwrap_socket�OSErrorr�verbose�sys�stderr�write)r
�sockZaddrZsslconn�er
r
r�get_request szHTTPSServer.get_requestN)r�
__module__�__qualname__rrrr
r
r
rrsrc@s(eZdZdZeZdZdd�Zdd�ZdS)�RootedHTTPRequestHandlerz
TestHTTPS/1.0�cCs~tj�|�d}tj�tj�|��}|�d�}td|�}|j	}x:|D]2}tj�
|�\}}tj�|�\}}tj�||�}qDW|S)N��/)�urllib�parseZurlparse�os�path�normpathZunquote�split�filter�root�
splitdrive�join)r
r$ZwordsZwordZdrive�headr
r
r�translate_path6s	


z'RootedHTTPRequestHandler.translate_pathc	Gs:tjr6tj�d|jj|jj|j�	�|�
�||f�dS)Nz server (%s:%d %s):
   [%s] %s
)rrr�stdoutr�serverrrZrequest�cipherZlog_date_time_string)r
�format�argsr
r
r�log_messageJsz$RootedHTTPRequestHandler.log_messageN)	rrr�server_version�herer(Ztimeoutr,r2r
r
r
rr,s
rc@s*eZdZdZd
dd�Zdd�Zdd�Zd	S)�StatsRequestHandlerzStatsHTTPS/1.0TcCs�|jjj}|j}|��|��|��d�}t�|�}|�	d�}|�
d�|�dd�|�dtt
|���|��|r~|j�|�dS)N)Z
session_cacher/�compressionzutf-8��zContent-typeztext/plain; charset=utf-8zContent-Length)Zrfile�rawZ_sockr	Z
session_statsr/r6�pprintZpformat�encodeZ
send_responseZsend_header�str�lenZend_headersZwfiler)r
�	send_bodyrr	ZstatsZbodyr
r
r�do_GET\s



zStatsRequestHandler.do_GETcCs|jdd�dS)NF)r=)r>)r
r
r
r�do_HEADnszStatsRequestHandler.do_HEADcGstjrtj||f|��dS)N)rrr�log_request)r
r0r1r
r
rr@rszStatsRequestHandler.log_requestN)T)rrrr3r>r?r@r
r
r
rr5Us
r5c@s<eZdZedfdd�Zdd�Zddd�Zdd	�Zd
d�ZdS)
�HTTPSServerThreadNcCs<d|_t|df|pt|�|_|jj|_tj�|�d|_	dS)NrT)
�flagrrr.r�port�	threading�ThreadrZdaemon)r
r	�hostrr
r
rrys
zHTTPSServerThread.__init__cCsd|jj|jfS)Nz<%s %s>)rrr.)r
r
r
rr�szHTTPSServerThread.__str__cCs||_tj�|�dS)N)rBrDrE�start)r
rBr
r
rrG�szHTTPSServerThread.startcCs2|jr|j��z|j�d�Wd|j��XdS)Ng�������?)rB�setr.�
serve_foreverZserver_close)r
r
r
r�run�s

zHTTPSServerThread.runcCs|j��dS)N)r.Zshutdown)r
r
r
r�stop�szHTTPSServerThread.stop)N)	rrr�HOSTrrrGrJrKr
r
r
rrAws
	
rA)r	�certfilerFrcs`|dkrt�tjj�}|�|�t|||��t��}��|�|�	��fdd�}|�
|��S)Ncs8tjrtj�d����tjr,tj�d����dS)Nzstopping HTTPS server
zjoining HTTPS thread
)rrrr-rrKr*r
)r.r
r�cleanup�sz"make_https_server.<locals>.cleanup)�ssl�create_default_context�Purpose�CLIENT_AUTH�load_cert_chainrArDZEventrG�waitZ
addCleanup)Zcaser	rMrFrrBrNr
)r.r�make_https_server�s


rU�__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--quietrT�store_falsezbe less verbose)�destrY�actionrZz-sz--stats�use_stats_handlerF�
store_truezalways return stats pagez--curve-name�
curve_name�storez&curve name for EC-based Diffie-Hellman)r\rXr]rZz	--ciphers�cipherszallowed cipher list)r\rXrZz--dh�dh_filez!PEM file containing DH parameters�z'Listening on https://localhost:{0.port}g�������?)9r#rrOr9rDZurllib.parser!Zhttp.serverrrrrZtestrr$�dirname�__file__r4rLr*ZCERTFILErrr5rErArUr�argparse�ArgumentParser�parser�add_argument�intr;�
parse_argsr1rr^r�getcwdr(rPrQrRr	rSr`Zset_ecdh_curvercZload_dh_paramsrbZset_ciphersrCr.�printr0rIr
r
r
r�<module>sf)"