Viewing File: /usr/lib64/python3.6/__pycache__/cgi.cpython-36.opt-2.pyc

3

sjŐ@sdZddlmZmZmZddlmZddlZddlZddl	Z
ddlmZddl
mZddlmZddlZddlZddlZdd	d
ddd
dddddddddgZdadaddZddZddZddZeadadejddd fd!d
Zd5d"dZd6d#dZ d$d
Z!d%d&Z"d'dZ#Gd(ddZ$Gd)d	d	Z%ejfd*dZ&d7d+dZ'ejfd,dZ(d-dZ)d.dZ*d/dZ+d0dZ,d8d1dZ-d2d3Z.e/d4kre&dS)9z2.6)StringIOBytesIO
TextIOWrapper)MappingN)
FeedParser)Message)warnMiniFieldStorageFieldStorageparseparse_qs	parse_qslparse_multipartparse_headertestprint_exception
print_environ
print_formprint_directoryprint_argumentsprint_environ_usageescapecGsHtr.tr.yttdaWntk
r,YnXts8tantat|dS)Na)logfilelogfpopenOSErrornologlogdolog)allargsr"/usr/lib64/python3.6/cgi.pyinitlog:s
r$cGstj||ddS)N
)rwrite)Zfmtargsr"r"r#r ]sr cGsdS)Nr")r!r"r"r#rasrcCsdatrtjdatadS)Nr)rrcloser$rr"r"r"r#closeloges
r)&c
CsZ|dkrtj}t|dr |j}nd}t|tr4|j}d|krDd|d<|ddkrt|d\}}|dkrtt||S|dkrt	|d	}t
r|t
krtd
|j|j
|}	nd}	d|kr|	r|	d
}	|	|d}	n*tjddr|	r|	d
}	|	tjd}	|	|d<n<d|kr|d}	n(tjddr8tjd}	nd}	|	|d<tjj|	||||dS)Nencodingzlatin-1REQUEST_METHODGETPOSTCONTENT_TYPEzmultipart/form-dataz!application/x-www-form-urlencodedCONTENT_LENGTHzMaximum content length exceededrQUERY_STRINGr*)r+	separator)sysstdinhasattrr+
isinstancerbufferrrintmaxlen
ValueErrorreaddecodeargvurllibrr)
fpenvironkeep_blank_valuesstrict_parsingr3r+ctypepdictclengthqsr"r"r#rxsH





cCstdtdtjj|||S)Nz=cgi.parse_qs is deprecated, use urllib.parse.parse_qs instead)rDeprecationWarningr?rr)rGrBrCr"r"r#rscCstdtdtjj|||S)Nz?cgi.parse_qsl is deprecated, use urllib.parse.parse_qsl insteadrH)rrIr?rr
)rGrBrCr"r"r#r
scCsddl}d}d|kr|d}t|s2td|fd|}d|d}i}d}x||krd}d}	|r|jj|}
|
jd}|ryt|}Wntk
rYnX|dkrtr|tkrtd|j|}	nd}	g}xD|j	}
|
s|}P|
j
dr|
j}|||fkrP|j|
qW|	dkr&qR|dkr|r|d}
|
ddd
kr^|
dd}
n|
dddkr||
dd}
|
|d<dj
|}	|
d}
|
sqRt|
\}}|d
krqRd|krR|d}nqR||kr||j|	qR|	g||<qRW|S)Nrboundaryz&Invalid boundary in multipart form: %rs--r2zcontent-lengthzMaximum content length exceededrHs

zcontent-dispositionz	form-datanamerNrOrNrNrN)Zhttp.clientvalid_boundaryr;ZclientZ
parse_headersgetr9r:r<readline
startswithrstripappendjoinr)r@rEZhttprKZnextpartZlastpartZpartdict
terminatorbytesdataheadersrFlineslinekeyZparamsrMr"r"r#rs|







