Viewing File: /opt/alt/python35/lib64/python3.5/__pycache__/cgi.cpython-35.opt-2.pyc



]Č@sIdZddlmZmZmZddlmZddlZddlZddl	Z
ddlmZddl
mZddlmZddlZddlZddlZdd	d
ddd
ddddddddgZdadaddZddZddZddZeadadejdddd
Zddd dZddd!dZ d"d
Z!d#d$Z"d%dZ#Gd&ddZ$Gd'd	d	Z%ejd(d)Z&ddddd*dZ'ejd+dZ(d,dZ)d-dZ*d.dZ+d/dZ,dd0dZ-d1d2Z.e/d3krEe&dS)4z2.6)StringIOBytesIO
TextIOWrapper)MappingN)
FeedParser)Message)warnMiniFieldStorageFieldStorageparseparse_qs	parse_qslparse_multipartparse_headerprint_exception
print_environ
print_formprint_directoryprint_argumentsprint_environ_usageescapecGsXtr5tr5yttdaWntk
r4YnXtsDtantat|dS)Na)logfilelogfpopenOSErrornologlogdolog)allargsr!(/opt/alt/python35/lib64/python3.5/cgi.pyinitlog:s

	r#cGstj||ddS)N
)rwrite)fmtargsr!r!r"r]srcGsdS)Nr!)r r!r!r"rasrcCs&datrtjdatadS)Nr)rrcloser#rr!r!r!r"closeloges

r)c	Cs|dkrtj}t|dr0|j}nd}t|trN|j}d|krdd|d<|ddkrlt|d\}}|dkrt||S|dkrt	|d	}t
r|t
krtd
|j|j
|}nd}d|kr+|r|d
}||d}n4tjddr_|rN|d
}|tjd}||d<nLd|kr|d}n3tjddrtjd}nd}||d<tjj|||d|S)Nencodingzlatin-1REQUEST_METHODGETPOSTCONTENT_TYPEzmultipart/form-dataz!application/x-www-form-urlencodedCONTENT_LENGTHzMaximum content length exceededrQUERY_STRING&)sysstdinhasattrr*
isinstancerbufferrrintmaxlen
ValueErrorreaddecodeargvurllibrr)	fpenvironkeep_blank_valuesstrict_parsingr*ctypepdictclengthqsr!r!r"rxsH		






cCs&tdtdtjj|||S)Nz=cgi.parse_qs is deprecated, use urllib.parse.parse_qs instead)rDeprecationWarningr>rr)rFrArBr!r!r"rs
cCs&tdtdtjj|||S)Nz?cgi.parse_qsl is deprecated, use urllib.parse.parse_qsl insteadrG)rrHr>rr
)rFrArBr!r!r"r
s
cCsddl}d}d|kr(|d}t|sGtd|fd|}d|d}i}d}x!||krd}d}	|r|jj|}
|
jd}|ryt|}Wntk
rYnX|dkrtr|tkrtd|j|}	nd}	g}xX|j	}
|
s<|}P|
j
drj|
j}|||fkrjP|j|
q#W|	dkrqn|dkr|r|d}
|
ddd
kr|
dd}
n&|
dddkr|
dd}
|
|d<dj
|}	|
d}
|
s!qnt|
\}}|d
krBqnd|krn|d}nqn||kr~||j|	qn|	g||<qnW|S)Nrboundaryz&Invalid boundary in multipart form: %rs--r2zcontent-lengthzMaximum content length exceededrGs
s
zcontent-dispositionz	form-datanamerLrMrLrLrL)Zhttp.clientvalid_boundaryr:clientZ
parse_headersgetr8r9r;readline
startswithrstripappendjoinr)r?rDZhttprJZnextpartZlastpartZpartdict
terminatorbytesdataheadersrElineslinekeyparamsrKr!r!r"rs|







