Plan 9 from Bell Labs’s /usr/web/sources/contrib/stallion/root/sys/lib/python2.7/wsgiref/simple_server.pyo

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


�`^c@scdZddlmZmZddlZddlZddlmZdZdddd	gZ	d
eZ
dejj�dZ
e
d
e
Zdefd��YZdefd��YZdefd��YZd�Zeed�Zedkr_edde�Zejj�ZdGedGdGedGdGHddlZejd�ej�ej�ndS(s*BaseHTTPServer that implements the Python WSGI protocol (PEP 333, rev 1.21)

This is both an example of how WSGI can be implemented, and a basis for running
simple web applications on a local machine, such as might be done when testing
or debugging an application.  It has not been reviewed for security issues,
however, and we strongly recommend that you use a "real" web server for
production use.

For example usage, see the 'if __name__=="__main__"' block at the end of the
module.  See also the BaseHTTPServer module docs for other API information.
i�(tBaseHTTPRequestHandlert
HTTPServerN(t
SimpleHandlers0.1t
WSGIServertWSGIRequestHandlertdemo_apptmake_serversWSGIServer/sPython/it t
ServerHandlercBseZeZd�ZRS(cCsBz-|jj|jjdd�d|j�Wdtj|�XdS(NRii(trequest_handlertlog_requesttstatustsplitt
bytes_sentRtclose(tself((s+/sys/lib/python2.7/wsgiref/simple_server.pyRs	$(t__name__t
__module__tsoftware_versiontserver_softwareR(((s+/sys/lib/python2.7/wsgiref/simple_server.pyRscBs8eZdZdZd�Zd�Zd�Zd�ZRS(s7BaseHTTPServer that implements the Python WSGI protocolcCstj|�|j�dS(s.Override server_bind to store the server name.N(Rtserver_bindt
setup_environ(R((s+/sys/lib/python2.7/wsgiref/simple_server.pyR.s
cCsYi}|_|j|d<d|d<t|j�|d<d|d<d|d<d|d<dS(	NtSERVER_NAMEsCGI/1.1tGATEWAY_INTERFACEtSERVER_PORTttREMOTE_HOSTtCONTENT_LENGTHtSCRIPT_NAME(tbase_environtserver_nametstrtserver_port(Rtenv((s+/sys/lib/python2.7/wsgiref/simple_server.pyR3s




cCs|jS(N(tapplication(R((s+/sys/lib/python2.7/wsgiref/simple_server.pytget_app=scCs
||_dS(N(R"(RR"((s+/sys/lib/python2.7/wsgiref/simple_server.pytset_app@sN(	RRt__doc__tNoneR"RRR#R$(((s+/sys/lib/python2.7/wsgiref/simple_server.pyR(s		
	cBs-eZdeZd�Zd�Zd�ZRS(sWSGIServer/c	Cs�|jjj�}|j|d<|j|d<d|jkrY|jjdd�\}}n|jd}}tj|�|d<||d<|j	�}||j
dkr�||d	<n|j
d|d
<|jjdkr�jj|d<n|jj|d<|jjd�}|r||d
<nx�|jjD]�}|jdd�\}}|jdd�j�}|j�}||kr~q*nd||kr�|d|cd|7<q*||d|<q*W|S(NtSERVER_PROTOCOLtREQUEST_METHODt?iRt	PATH_INFOtQUERY_STRINGiRtREMOTE_ADDRtCONTENT_TYPEscontent-lengthRt:t-t_tHTTP_t,(tserverRtcopytrequest_versiontcommandtpathRturllibtunquotetaddress_stringtclient_addresstheaderst
typeheaderR&ttypet	getheadertreplacetuppertstrip(	RR!R7tquerythosttlengththtktv((s+/sys/lib/python2.7/wsgiref/simple_server.pytget_environIs8




cCstjS(N(tsyststderr(R((s+/sys/lib/python2.7/wsgiref/simple_server.pyt
get_stderrnscCsl|jj�|_|j�s"dSt|j|j|j�|j��}||_|j	|j
j��dS(sHandle a single HTTP requestN(trfiletreadlinetraw_requestlinet
parse_requestRtwfileRLRIR	trunR3R#(Rthandler((s+/sys/lib/python2.7/wsgiref/simple_server.pythandleqs$	(RRt__version__tserver_versionRIRLRT(((s+/sys/lib/python2.7/wsgiref/simple_server.pyREs
	%	cCs�ddlm}|�}|dIJ|J|j�}|j�x0|D](\}}||IdIt|�IJqDW|ddg�|j�gS(	Ni�(tStringIOsHello world!t=s200 OKsContent-Types
text/plain(sContent-Types
text/plain(RWtitemstsorttreprtgetvalue(tenvirontstart_responseRWtstdoutRFRGRH((s+/sys/lib/python2.7/wsgiref/simple_server.pyR�s	

 cCs&|||f|�}|j|�|S(sACreate a new WSGI server listening on `host` and `port` for `app`(R$(RDtporttapptserver_classt
handler_classR3((s+/sys/lib/python2.7/wsgiref/simple_server.pyR�s
t__main__Ri@sServing HTTP onR`is...shttp://localhost:8000/xyz?abc(R%tBaseHTTPServerRRR8RJtwsgiref.handlersRRUt__all__RVtversionRtsys_versionRRRRRRRthttpdtsockettgetsocknametsat
webbrowsertopenthandle_requesttserver_close(((s+/sys/lib/python2.7/wsgiref/simple_server.pyt<module>s*
;	




Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].