ccsx|dddkr|dd}|jd}x<|dkrd|jdd||jdd|drd|jd|d}q*W|dkrvt|}|d|}|jV||d}qWdS)Nr2;r"z\"rH)findcountlenstrip)sendfr"r"r#_parseparam1s
*
rgcCstd|}|j}i}x|D]}|jd}|dkr|d|jj}||ddj}t|dkr|d|d
kodknr|dd}|jddjd	d}|||<qW||fS)Nr^=rr2rHr_z\\\z\"rNrN)rg__next__r`rclowerrbreplace)r\partsr]rEpirMvaluer"r"r#r=s

,c@s<eZdZdZdZdZdZiZdZiZ	iZ
ddZddZdS)r	NcCs||_||_dS)N)rMrp)selfrMrpr"r"r#__init__cszMiniFieldStorage.__init__cCsd|j|jfS)NzMiniFieldStorage(%r, %r))rMrp)rqr"r"r#__repr__iszMiniFieldStorage.__repr__)
__name__
__module____qualname__filenamelisttypefiletype_optionsdispositiondisposition_optionsrZrrrsr"r"r"r#r	Usc@seZdZdddejdddddddfddZd	d
ZddZd
dZddZ	ddZ
ddZddZd;ddZ
d<ddZddZddZdd Zd!d"Zd#d$Zd%d&ZdZd'd(Zd)d*Zd=Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:ZdS)>r
NrJrzutf-8rlr*cCsRd}||_||_|
|_||_d|kr0|dj}d|_|dksF|dkrd|krX|d}
ntjddrrtjd}
nd}
|
jt	j
d}
t|
}|dkrdd	i}|dkri}|d
krd	|d<d|kr|d|d<d|kr|d|_d|kr|d|d
<nt|t
tfstd||_|dkr*tjj|_n<t|tr@|j|_n&t|doTt|ds`td||_||_|	|_t|tstdt|j||_d|_||_di}}d|jkrt|jd\}}||_||_ d|_!d|kr|d|_!d|_"d|kr
|d|_"|j"dk	|_#d|jkr6t|jd\}}n(|jsH|d
krTdi}}n
d	i}}||_||_$d|kr|dj|j|_%nd|_%d}d
|jkryt&|jd
}Wnt'k
rYnXt(r|t(krt'd||_)|jdkr|r||_d|_*|_+d|_,|d	kr$|j-n*|dddkrF|j.|||n|j/dS)Nr-r,ZHEADr1r2rsurrogateescapezcontent-typez!application/x-www-form-urlencodedr.r/r0zcontent-lengthz?headers must be mapping or an instance of email.message.Messager<rRzfp must be file pointerz#outerboundary must be bytes, not %srzcontent-dispositionrMrwz
text/plainrKrJzMaximum content length exceeded
z
multipart/rN)0rBrCmax_num_fieldsr3upper
qs_on_postr4r>encodelocalegetpreferredencodingrr7rr	TypeErrorrZr5r8r@rr6r+errorsrXryrt
outerboundary
bytes_readlimitrr|r}rMrw_binary_filer{
innerboundaryr9r;r:lengthrxrzdoneread_urlencoded
read_multiread_single)rqr@rZrrArBrCrr+rrr3methodrGZcdisprErDZclenr"r"r#rrs/












zFieldStorage.__init__cCs(y|jjWntk
r"YnXdS)N)rzr(AttributeError)rqr"r"r#__del__=szFieldStorage.__del__cCs|S)Nr")rqr"r"r#	__enter__CszFieldStorage.__enter__cGs|jjdS)N)rzr()rqr'r"r"r#__exit__FszFieldStorage.__exit__cCsd|j|j|jfS)NzFieldStorage(%r, %r, %r))rMrwrp)rqr"r"r#rsIszFieldStorage.__repr__cCst|jS)N)iterkeys)rqr"r"r#__iter__NszFieldStorage.__iter__cCsT|dkrt||jr:|jjd|jj}|jjdn|jdk	rL|j}nd}|S)Nrpr)rrzseekr<rx)rqrMrpr"r"r#__getattr__Qs

zFieldStorage.__getattr__cCsb|jdkrtdg}x"|jD]}|j|kr|j|qW|sFt|t|dkrZ|dS|SdS)Nz
not indexabler2r)rxrrMrUKeyErrorrb)rqr]founditemr"r"r#__getitem__^s

zFieldStorage.__getitem__cCs8||kr0||}t|tr(dd|DS|jSn|SdS)NcSsg|]
}|jqSr")rp).0xr"r"r#
<listcomp>qsz)FieldStorage.getvalue.<locals>.<listcomp>)r7rxrp)rqr]defaultrpr"r"r#getvaluels
zFieldStorage.getvaluecCs4||kr,||}t|tr$|djS|jSn|SdS)Nr)r7rxrp)rqr]rrpr"r"r#getfirstws

zFieldStorage.getfirstcCs:||kr2||}t|tr(dd|DS|jgSngSdS)NcSsg|]
}|jqSr")rp)rrr"r"r#rsz(FieldStorage.getlist.<locals>.<listcomp>)r7rxrp)rqr]rpr"r"r#getlists

zFieldStorage.getlistcCs*|jdkrtdttdd|jDS)Nz
not indexablecss|]}|jVqdS)N)rM)rrr"r"r#	<genexpr>sz$FieldStorage.keys.<locals>.<genexpr>)rxrset)rqr"r"r#rs
zFieldStorage.keyscs*|jdkrtdtfdd|jDS)Nz
not indexablec3s|]}|jkVqdS)N)rM)rr)r]r"r#rsz,FieldStorage.__contains__.<locals>.<genexpr>)rxrany)rqr]r")r]r#__contains__s
zFieldStorage.__contains__cCst|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__c	Cs|jj|j}t|ts0td|jt|jf|j|j	|j
}|jrT|d|j7}tj
j||j|j|j	|j
|j|jd}dd|D|_|jdS)Nz%s should return bytes, got %sr*)r+rrr3cSsg|]\}}t||qSr")r	)rr]rpr"r"r#rsz0FieldStorage.read_urlencoded.<locals>.<listcomp>)r@r<rr7rXr;ryrtr=r+rrr?rr
rBrCrr3rx
skip_lines)rqrGqueryr"r"r#rs

zFieldStorage.read_urlencodedcCs@|j}t|std|fg|_|jrftjj|j|j|j	|j
|j|j|j
d}|jjdd|D|jpp|j}|jj}t|tstd|jt|jf|jt|7_x6|jd|jkr|r|jj}|jt|7_qW|j}|dk	r|t|j8}x*t}	d}
x$|jj}|
|7}
|jsPqW|
sBP|jt|
7_|	j|
j|j
|j|	j}d|kr|d=||j||||||j|j|j
|j||j
}
|dk	r|d	8}|
jr|t|
j8}|d
krtd|j|
j7_|jj|
|
j s,|j|j!ko$d
knr
Pq
W|j"dS)Nz&Invalid boundary in multipart form: %r)r+rrr3css|]\}}t||VqdS)N)r	)rr]rpr"r"r#rsz*FieldStorage.read_multi.<locals>.<genexpr>z%s should return bytes, got %ss--rJzcontent-lengthr2rzMax number of fields exceeded)#rrPr;rxrr?rr
rBrCr+rrr3extendFieldStorageClass	__class__r@rRr7rXryrtrrbrcrZfeedr=r(rrUrrr)rqrArBrCZibrklassZ
first_linerparserZhdr_textrYrZpartr"r"r#rsh








(zFieldStorage.read_multicCs4|jdkr|j|jn|j|jjddS)Nr)rread_binaryr
read_linesrzr)rqr"r"r#rs


zFieldStorage.read_singleicCs|j|_|j}|dkrxx|dkr|jjt||j}t|tsXt	d|jt
|jf|jt
|7_|svd|_P|jj||t
|}qWdS)Nrz%s should return bytes, got %sr2rN)	make_filerzrr@r<minbufsizer7rXr;ryrtrrbrr&)rqZtodorYr"r"r#rs


zFieldStorage.read_binarycCs@|jrt|_|_nt|_|_|jr4|jn|jdS)N)rrrz_FieldStorage__filerrread_lines_to_outerboundaryread_lines_to_eof)rqr"r"r#rs
zFieldStorage.read_linescCsv|jdk	rF|jjt|dkrF|j|_|jj}|jj|d|_|jrZ|jj|n|jj|j|j	|j
dS)Ni)rtellrbrrzrr&rr=r+r)rqr\rYr"r"r#Z__writes


zFieldStorage.__writecCs>x8|jjd}|jt|7_|s,d|_P|j|qWdS)Nr2irN)r@rRrrbr_FieldStorage__write)rqr\r"r"r#r-szFieldStorage.read_lines_to_eofc	Cs,d|j}|d}d}d}d}x||jkr.P|jjd}|jt|7_|t|7}|sdd
|_P|dkrx||}d}|jdr|r|j}||krP||krd|_P|}|j	drd}|dd}d}nJ|j	d
rd
}|dd}d}n*|j	drd}|dd}d}nd}d}|j
||q"WdS)Ns--rJTrr2r
s
rHrLFirNrOrNrN)rrr@rRrrbrrSrTendswithr)	rq
next_boundary
last_boundaryZdelimlast_line_lfendZ_readr\strippedlineZodelimr"r"r#r7sP



z(FieldStorage.read_lines_to_outerboundarycCs|js|jrdSd|j}|d}d}xh|jjd}|jt|7_|sTd|_P|jdr|r|j}||krtP||krd|_P|jd}q*WdS)Ns--Tr2rrLirN)rrr@rRrrbrrc)rqrrrr\rr"r"r#rhs&
zFieldStorage.skip_linescCs&|jrtjdStjd|jddSdS)Nzwb+zw+r%)r+newline)rtempfileZ
TemporaryFiler+)rqr"r"r#r~s
zFieldStorage.make_file)N)Ni ) rtrurvosrArrrrrrsrrrrrrrrrrrrrrrrrrrrrrr"r"r"r#r
ns>+"


C	
1cCstdttjt_yNt}ttt|t|t	dd}|fdd}td|Wnt
YnXtdday&t}ttt|t|Wnt
YnXdS)	NzContent-type: text/htmlcSstddS)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)printr4stdoutstderrr
rrrrrrr:)rAformrfrr"r"r#rs4
cCsx|dkrtj\}}}ddl}ttd|j|||j||}tdtjdj|ddtj|df~dS)Nrz+<H3>Traceback (most recent call last):</H3>z<PRE>%s<B>%s</B></PRE>rr2rNrN)	r4exc_info	tracebackr	format_tbformat_exception_onlyhtmlrrV)ryrptbrrrxr"r"r#rs
cCs`t|j}ttdtdx*|D]"}tdtj|dtj||q(WtdtdS)Nz<H3>Shell Environment:</H3>z<DL>z<DT>z<DD>z</DL>)sortedrrrr)rArr]r"r"r#rs
"cCst|j}ttd|s&tdtdxb|D]Z}tdtj|ddd||}tdtjtt|d	td
tjt|q4WtdtdS)Nz<H3>Form Contents:</H3>z<P>No form fields.z<DL>z<DT>: )rez<i>z</i>z<DD>z</DL>)rrrrrreprry)rrr]rpr"r"r#rs
cCsjttdytj}Wn6tk
rP}ztdtjt|WYdd}~XnXttj|tdS)Nz#<H3>Current Working Directory:</H3>zOSError:)rrgetcwdrrrstr)pwdmsgr"r"r#rs&cCs(ttdtttjtdS)Nz <H3>Command Line Arguments:</H3>)rr4r>r"r"r"r#rs

cCstddS)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'cCsFtdtdd|jdd}|jdd}|jdd	}|rB|jd
d}|S)Nz1cgi.escape is deprecated, use html.escape insteadrH)
stacklevelr*z&amp;<z&lt;>z&gt;r_z&quot;)rrIrl)rdZquoter"r"r#r2s
cCs(ddl}t|trd}nd}|j||S)Nrs^[ -~]{0,200}[!-~]$z^[ -~]{0,200}[!-~]$)rer7rXmatch)rdrZ_vb_patternr"r"r#rP>s

rP__main__)rr)rr)NNNN)N)0__version__iorrrcollectionsrr4rZurllib.parser?Zemail.parserrZ
email.messagerwarningsrrrr__all__rrr$r rr)rr:rArrr
rrgrr	r
rrrrrrrrrPrtr"r"r"r#<module>s`#	H

d6'
/


Back to Directory File Manager