Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
ó
 ‹EYc@sæedƒZddlmZeeeƒdeeƒƒddlZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZmZddlmZmZddlmZmZmZed	ƒZejZejd
dfkreZeZneZej Zdd
ddddgZ!ej"Z#de#fd„ƒYZ$e$Z"d„Z%e&edƒr{e'e'd„Z(ne&ed
ƒrâej)Z*de*fd„ƒYZ+e+Z)e&edƒrßej,Z-d„Z.e.Z,e.Z/nndS(tssliÿÿÿÿ(tslurp_propertiestsrckeysN(tgreenio(tset_nonblockingtGreenSockettCONNECT_ERRtCONNECT_SUCCESS(t
trampolinetIOClosed(t	get_errnotPY33tsixtsocketiit	SSLSockett
SSLContexttwrap_sockettsslwrap_simpletcreate_default_contextt_create_default_https_contexttGreenSSLSocketcBseZdZddeeeded„Zd„Z	d„Z
d„Zd„Zd„Z
d„Zdd	„Zdd
„Zdd„Zddd
„Zddd„Zdd„Zddd„Zddd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(sÒ This is a green version of the SSLSocket class from the ssl module added
    in 2.6.  For documentation on it, please see the Python standard
    documentation.

    Python nonblocking ssl objects don't give errors when the other end
    of the socket is closed (they do notice when the other end is shutdown,
    though).  Any write/read operations will simply hang if the socket is
    closed from the other end.  There is no obvious fix for this problem;
    it appears to be a limitation of Python's ssl object implementation.
    A workaround is to set a reasonable timeout on the socket using
    settimeout(), and to close/reopen the connection when a timeout
    occurs at an unexpected juncture in the code.
    c	Os*t|tƒst|ƒ}n|j|_tjrE|jƒ|_ntt|ƒj	|j
|||||||oxtj|	|
Žy%xtjD]}t
||ƒqWWntk
rºnXtjr&|jƒ|_tj|dƒtj|ƒdksþt‚||_|r&|jr&|jƒq&ndS(Ng(t
isinstanceRtact_non_blockingRtPY2t
gettimeoutt_timeouttsuperRt__init__tfdtorig_sockett_delegate_methodstdelattrtAttributeErrortPY3t_original_sslsockett
settimeouttAssertionErrortdo_handshake_on_connectt
_connectedtdo_handshake(tselftsocktkeyfiletcertfiletserver_sidet	cert_reqstssl_versiontca_certsR%targstkwtfn((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR2s(	
		cCs
||_dS(N(R(R(ttimeout((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR#]scCs|jS(N(R(R(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR`scCs1|rt|_d|_nt|_d|_dS(Ng(tFalseRtNoneRtTrue(R(tflag((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pytsetblockingcs
		c	OsË|jr|||ŽSx®trÆy|||ŽSWqtk
rÂ}t|ƒtkrt|dtd|jƒdtdƒƒqÃt|ƒtkr¼t|dtd|jƒdtdƒƒqÂqXqWdS(NtreadR3ttimeout_excs	timed outtwrite(	RR6tSSLErrorR
tSSL_ERROR_WANT_READRRR:tSSL_ERROR_WANT_WRITE(R(tfunctaR1texc((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyt_call_trampoliningks"	
			cCs|jtt|ƒj|ƒS(shWrite DATA to the underlying SSL channel.  Returns
        number of bytes of DATA actually transmitted.(RBRRR;(R(tdata((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR;€scOs<y#|jtt|ƒj||ŽSWntk
r7dSXdS(sORead up to LEN bytes and return them.
        Return zero-length string on EOF.tN(RBRRR9R	(R(R0tkwargs((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR9†s

icCs[|jr(|jtt|ƒj||ƒSt|dtdtdƒƒtj|||ƒSdS(NR;R:s	timed out(	t_sslobjRBRRtsendRR6R:R
(R(RCtflags((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRGs
	cCsU|jrtd|jƒ‚n2t|dtdtdƒƒtj||||ƒSdS(Ns%sendto not allowed on instances of %sR;R:s	timed out(RFt
ValueErrort	__class__RR6R:R
tsendto(R(RCtaddrRH((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRK—s
	c		CsT|jr¨|dkr+td|jƒ‚nt|ƒ}d}|}x^||kr£|j|ƒ}||7}|dkr–t|dtdtdƒƒqF||}qFW|Sx¥trOytj	|||ƒSWq«t
jk
rK}|jrì‚nt
|ƒ}|tjkr2t|dtd|jƒdtdƒƒn|tjkrEdS‚q«Xq«WdS(Nis6non-zero flags not allowed in calls to sendall() on %sR;R:s	timed outR3RD(RFRIRJtlenRGRR6R:R
tsendallRterrorRR
RtSOCKET_BLOCKINGRt
SOCKET_CLOSED(	R(RCRHtamounttcounttdata_to_sendtvteterno((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRN s8	
		icCs|j||dtƒS(Ntinto(t
_base_recvR4(R(tbuflenRH((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pytrecvÁscCsR|r!|dkr!t|ƒ}n|dkr6d}n|j||dtd|ƒS(NiRXtbuffer_(R5RMRYR6(R(tbuffertnbytesRH((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyt	recv_intoÄs
	c	Cs¡|rtj}n	tj}|jr½|dkrLtd|j|jƒ‚ntjdkr|r|j	|ƒ}||t
|ƒ*t
|ƒ}n*|rª|j	||ƒ}n|j	|ƒ}|SxÝtrœy6|||g}|rñ|jd|ƒn||ŒSWqÀt
jk
r˜}	|jr ‚nt|	ƒ}
|
tjkry,t|dtd|jƒdtd	ƒƒWq’tk
r{d
SXn|
tjkr’d
S‚qÀXqÀWdS(Nis1non-zero flags not allowed in calls to %s() on %siiiR9R3R:s	timed outRD(ii(R
R_R[RFRIt__name__RJtsystversion_infoR9RMR6tinsertRRORR
RRPRRR:R	RQ(R(R^RHRXR\tplain_socket_functionRCR9R0RVRW((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRYÎsH				
c	CsP|js4t|dtd|jƒdtdƒƒntt|ƒj|||ƒS(NR9R3R:s	timed out(RRR6RR:RRtrecvfrom(R(RLRZRH((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyReûs	c	CsP|js4t|dtd|jƒdtdƒƒntt|ƒj|||ƒS(NR9R3R:s	timed out(RRR6RR:RRt
recvfrom_into(R(R]R^RH((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRfs	cCst|jtt|ƒjƒƒS(N(RRBRRtunwrap(R(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRgs	cCs|jtt|ƒjƒS(sPerform a TLS/SSL handshake.(RBRRR'(R(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR'sc	Csutj}|jr|||ƒS|jƒdkr©x=tr¥y|||ƒSWq4tjk
r¡}t|ƒt	kr…t
|dtƒq¢t|ƒtkr›dS‚q4Xq4WnÈtjƒ|jƒ}x¯trpy|||ƒWnptjk
rK}t|ƒt	kr/t
|dtd|tjƒdt
dƒƒqLt|ƒtkrEdS‚nXtjƒ|krÂt
dƒ‚qÂqÂWdS(NR;R3R:s	timed out(R
tconnectRRR5R6RROR
RRRttimeR:(R(RLtreal_connectRAtend((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyt_socket_connects6		
		 c	Cs9|jrtdƒ‚n|j|ƒt}y
tj}Wnetk
rŸtjrr|j	j
|j|d|ƒ}qåtr|j
n|j	}|j
||ƒ}nFX||j||j|j|j|j|jtrÜ|jgngŒ}ytWntk
r	||_nXt|d|ƒ|_|jr5|jƒndS(sQConnects to remote ADDR, and then wraps the connection in
        an SSL channel.s/attempt to connect already-connected SSLSocket!tssl_socktownerN(RFRIRlR4t_ssltsslwrapR RRt_contextt_wrap_sockett_sockRtcontextR*R+R-R.R/thas_cipherstcipherst	SSLObjectt	NameErrorR%R'(R(RLR,RptsslobjRt((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRh3s*	


	!!

	cCs|jr!tj|ƒ\}}nxŠtr­y$tj|ƒ\}}t|ƒPWq$tjk
r©}t|ƒtj	kr~‚nt
|dtd|jƒdtdƒƒq$Xq$Wt
|ƒ|d|jd|jdtd|jd	|jd
|jdtd|jƒ}||fS(
s¿Accepts a new connection from a remote client, and returns
        a tuple containing that new connection wrapped with a server-side
        SSL channel, and the address of the remote client.R9R3R:s	timed outR*R+R,R-R.R/R%tsuppress_ragged_eofs(RR
tacceptR6RRROR
RRPRRR:ttypeR*R+R-R.R/R4Rz(R(tnewsockRLRVtnew_ssl((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR{Us.		
						cCstdƒ‚dS(NsCan't dup an ssl object(tNotImplementedError(R(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pytduptsN(R`t
__module__t__doc__R5R4t	CERT_NONEtPROTOCOL_SSLv23R6RR#RR8RBR;R9RGRKRNR[R_RYReRfRgR'RlRhR{R€(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR!s2
(								!
-			#	"	cOst|||ŽS(N(R(R)R@R1((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRzscCs4t|d|d|dtdtdtddƒ}|S(s–A replacement for the old socket.ssl function.  Designed
        for compatibility with Python 2.5 and earlier.  Will disappear in
        Python 3.0.R*R+R,R-R.R/N(RR4RƒR„R5(R)R*R+Rm((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRs	tGreenSSLContextcBskeZdZd„Zeejdƒriejjd„ƒZejjd„ƒZej	jd„ƒZ	nRS(cOst|d|||ŽS(NRq(R(R(R)R@R1((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR‘stsettercCs tttƒjj||ƒdS(N(Rt_original_sslcontexttoptionst__set__(R(tvalue((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRˆœscCs tttƒjj||ƒdS(N(RR‡tverify_flagsR‰(R(RŠ((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR‹ scCs tttƒjj||ƒdS(N(RR‡tverify_modeR‰(R(RŠ((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyRŒ¤s((
R`Rt	__slots__RthasattrR‡RˆR†R‹RŒ(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyR…Žs	cOst||Ž}t|_|S(N(t _original_create_default_contextR…RJ(R@R1Rt((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pytgreen_create_default_context­s	(0t
__import__t__sslteventlet.patcherRtglobalstdirterrnot	functoolsRaRiteventletRteventlet.greenioRRRRt
eventlet.hubsRR	teventlet.supportR
RRRR
RbR6RuR<R:R4R3t__patched__RR"RRRŽR5RRR‡R…RRRR(((sG/home/tvault/.virtenv/lib/python2.7/site-packages/eventlet/green/ssl.pyt<module>sF"				ÿW