o
    ç÷¡g/  ã                   @   sš   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZmZmZmZmZmZ dd„ Zdd	„ Zd
d„ Zdd„ ZedkrKeƒ  dS dS )é    N)Úoptions)Úhandler)ÚIndexHandlerÚWsockHandlerÚNotFoundHandler)Úget_app_settingsÚget_host_keys_settingsÚget_policy_settingÚget_ssl_contextÚget_server_settingsÚcheck_encoding_settingc                 C   s:   t |ƒ}t||ƒ}dtt| ||d�fdtt| d�fg}|S )Nú/)ÚloopÚpolicyÚhost_keys_settingsz/ws)r   )r   r	   r   Údictr   )r   r   r   r   Úhandlers© r   ú6/usr/local/lib/python3.10/dist-packages/webssh/main.pyÚmake_handlers   s   

ÿýr   c                 C   s    |j td� tjj| fi |¤ŽS )N)Údefault_handler_class)Úupdater   ÚtornadoÚwebÚApplication)r   Úsettingsr   r   r   Úmake_app   s   r   c                 C   sP   | j ||fi |¤Ž | d¡sd}n
d}tjrdndt_t d |||¡¡ d S )NÚssl_optionsÚhttpÚhttpsTFzListening on {}:{} ({}))	ÚlistenÚgetr   Úredirectr   ÚredirectingÚloggingÚinfoÚformat)ÚappÚportÚaddressÚserver_settingsÚserver_typer   r   r   Ú
app_listen   s   
ÿr,   c                  C   s‚   t  ¡  tt jƒ tjj ¡ } tt	| t ƒt
t ƒƒ}tt ƒ}tt ƒ}t|t jt j|ƒ |r;|j|d� t|t jt j|ƒ |  ¡  d S )N)r   )r   Úparse_command_liner   Úencodingr   ÚioloopÚIOLoopÚcurrentr   r   r   r
   r   r,   r(   r)   r   ÚsslportÚ
ssladdressÚstart)r   r'   Ússl_ctxr*   r   r   r   Úmain+   s   
r6   Ú__main__)r$   Útornado.webr   Útornado.ioloopÚtornado.optionsr   Úwebsshr   Úwebssh.handlerr   r   r   Úwebssh.settingsr   r   r	   r
   r   r   r   r   r,   r6   Ú__name__r   r   r   r   Ú<module>   s     
ÿ