ccsx|dddkr|dd}|jd}xR|dkr|jdd||jdd|dr|jd|d}q;W|dkrt|}|d|}|jV||d}qWdS)Nr2;r"z\"rG)findcountlenstrip)sendfr!r!r"_parseparam-s;rgcCstd|}|j}i}x|D]}|jd}|dkr)|d|jj}||ddj}t|dkr|d|d
kodknr|dd}|jddjd	d}|||<q)W||fS)Nr^=rr2rGr_z\\\z\"rLrL)rg__next__r`rclowerrbreplace)r[partsr\rDpirKvaluer!r!r"r9s
6c@sXeZdZdZdZdZdZiZdZiZ	iZ
ddZddZdS)r	NcCs||_||_dS)N)rKrp)selfrKrpr!r!r"__init___s	zMiniFieldStorage.__init__cCsd|j|jfS)NzMiniFieldStorage(%r, %r))rKrp)rqr!r!r"__repr__eszMiniFieldStorage.__repr__)
__name__
__module____qualname__filenamelisttypefiletype_optionsdispositiondisposition_optionsrYrrrsr!r!r!r"r	Qsc@sleZdZdddejddddddd	Zdd	Zd
dZdd
ZddZ	ddZ
ddZddZdddZ
dddZddZddZddZd d!Zd"d#Zd$d%ZdZd&d'Zd(d)Zd:Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9ZdS);r
NrIrzutf-8rlc
Cshd}
||_||_d|kr4|dj}
d|_|
dksU|
dkrd|krn|d}n)tjddrtjd}nd}|jtjd}t	|}|dkrdd	i}|dkrKi}|
d
krd	|d<d|kr|d|d<d|kr.|d|_d|krl|d|d
<n!t
|ttfslt
d||_|dkrtjj|_nQt
|tr|j|_n3t|dot|dst
d||_||_|	|_t
|tst
dt|j||_d|_||_di}}
d|jkrnt|jd\}}
||_|
|_d|_d|
kr|
d|_d|_ d|
kr|
d|_ |j dk	|_!d|jkrt|jd\}}
n2|js|
d
kr&di}}
n
d	i}}
||_|
|_"d|
krm|
dj|j|_#n	d|_#d}d
|jkryt$|jd
}Wnt%k
rYnXt&r|t&krt%d||_'|jdkr|r||_d|_(|_)d|_*|d	kr.|j+n6|dddkrZ|j,|||n
|j-dS)Nr,r+ZHEADr0r2rsurrogateescapezcontent-typez!application/x-www-form-urlencodedr-r.r/zcontent-lengthz?headers must be mapping or an instance of email.message.Messager;rQzfp must be file pointerz#outerboundary must be bytes, not %srzcontent-dispositionrKrwz
text/plainrJrIzMaximum content length exceeded
z
multipart/rL).rArBupper
qs_on_postr3r=encodelocalegetpreferredencodingrr6rr	TypeErrorrYr4r7r?rr5r*errorsrWryrt
outerboundary
bytes_readlimitrr|r}rKrw_binary_filer{
innerboundaryr8r:r9lengthrxrzdoneread_urlencoded
read_multiread_single)rqr?rYrr@rArBrr*rmethodrFZcdisprDrCZclenr!r!r"rrs+			
	

							
			
	

			
			
zFieldStorage.__init__cCs*y|jjWntk
r%YnXdS)N)rzr(AttributeError)rqr!r!r"__del__3s
zFieldStorage.__del__cCs|S)Nr!)rqr!r!r"	__enter__9szFieldStorage.__enter__cGs|jjdS)N)rzr()rqr'r!r!r"__exit__<szFieldStorage.__exit__cCsd|j|j|jfS)NzFieldStorage(%r, %r, %r))rKrwrp)rqr!r!r"rs?szFieldStorage.__repr__cCst|jS)N)iterkeys)rqr!r!r"__iter__DszFieldStorage.__iter__cCsx|dkrt||jrS|jjd|jj}|jjdn!|jdk	rn|j}nd}|S)Nrpr)rrzseekr;rx)rqrKrpr!r!r"__getattr__Gs	zFieldStorage.__getattr__cCs|jdkrtdg}x-|jD]"}|j|kr+|j|q+W|sct|t|dkr}|dS|SdS)Nz
not indexabler2r)rxrrKrTKeyErrorrb)rqr\founditemr!r!r"__getitem__TszFieldStorage.__getitem__cCsH||kr@||}t|tr6dd|DS|jSn|SdS)NcSsg|]}|jqSr!)rp).0xr!r!r"
<listcomp>gs	z)FieldStorage.getvalue.<locals>.<listcomp>)r6rxrp)rqr\defaultrpr!r!r"getvaluebs

zFieldStorage.getvaluecCsB||kr:||}t|tr0|djS|jSn|SdS)Nr)r6rxrp)rqr\rrpr!r!r"getfirstms

zFieldStorage.getfirstcCsK||krC||}t|tr6dd|DS|jgSngSdS)NcSsg|]}|jqSr!)rp)rrr!r!r"r}s	z(FieldStorage.getlist.<locals>.<listcomp>)r6rxrp)rqr\rpr!r!r"getlistxs

