????

Your IP : 216.73.216.174


Current Path : /home2/morganrand/www/test/fcgi/
Upload File :
Current File : /home2/morganrand/www/test/fcgi/fcgi.pyc

��
{��Sc
@s�ddkZddkZddkZddkZddkZddklZddkZdZdZ	dZ
dZdZdZ
dZdZdZd	Zd
ZdZdZd
ZdZeZegZdZdZdZdZdZdZdZdZ dZ!dZ"d�Z"ddd��YZ#d�Z$d�Z%d�Z&da'd�Z(da*da+ddd��YZ,e,Z-d�Z.d�Z/e0djoe/�ndS(i����N(tStringIOiiiiiiiiii	i
is
fcgi.errorcCs.tdd�}|i|d�|i�dS(sAppend a string to /tmp/errs/tmp/errsa+s
N(topentwritetclose(tmsgterrf((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyterrorUstrecordcBs)eZdZd�Zd�Zd�ZRS(s"Class representing FastCGI recordscCs(t|_t|_t|_d|_dS(Nt(tFCGI_VERSION_1tversiontFCGI_UNKNOWN_TYPEtrecTypetFCGI_NULL_REQUEST_IDtreqIdtcontent(tself((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyt__init___s			cCsBtt|id��}|d|d|d|_|_}|dd>|d|dd>|d|_}d	|_xGt|i�|jo0|i|t|i��}|i||_qzW|djo|i|�}n|i}|itjo<t|d�d>t|d�|_	t|d�|_
n	|itjot|d�|_n�|it
jp|itjoSh|_d}x�|t|�jo)t||�\}	}
}|
|i|	<q�Wno|itjo^tt|dd!�}|dd
>|dd>|dd>|d|_t|d�|_ndS(NiiiiiiiiRii(tmaptordtrecvR
RRRtlentFCGI_BEGIN_REQUESTtroletflagsRtunknownTypetFCGI_GET_VALUEStFCGI_PARAMStvaluestreadPairtFCGI_END_REQUESTt	appStatustprotocolStatus(Rtsocktst
paddingLengtht
contentLengthtdatatpaddingtctpostnametvaluetb((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyt
readRecordfs6&0	
	% 	1c	
Cs�|i}|itjo9t|id?�t|id@�t|i�d}n|itjot|i�d
}n�|itjp|it	jo>d}x�|i
i�D] }|t||i
|�}q�Wn{|it
joj|i}t|d?d@�t|d?d@�t|d?d@�t|d@�}|t|i�d}nt|�}|dd@}||}|i|i|id?|id@|d?|d@|dg}titt|�d�}|i|||d�dS(Nii�itiRiiii��ittti��(RRRtchrRRRRRRRtkeyst	writePairRRR RR
Rtstringt
joinfieldsRtsend(	RR!RtitvtcLenteLentpadLenthdr((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pytwriteRecord�s6	9 "	F


	(t__name__t
__module__t__doc__RR,R=(((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyR]s		 cCs)t||�}|d}|d@oVtt|||d!�}|d}|d@d>|dd>|dd>|d	}nt||�}|d}|d@oVtt|||d!�}|d}|d@d>|dd>|dd>|d	}n||||!||||||!|||fS(
Nii�iiiiiii(RR(R"R(tnameLenR+tvalueLen((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyR�s

2

2$cCs�t|�}|djot|�}nKtd|d?d@B�t|d?d@�t|d?d@�t|d@�}t|�}|djo|t|�}nO|td|d?d@B�t|d?d@�t|d?d@�t|d@�}|||S(Ni�ii�ii(RR1(R)R*tlR"((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyR3�s
J
NcCs�|itjo�t|_h}htd6td6td6}x9|ii�D](}|i|�o||||<qJqJW||_|i	|�ndS(NtFCGI_MAX_CONNSt
FCGI_MAX_REQStFCGI_MPXS_CONNS(
RRtFCGI_GET_VALUES_RESULTRDRERFRR2thas_keyR=(trtconnR8tvarsR7((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pytHandleManTypes�s	

	cCstS(N(t_isFCGI(((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pytisFCGI�stFCGIcBs8eZd�Zd�Zdd�Zd�Zd�ZRS(c	Cs�d|_tdjot�nt�pDd|_tititit	i
f\|_|_|_
|_dSt	i
id�o2tit	i
dd�}tti|��}nd}ti�\|_}d	\}}h|_d|_d}|djo||jo
td�nx+|o#t�}|i|i�|itjot||i�n�|idjo5t�}t|_|i|_ |i!|i�qnR|i|ijo|it"joqn(|it"jo|idjoqn|it"jo^|i|_|i#t$jo
d}qC|i#t%jo
d}qC|i#t&jo
d}qCq|it'joP|i(djo|d}qCx�|i)i*�D]}|i)||i|<q�Wq|it+jo/|i(djo|d}qC||i(}q|it,jo/|i(djo|d}qC||i(}qqWt-|�|_t_t-�|_
t_t-�|_t_t-|�|_.dS(
NiitFCGI_WEB_SERVER_ADDRSt,RsConnection from invalid server!ii(RR(/thaveFinishedt_inittNonet_startupRNtsyststdintstdouttstderrtostenvirontinptoutterrtenvRHR4tsplitRtstript_socktacceptRJt	requestIdRRR,RtManagementTypesRLRRRR=RRtFCGI_AUTHORIZERtFCGI_RESPONDERtFCGI_FILTERRRRR2t
FCGI_STDINt	FCGI_DATARR%(	Rt
good_addrstaddrRWR%t	remainingRItr2R7((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyR�sx	

	6		
			# 

cCs|i�dS(N(tFinish(R((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyt__del__4sicCs�|ip|d|_|iidd�|iidd�t�}t|_|i|_|ii	�}|oZx:|o2|i
|�\}}||_|i|i
�qpWd|_|i|i
�nt|_|ii	�}x:|o2|i
|�\}}||_|i|i
�q�Wd|_|i|i
�t�}t|_|i|_||_t|_|i|i
�|i
i�ndS(NiiR(RRR^tseekR]RtFCGI_STDERRRRdRtreadtgetNextChunkRR=RJtFCGI_STDOUTRRtFCGI_REQUEST_COMPLETER R(RtstatusRIR%tchunk((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyRo7s@
												cCs�d}|iid�oti|id�}n|djotid|idd�Stid|id|idd�SdS(NtGETtREQUEST_METHODR[tkeep_blank_valuesitfp(R_RHR4tuppertcgitFieldStorageR\(Rtmethod((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pytgetFieldStorageZs
cCs|d }|d}||fS(Ni ((RR%Rx((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyRtcs

(R>R?RRpRoR�Rt(((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyRO�s
	P	#		cCs~day2titii�titi�}|i�Wn9ti	j
o*\}}|t
ijodadSnX|a
dS(Nii(RStsockettfromfdRVRWtfilenotAF_INETtSOCK_STREAMtgetpeernameRterrnotENOTCONNRMRb(R"R^terrmsg((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyRUls
c
Csd}y�x�t�o�t�}|d}y3|i�}ti|di�}d|g}Wn;dg}|id�|id|�|id�nXti|d	�}|ii	d
t
|��|ii	|�|i�qWWn2ddk}t
dd
�}|id|�nXdS(Niitsizet*s6<HTML><HEAD><TITLE>FCGI TestApp</TITLE></HEAD>
<BODY>
s<H2>FCGI TestApp</H2><P>s<b>request count</b> = %d<br>s</BODY></HTML>
RsHContent-length: %s
Content-type: text/html
Cache-Control: no-cache

i����t	tracebacktwtfile(RNtAcceptR�R4tatoiR*tappendtjoinR]RRRoR�Rt	print_exc(tcountertreqtfsR�tdocR�tf((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyt_tests0
	
	
t__main__(((1RZRVR4R�R�t	cStringIORR~RERDR	RFRtFCGI_ABORT_REQUESTRRRiRuRrRjRRGRtFCGI_MAXTYPEReR
tFCGI_KEEP_CONNRgRfRhRvtFCGI_CANT_MPX_CONNtFCGI_OVERLOADEDtFCGI_UNKNOWN_ROLERRRR3RLRMRNRTRSRbROR�RUR�R>(((sO/var/www/vhosts/ip-50-63-190-6.ip.secureserver.net/wanderfuls/test/fcgi/fcgi.pyt<module>"sX<		M		
			�		6