python (3.12.0)

(root)/
lib/
python3.12/
wsgiref/
__pycache__/
simple_server.cpython-312.opt-1.pyc

̑e3dZddlmZmZddlZddlZddlmZddl	m
Z
dZgdZdezZ
e
d	zejjdzZe
d
zezZGddeZGd
deZGddeZdZeefdZedk(rfedde5Zej2j5ZededdeddddlZej<dej?dddyy#1swYyxYw)a!BaseHTTPServer that implements the Python WSGI protocol (PEP 3333)

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.
)BaseHTTPRequestHandler
HTTPServerN)
SimpleHandler)python_implementationz0.2)
WSGIServerWSGIRequestHandlerdemo_appmake_serverWSGIServer// ceZdZeZdZy)
ServerHandlerc	|jj|jjddd|jtj|y#tj|wxYw)Nr
r)request_handlerlog_requeststatussplit
bytes_sentrcloseselfs I/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/wsgiref/simple_server.pyrzServerHandler.close sY	&  ,,!!#a(+T__

%M%sAAA2N)__name__
__module____qualname__software_versionserver_softwarerrrrs&O&r!rc,eZdZdZdZdZdZdZdZy)rz7BaseHTTPServer that implements the Python WSGI protocolNcNtj||jy)z.Override server_bind to store the server name.N)rserver_bind
setup_environrs rr$zWSGIServer.server_bind0st$r!cix}|_|j|d<d|d<t|j|d<d|d<d|d<d|d<y)	NSERVER_NAMEzCGI/1.1GATEWAY_INTERFACESERVER_PORTREMOTE_HOSTCONTENT_LENGTHSCRIPT_NAME)base_environserver_namestrserver_port)renvs  rr%zWSGIServer.setup_environ5s^"$$d!--M#,  !1!12MM Mr!c|jSNapplicationrs rget_appzWSGIServer.get_app?sr!c||_yr4r5)rr6s  rset_appzWSGIServer.set_appBs
&r!)	rrr__doc__r6r$r%r7r9r r!rrr*sAK
  'r!rc(eZdZdezZdZdZdZy)rrc|jjj}|j|d<|j|d<|j
|d<d|jvr |jjdd\}}n|jd}}tjj|d|d<||d	<|j}||jd
k7r||d<|jd
|d<|jjd
|jj|d<n|jd
|d<|jjd}|r||d<|jj!D]]\}}|j#ddj%}|j'}||vr;d|z|vr|d|zxxd|zz
cc<V||d|z<_|S)NSERVER_PROTOCOLSERVER_SOFTWAREREQUEST_METHOD?rr*z
iso-8859-1	PATH_INFOQUERY_STRINGrr+REMOTE_ADDRzcontent-typeCONTENT_TYPEzcontent-lengthr,-_HTTP_,)serverr.copyrequest_versionserver_versioncommandpathrurllibparseunquoteaddress_stringclient_addressheadersgetget_content_typeitemsreplaceupperstrip)rr2rNqueryhostlengthkvs        rget_environzWSGIRequestHandler.get_environKskk&&++-!%!5!5!%!4!4 $$))Q/JD2D!<<//lCK#N""$4&&q))!%C
!003M<<N+3"&,,"?"?"AC"&,,~">C!!"23$*C !LL&&(	#DAqiiC &&(AAGGI!CxqyCGAI#a%'!"GAI	#
r!c"tjSr4)sysstderrrs r
get_stderrzWSGIRequestHandler.get_stderrpszzr!c|jjd|_t|jdkDr'd|_d|_d|_|jdy|jsyt|j|j|j|jd}||_
|j|jj!y)zHandle a single HTTP requestiir*iNF)multithread)rfilereadlineraw_requestlinelenrequestlinerKrM
send_error
parse_requestrwfilerdr`rrunrIr7)rhandlers  rhandlezWSGIRequestHandler.handless $zz2259t##$u,!D#%D DLOOC !!#JJ

DOO$5t7G7G7I
#'DKK'')*r!N)rrr__version__rLr`rdrqr r!rrrGs"[0N#J+r!rcddlm}|}td|t|t|j	}|D]\}}t|dt|||ddg|j
jdgS)	Nr)StringIOzHello world!)file=z200 OK)zContent-Typeztext/plain; charset=utf-8zutf-8)iortprintsortedrWreprgetvalueencode)environstart_responsertstdouthr^r_s       rr	r	s|
ZF	.v&	vw}}A*!
aDG&)*8JKLOO$$W-..r!c>|||f|}|j||S)zACreate a new WSGI server listening on `host` and `port` for `app`)r9)r\portappserver_class
handler_classrIs      rr
r
s%4,

6F
NN3Mr!__main__r*i@zServing HTTP onrrz...zhttp://localhost:8000/xyz?abc) r:http.serverrrrburllib.parserOwsgiref.handlersrplatformrrr__all__rLversionrsys_versionrrrrr	r
rhttpdsocketgetsocknamesarx
webbrowseropenhandle_requestr r!r<module>rs
;
**
I,#%+ckk.?.?.A!.DD!C'+5
&M
&'':?+/?+F	/#-<Nz	Rx	(E
\\
%
%
'
A1u=
78
s
AC00C9