zFieldStorage.getlistcCs;|jdkrtdttdd|jDS)Nz
not indexablecss|]}|jVqdS)N)rK)rrr!r!r"	<genexpr>sz$FieldStorage.keys.<locals>.<genexpr>)rxrset)rqr!r!r"rszFieldStorage.keyscs;|jdkrtdtfdd|jDS)Nz
not indexablec3s|]}|jkVqdS)N)rK)rr)r\r!r"rsz,FieldStorage.__contains__.<locals>.<genexpr>)rxrany)rqr\r!)r\r"__contains__szFieldStorage.__contains__cCst|jS)N)rbr)rqr!r!r"__len__szFieldStorage.__len__cCs(|jdkrtdt|jS)NzCannot be converted to bool.)rxrbool)rqr!r!r"__bool__szFieldStorage.__bool__cCs|jj|j}t|tsFtd|jt|jf|j|j	|j
}|jrx|d|j7}g|_t
jj||j|jd|j	d|j
}x-|D]%\}}|jjt||qW|jdS)Nz%s should return bytes, got %sr1r*r)r?r;rr6rWr:ryrtr<r*rrrxr>rr
rArBrTr	
skip_lines)rqrFqueryr\rpr!r!r"rs			zFieldStorage.read_urlencodedc
Cs~|j}t|s(td|fg|_|jrtjj|j|j|j	d|j
d|j}x-|D]%\}}|jjt
||qtW|jp|j}|jj}	t|	tstd|jt|	jf|jt|	7_xG|	jd|jkrM|	rM|jj}	|jt|	7_qWxt}
d}x*|jj}||7}|jscPqcW|sP|jt|7_|
j|j|j
|j|
j}
d|
kr|
d=||j|
|||||j|j|j
|j	}|j|j7_|jj||jsk|j|jkofdknrQPqQW|j dS)	Nz&Invalid boundary in multipart form: %rr*rz%s should return bytes, got %ss--rIzcontent-lengthr)!rrNr:rxrr>rr
rArBr*rrTr	FieldStorageClass	__class__r?rQr6rWryrtrrbrcrZfeedr<r(rrrr)rqr@rArBZibrr\rpklassZ
first_lineparserZhdr_textrXrYpartr!r!r"rsV					
+zFieldStorage.read_multicCsD|jdkr&|j|jn
|j|jjddS)Nr)rread_binaryr
read_linesrzr)rqr!r!r"rs



zFieldStorage.read_singleicCs|j|_|j}|dkrx|dkr|jjt||j}t|tst	d|jt
|jf|jt
|7_|sd|_P|jj||t
|}q'WdS)Nrz%s should return bytes, got %sr2rL)	make_filerzrr?r;minbufsizer6rWr:ryrtrrbrr%)rqZtodorXr!r!r"rs		zFieldStorage.read_binarycCsV|jrt|_|_nt|_|_|jrH|jn
|jdS)N)rrrz_FieldStorage__filerrread_lines_to_outerboundaryread_lines_to_eof)rqr!r!r"rs		
zFieldStorage.read_linescCs|jdk	re|jjt|dkre|j|_|jj}|jj|d|_|jr|jj|n"|jj|j|j	|j
dS)Ni)rtellrbrrzrr%rr<r*r)rqr[rXr!r!r"Z__writes		zFieldStorage.__writecCsOxH|jjd}|jt|7_|s:d|_P|j|qWdS)Nr2irL)r?rQrrbr_FieldStorage__write)rqr[r!r!r"rs	zFieldStorage.read_lines_to_eofc	Csd|j}|d}d}d}d}xh||jkr<P|jjd}|jt|7_|t|7}|sd
|_P|dkr||}d}|jdr|r|j}||krP||krd|_P|}|j	drd}|dd}d}nh|j	d
rEd
}|dd}d}n:|j	drsd}|dd}d}nd}d}|j
||q,WdS)Ns--rITrr2rs
s
rGs
FirLrMrLrL)rrr?rQrrbrrRrSendswithr)	rq
next_boundary
last_boundarydelimlast_line_lfend_readr[strippedlineZodelimr!r!r"r!sP

	
				z(FieldStorage.read_lines_to_outerboundarycCs|js|jrdSd|j}|d}d}x|jjd}|jt|7_|snd|_P|jdr|r|j}||krP||krd|_P|jd}q7WdS)Ns--Tr2rs
