%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib64/python2.7/site-packages/tornado/
Upload File :
Create Path :
Current File : //usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyc

�
��L]c@�sJdZddlmZmZmZmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZmZdd	lmZmZmZmZejd
�Zdefd��YZd
efd��YZedkrFeje�e�ndS(s5Non-blocking HTTP client implementation using pycurl.i(tabsolute_importtdivisiontprint_functiontwith_statementN(tBytesIO(thttputil(tioloop(t
stack_context(tutf8t
native_str(tHTTPResponset	HTTPErrortAsyncHTTPClienttmainstornado.curl_httpclienttCurlAsyncHTTPClientcB�s�eZddd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zddd�Z
d�Zd
�Zd�Zd�Zd�ZRS(i
cC�stt|�j|d|�tj�|_|jjtj|j�|jjtj	|j
�gt|�D]}|j�^qj|_
|j
|_tj�|_i|_d|_tj|jdd|�|_|jj�tj�}|jj|�|jj|�dS(Ntdefaultsi�tio_loop(tsuperRt
initializetpycurlt	CurlMultit_multitsetopttM_TIMERFUNCTIONt_set_timeouttM_SOCKETFUNCTIONt_handle_sockettranget_curl_createt_curlst
_free_listtcollectionstdequet	_requestst_fdstNonet_timeoutRtPeriodicCallbackt_handle_force_timeoutt_force_timeout_callbacktstarttCurlt
add_handlet
remove_handle(tselfRtmax_clientsRtitdummy_curl_handle((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR's(
		
cC�st|jj�|jdk	r2|jj|j�nx|jD]}|j�q<W|jj�t	t
|�j�dS(N(R'tstopR$R#Rtremove_timeoutRtcloseRRR(R,tcurl((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR2Cs

cC�s1|jj||f�|j�|jd�dS(Ni(R!tappendt_process_queueR(R,trequesttcallback((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyt
fetch_implLs
cC�s�itjjtj6tjjtj6tjjtj6tjjtjjBtj	6}|tj
kr�||jkr�|jj
|�|j|=q�nR||}||jkr�|jj
|�n|jj||j|�||j|<dS(s_Called by libcurl when it wants to change the file descriptors
        it cares about.
        N(RtIOLooptNONERt	POLL_NONEtREADtPOLL_INtWRITEtPOLL_OUTt
POLL_INOUTtPOLL_REMOVER"Rtremove_handlertadd_handlert_handle_events(R,teventtfdtmultitdatat	event_maptioloop_event((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRQs
	cC�sU|jdk	r%|jj|j�n|jj|jj�|d|j�|_dS(s(Called by libcurl to schedule a timeout.g@�@N(R$R#RR1tadd_timeoutttimet_handle_timeout(R,tmsecs((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRos	cC�s�d}|tjj@r&|tjO}n|tjj@rF|tjO}nxbtr�y|jj	||�\}}Wn#tj
k
r�}|jd}nX|tjkrIPqIqIW|j
�dS(sXCalled by IOLoop when there is activity on one of our
        file descriptors.
        iN(RR9R<Rt
CSELECT_INR>tCSELECT_OUTtTrueRt
socket_actionterrortargstE_CALL_MULTI_PERFORMt_finish_pending_requests(R,RFteventstactiontrettnum_handleste((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRDvs	c	C�s�tj���d|_xetr}y"|jjtjd�\}}Wn#tj	k
rf}|j
d}nX|tjkrPqqW|j�WdQX|jj
�}|dkr�|j|�ndS(s7Called by IOLoop when the requested timeout has passed.iN(RtNullContextR#R$RQRRRRtSOCKET_TIMEOUTRSRTRURVttimeoutR(R,RYRZR[tnew_timeout((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRM�s
			c	C�s�tj��nx\trky|jj�\}}Wn#tjk
rT}|jd}nX|tjkrPqqW|j	�WdQXdS(spCalled by IOLoop periodically to ask libcurl to process any
        events it may have forgotten about.
        iN(
RR\RQRt
socket_allRRSRTRURV(R,RYRZR[((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR&�s
	cC�s�x}tr|jj�\}}}x|D]}|j|�q(Wx*|D]"\}}}|j|||�qFW|dkrPqqW|j�dS(sbProcess any requests that were completed by the last
        call to multi.socket_action.
        iN(RQRt	info_readt_finishR5(R,tnum_qtok_listterr_listR3terrnumterrmsg((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRV�s	
c
C�s#tj��x	trd}x�|jr
|jr
|d7}|jj�}|jj�\}}itj�d6t	�d6|d6|d6t
j
�d6|_y(|j|||jd|jd�Wn2t
k
r�}|td|dd	d
|��qX|jj|�qW|sPqqWWdQXdS(NiitheaderstbufferR6R7tcurl_start_timetcodeiWRS(RR\RQRR!tpoptpopleftRtHTTPHeadersRRLtinfot_curl_setup_requestt	ExceptionR
RR*(R,tstartedR3R6R7R[((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR5�s2
	


		c
C�s�|j}d|_|jj|�|jj|�|d}|rst||�}|j}d}|j�d}n7d}|j	t
j�}|j	t
j�}|j
d�td|d|djd|j	t
j�d|j	t
j�d|j	t
j�d	|j	t
j�d
|j	t
j�d|j	t
j��}	yq|dtd|dd
|d|dd|d|d|d|djdd�dtj�|dd|	�	�Wn"tk
r�|j|d�nXdS(NRiitqueueRjR6t
namelookuptconnecttpretransfert
starttransferttotaltredirectR7RkRht
effective_urlRStreasons
X-Http-Reasontrequest_timet	time_info(RoR#RR+RR4t	CurlErrorRkR2tgetinfoRt	HTTP_CODEt
EFFECTIVE_URLtseektdictt
start_timetNAMELOOKUP_TIMEtCONNECT_TIMEtPRETRANSFER_TIMEtSTARTTRANSFER_TIMEt
TOTAL_TIMEt
REDIRECT_TIMER
tgetRLRqthandle_callback_exception(
R,R3t
curl_errortcurl_messageRoRiRSRkRzR}((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRb�s@		
	
	


cC�s|jj|�dS(N(RR�(R,R7((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR�scC�sNtj�}tjtj�rJ|jtjd�|jtj|j	�n|S(Ni(
RR)tcurl_logtisEnabledFortloggingtDEBUGRtVERBOSEt
DEBUGFUNCTIONt_curl_debug(R,R3((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRs
c

�sB�jtjt�j��d�jkr;d�jd<nd�jkrZd�jd<n�jtjg�jj�D](\}}dt|�t|�f^qv��jtjt	j
�j|�j���j
r���fd��n	|j�ttkr�jtj��n�jtj�fd���jtj�j��jtj�j��jtjtd�j���jtjtd�j���jr��jtjt�j��n�jtjd��jr��jtj�j�n�jr�jtj d	�n�jtj d
��j!r��j"r��jtj#�j!��jtj$�j"��j%r�d�j%�j&f}�jtj'|�q�n#�jtj#d��j(tj'��j)r��jtj*d��jtj+d
�n&�jtj*d��jtj+d��j,dk	rF�jtj.�j,�n�j/t0krn�jtj1tj2�n�jtj1tj3�itj4d6tj5d6tj6d6tj7d6}t8dddg�}	x$|j9�D]}
�j|
t0�q�W�j:|kr'�j(tj;��j|�j:t<�nD�j=s?�j:|	krX�jtj;�j:�nt>d�j:���j:dkr��j?dk	r�t@d��q�n��j:d ks��j?r��j?dkr�t@d�j:��ntAtB�j?�����fd�}�jtjC�jD��jtjE|��j:dkrV�jtjFtG�j?��q��jtj6t<��jtjHtG�j?��n�jIdk	r`d�jI�jJp�df}�jKdks��jKdkr��jtjLtjM�n;�jKdkr�jtjLtjN�nt@d�jK���jtjOt|��tPjQd�j:�j�jI�n)�j(tjO�tPjQd�j:�j��jRdk	r��jtjS�jR�n�jTdk	r��jtjU�jT�n�jVdk	r�t@d��ntWjX�dkr�jtjYd�n�jZdk	r>�jZ��ndS(!NtExpectttPragmas%s: %sc�s�jj�j|�dS(N(Rtadd_callbacktstreaming_callback(tchunk(R6R,(s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pytwrite_function3sc�s�t|��S(N(R(ts(R�(s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyt<lambda>Asi�s Mozilla/5.0 (compatible; pycurl)sgzip,deflatetnones%s:%siiitGETtPOSTtPUTtHEADtDELETEtOPTIONStPATCHsunknown method s!Body must be None for GET requests&Body must not be None for "%s" requestc�s#|�jkr�jd�ndS(Ni(tIOCMD_RESTARTREADR�(tcmd(R3trequest_buffer(s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pytioctl�stbasictdigestsUnsupported auth_mode %ss%s %s (username: %r)s%s %ss,ssl_options not supported in curl_httpclient(sPOSTR�([RRtURLR	turlRht
HTTPHEADERtget_alltHEADERFUNCTIONt	functoolstpartialt_curl_header_callbacktheader_callbackR�twritetbyteststrt
WRITEFUNCTIONtFOLLOWLOCATIONtfollow_redirectst	MAXREDIRSt
max_redirectstCONNECTTIMEOUT_MStinttconnect_timeoutt
TIMEOUT_MStrequest_timeoutt
user_agentt	USERAGENTtnetwork_interfacet	INTERFACEtdecompress_responsetENCODINGt
proxy_hostt
proxy_porttPROXYt	PROXYPORTtproxy_usernametproxy_passwordtPROXYUSERPWDtunsetoptt
validate_certtSSL_VERIFYPEERtSSL_VERIFYHOSTtca_certsR#tCAINFOt
allow_ipv6tFalset	IPRESOLVEtIPRESOLVE_V4tIPRESOLVE_WHATEVERtHTTPGETR�tUPLOADtNOBODYtsettvaluestmethodt
CUSTOMREQUESTRQtallow_nonstandard_methodstKeyErrortbodyt
ValueErrorRRtREADFUNCTIONtreadt
IOCTLFUNCTIONt
POSTFIELDSIZEtlent
INFILESIZEt
auth_usernamet
auth_passwordt	auth_modetHTTPAUTHtHTTPAUTH_BASICtHTTPAUTH_DIGESTtUSERPWDR�tdebugtclient_certtSSLCERTt
client_keytSSLKEYtssl_optionst	threadingtactiveCounttNOSIGNALtprepare_curl_callback(
R,R3R6RiRhtktvtcredentialstcurl_optionstcustom_methodstoR�tuserpwd((R3R6R�R,R�s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyRps�
<			  					
	





	cC�s�t|�}|dk	r.|jj||�n|j�}|jd�r�|j�y&tj|�\}}}d|}Wq�tj	k
r�dSXn|s�dS|j
|�dS(NsHTTP/sX-Http-Reason: %s(R	R#RR�tstript
startswithtclearRtparse_response_start_linetHTTPInputErrort
parse_line(R,RhR�theader_linet__R{((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR��s
cC�s�d}|dkr+tjd|j��nc|dkrhxT|j�D]}tjd|||�qDWn&|d	kr�tjd
|||�ndS(
NtIt<t>is%siis%s %sis%s %r(RR
RR
R(ii(R�R�Rt
splitlines(R,t
debug_typet	debug_msgtdebug_typestline((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR��sN(t__name__t
__module__R#RR2R8RRRDRMR&RVR5RbR�RRpR�R�(((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR&s 										&&			�	R~cB�seZd�ZRS(cC�s tj|d|�||_dS(NiW(Rt__init__terrno(R,Rtmessage((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR�s(RRR(((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyR~�st__main__( t__doc__t
__future__RRRRRR�R�RR�RLtioRttornadoRRRttornado.escapeRR	ttornado.httpclientR
RRR
t	getLoggerR�RR~Rt	configure(((s=/usr/lib64/python2.7/site-packages/tornado/curl_httpclient.pyt<module>s(""��


Zerion Mini Shell 1.0