irL)rrr?rQrrbrrc)rqrrrr[rr!r!r"rRs&

		zFieldStorage.skip_linescCs6|jrtjdStjdd|jddSdS)Nzwb+zw+r*newliner$)rtempfile
TemporaryFiler*)rqr!r!r"rhs	
zFieldStorage.make_filei ) rtrurvosr@rrrrrrsrrrrrrrrrrrrrrrrrrrrrrr!r!r!r"r
js:+	
6	
1cCstdttjt_ybt}ttt|t|t	dd}|dd}td|Wnt
YnXtdday/t}ttt|t|Wnt
YnXdS)	NzContent-type: text/htmlcSstddS)Nz,testing print_exception() -- <I>italics?</I>)execr!r!r!r"rfsztest.<locals>.fcSs|dS)Nr!)rfr!r!r"gsztest.<locals>.gz9<H3>What follows is a test, not an actual exception:</H3>z*<H1>Second try with a small maxlen...</H1>2)printr3stdoutstderrr
rrrrrrr9)r@formrfrr!r!r"tests4
	



	
rcCs|dkr!tj\}}}ddl}ttd|j|||j||}tdtjdj|ddtj|df~dS)Nrz+<H3>Traceback (most recent call last):</H3>z<PRE>%s<B>%s</B></PRE>rr2rLrL)	r3exc_info	tracebackr	format_tbformat_exception_onlyhtmlrrU)ryrptbrrrxr!r!r"rs
cCs|t|j}ttdtdx7|D]/}tdtj|dtj||q4WtdtdS)Nz<H3>Shell Environment:</H3>z<DL>z<DT>z<DD>z</DL>)sortedrrrr)r@rr\r!r!r"rs


-
cCst|j}ttd|s3tdtdx}|D]u}tdtj|ddd||}tdtjtt|d	td
tjt|qDWtdtdS)Nz<H3>Form Contents:</H3>z<P>No form fields.z<DL>z<DT>:re z<i>z</i>z<DD>z</DL>)rrrrrreprry)rrr\rpr!r!r"rs



!
'!
cCsttdytj}WnAtk
rd}z!tdtjt|WYdd}~XnXttj|tdS)Nz#<H3>Current Working Directory:</H3>zOSError:)rrgetcwdrrrstr)pwdmsgr!r!r"rs
/cCs0ttdtttjtdS)Nz <H3>Command Line Arguments:</H3>)rr3r=r!r!r!r"rs


cCstddS)Na
<H3>These environment variables could have been set:</H3>
<UL>
<LI>AUTH_TYPE
<LI>CONTENT_LENGTH
<LI>CONTENT_TYPE
<LI>DATE_GMT
<LI>DATE_LOCAL
<LI>DOCUMENT_NAME
<LI>DOCUMENT_ROOT
<LI>DOCUMENT_URI
<LI>GATEWAY_INTERFACE
<LI>LAST_MODIFIED
<LI>PATH
<LI>PATH_INFO
<LI>PATH_TRANSLATED
<LI>QUERY_STRING
<LI>REMOTE_ADDR
<LI>REMOTE_HOST
<LI>REMOTE_IDENT
<LI>REMOTE_USER
<LI>REQUEST_METHOD
<LI>SCRIPT_NAME
<LI>SERVER_NAME
<LI>SERVER_PORT
<LI>SERVER_PROTOCOL
<LI>SERVER_ROOT
<LI>SERVER_SOFTWARE
</UL>
In addition, HTTP headers sent by the server may be passed in the
environment as well.  Here are some common variable names:
<UL>
<LI>HTTP_ACCEPT
<LI>HTTP_CONNECTION
<LI>HTTP_HOST
<LI>HTTP_PRAGMA
<LI>HTTP_REFERER
<LI>HTTP_USER_AGENT
</UL>
)rr!r!r!r"rs'cCsetdtdd|jdd}|jdd}|jdd	}|ra|jd
d}|S)Nz1cgi.escape is deprecated, use html.escape instead
stacklevelrGr1z&amp;<z&lt;>z&gt;r_z&quot;)rrHrl)rdquoter!r!r"rs
cCs:ddl}t|tr$d}nd}|j||S)Nrs^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)rer6rWmatch)rdrZ_vb_patternr!r!r"rN(s
	rN__main__)0__version__iorrrcollectionsrr3rZurllib.parser>Zemail.parserrZ
email.messagerwarningsrrrr__all__rrr#rrr)rr9r@rrr
rrgrr	r
rrrrrrrrrNrtr!r!r!r"<module>sZ		#	Ed"'/
Back to Directory File Manager