HEX
Server: Apache
System: Linux hp3-stn-1011028.hostingp3.local 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: csh958633 (951153)
PHP: 8.3.30
Disabled: shell_exec,exec,system,popen,set_time_limit
Upload Files
File: //lib/python2.7/site-packages/jabber/xmlstream.pyo
�
��Sc@s�dZddlZddlZddlZddlZddlmZddlmZddlZ	ddl
Z
e
ZdZdZ
dZdZdZdZd	ZeZd
Ze
je
jZZdZe
jje�dZe
jje�d
Ze
jje�eegZd�Zd�Zddd��YZ ddd��YZ!ddd��YZ"de"fd��YZ#de#fd��YZ$ddd��YZ%dS( s�xmlstream.py provides simple functionality for implementing
XML stream based network protocols. It is used as a  base
for jabber.py.

xmlstream.py manages the network connectivity and xml parsing
of the stream. When a complete 'protocol element' ( meaning a
complete child of the xmlstreams root ) is parsed the dipatch
method is called with a 'Node' instance of this structure.
The Node class is a very simple XML DOM like class for
manipulating XML documents or 'protocol elements' in this
case.

i����N(tselect(tencodestrings0.5iiisutf-8is
conn-errors	xml-parsesxml-rawcCs:|jdd�}|jdd�}|jdd�}|S(sEscape XML entitiest&s&amp;t<s&lt;t>s&gt;(treplace(ttxt((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt	XMLescape>scCs:|jdd�}|jdd�}|jdd�}|S(sUnescape XML entitiess&gt;Rs&lt;Rs&amp;R(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytXMLunescapeEsterrorcBseZd�Zd�ZRS(cCst|�|_dS(N(tstrtvalue(tselfR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt__init__MscCs|jS(N(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt__str__Os(t__name__t
__module__R
R(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR	Ls	tNodecBs�eZdZddigdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zdigdd�Zd�Zd�Zd�Zdd�Zdd�Zd�Zd�Zd�ZRS(sA simple XML DOM like classcCsp|r�t|�t|�kr3t|�j�}n|j|j|j|j|j|jf\|_|_|_|_|_|_n<ddiggdf\|_|_|_|_|_|_|r�dg|j
�d\|_|_n|r�||_nx%|j�D]}|||j|<qWxC|D];}t|�t|�kr[|j|�q-|j
|�q-WdS(Nttagti����(ttypetNodeBuildertgetDomtnamet	namespacetattrstdatatkidstparenttNonetsplittkeyst
insertNodet	insertXML(RRRRtpayloadtnodetattrti((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR
TsQ<&
cCs
||_dS(sSet the nodes parent node.N(R(RR#((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt	setParentjscCs|jS(sreturn the nodes parent node.(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt	getParentnscCs|jS(sSet the nodes tag name.(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetNamerscCs
||_dS(sSet the nodes tag name.N(R(Rtval((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytsetNamevscCs||j|<dS(s'Add a name/value attribute to the node.N(R(RtkeyR)((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytputAttrzscCsy|j|SWndSXdS(s*Get a value for the nodes named attribute.N(RR(RR+((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetAttr~scCs|jj|�dS(sSet the nodes textual dataN(Rtappend(RR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytputData�scCs|jj|�dS(sSet the nodes textual dataN(RR.(RR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt
insertData�scCsdj|j�S(sReturn the nodes textual dataR(tjoinR(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetData�scCs|jS(s Return the node data as an array(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetDataAsParts�scCs|jS(sReturns the nodes namespace.(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetNamespace�scCs
||_dS(sSet the nodes namespace.N(R(RR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytsetNamespace�scCs;td|d|d|d|d|�}|jj|�|S(sb Add a child tag of name 'name' to the node.

            Returns the newly created node.
        RRRR"R#(RRR.(RRRR"R#tnewnode((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt	insertTag�s'cCs|jj|�|S(sAdd a child node to the node(RR.(RR#((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR �scCs&t|�j�}|jj|�|S(s"Add raw xml as a child of the node(RRRR.(Rtxml_strR6((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR!�scCs
|j�S(N(t_xmlnode2str(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR�scCs�d|j}|jrE|rE|j|jkrE|d|j}qEnxD|jj�D]3}t|j|�}|d|t|�f}qUW|d}d}|jdkrxg|jD]Y}t|j	�d|kr�|t|j	|�}n||j
d|�}|d}q�Wnt|j	�d|krH|t|j	|�}n|jrs|ddkrs|d d	}n|d
|jd}|S(sMReturns an xml ( string ) representation of the node
         and it childrenRs xmlns = '%s' s %s='%s'RiiRi����s />s</N(RRRRtustrRRRtlenRR9(RRtsR+R)tcntta((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR9�s*
	
cCsPxI|jD]>}|j�|kr
|s,|S|dk	rH|d8}qHq
q
WdS(sFReturns a child node with tag name. Returns None
        if not found.iN(RR(R(RRtindexR#((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetTag�scCs@g}x3|jD](}|j�|kr|j|�qqW|S(s8Like getTag but returns a list with matching child nodes(RR(R.(RRtnodesR#((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetTags�s
cCs|jS(sReturns a nodes children(R(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytgetChildren�scCs|t|�t|�kr>y|jj|�|SWq>dSXnx7|jD],}|j�|krH|jj|�|SqHWdS(s(Pops out specified child and returns it.N(RRtremoveRR((RRR#((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt	removeTag�sN(RRt__doc__RR
R&R'R(R*R,R-R/R0R2R3R4R5R7R R!RR9R@RBRCRE(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRRs.																			RcBsSeZdZdd�Zd�Zd�Zd�Zd�Zdd�Z	d�Z
RS(	sXbuilds a 'minidom' from data parsed to it. Primarily for insertXML
       method of NodecCsztjjjdd�|_|j|j_|j|j_|j	|j_
d|_d|_|rv|jj
|d�ndS(Ntnamespace_separatort ii(txmltparserstexpattParserCreatet_parsertunknown_starttagtStartElementHandlertunknown_endtagtEndElementHandlerthandle_datatCharacterDataHandlert_NodeBuilder__deptht_dispatch_depthtParse(RR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR
�s		cCs�|jd|_|jd|j|t|�ft�|j|jkrotd|d|�|_|j|_nr|j|jkr�|jjj	td|d|jd|��|jjd|_n|j
d�r�|d|_nt|_
dS(	sXML Parser callbackis$DEPTH -> %i , tag -> %s, attrs -> %sRRRi����tidN(RTtDEBUGR
t
DBG_XML_PARSERURt	_mini_domt_ptrRR.thas_keyt_incomingIDtFalsetlast_is_data(RRR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRN�s	+cCs�|jd|jt�|j|jkr<|j|j�n4|j|jkr`|jj|_n|jdt�|jd|_t	|_
dS(sXML Parser callbacksDEPTH -> %is*** Stream terminated ? ****iN(RXRTRYRUtdispatchRZR[RtDBG_CONN_ERRORR^R_(RR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRP	scCsV|jd|t�|jr6|jjdc|7<n|jjj|�t|_dS(sXML Parser callbacksdata-> i����N(RXRYR_R[RR.tTrue(RR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRRs
	cCsdS(N((Rtdom((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR`scCsdS(N((Rtdup1tdup2((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRX!scCs|jS(N(RZ(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR$sN(RRRFRR
RNRPRRR`RXR(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR�s					tStreamcBs�eZdZegdded�Zd�Zd�Zd�Z	d�Z
dd�Zd�Zd	�Z
d
�Zdd�Zd
�Zd�ZRS(s�Extention of NodeBuilder class. Handles stream of XML stanzas.
       Calls dispatch method for every child of root node
       (stream:stream for jabber stream).
       attributes _read, _write and _reader must be set by external entity
    cCs�||_d\|_|_|_d|_||_tj|dt	�|_|jj
|_|jdt�|r�t
|�t
d�kr�yt|d�|_Wq�d|GHtjd�q�Xq�||_n	d|_||_dS(Ntencodingsstream init calledRtwsERROR: can open %s for writingi(NNN(t
_namespaceRt_readt_readert_writeR]t_outgoingIDt_debugtDebugtENCODINGtshowRXtDBG_INITRtopent_logFHtsystexitt
_timestampLog(RRtdebugtlogRWttimestampLog((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR
.s"					cCstj|�d|_dS(Ni(RR
RU(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytconnectMs
cCs
||_dS(ss Enable or disable the showing of a timestamp in the log.
            By default, timestamping is enabled.
        N(Rw(Rt	timestamp((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRzQscCs�y|jt�}Wn
d}nXxFt|jgggd�drk|jt�}||7}|s&Pq&q&Wt|�r�|jd|t�|j|d�n
|j|�|S(sUReads incoming data. Blocks until done. Calls self.disconnected(self) if appropriate.Ris	got data sRECV:(	Rjt
BLOCK_SIZERRkR;RXtDBG_XML_RAWRytdisconnected(Rtreceivedtadd((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytreadWs
"

cCs�t|�td�krA|jd|tf�t|t�}n|jd�}y5|j|�|j|d�|jd|t�Wn$|jdt�|j	|�nXdS(s�Writes raw outgoing data. Blocks until done.
           If supplied data is not unicode string, ENCODING
           is used for convertion. Avoid this!
           Always send your data as a unicode string.RsHNon-utf-8 string "%s" passed to Stream.write! Treating it as %s encoded.sutf-8sSENT:ssent %ssxmlstream write threw errorN(
RRXRptunicodetencodeRlRyR~RaR(Rtraw_datatdata_out((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytwritegs
icCsIt|jggg|�drE|j�}|jj|�t|�SdS(siReceives incoming data (if any) and processes it.
           Waits for data no more than timeout seconds.it0(RRkR�RMRVR;(RttimeoutR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytprocessxs

cCs'|jd�|jj�d|_dS(sClose the stream and socketu</stream:stream>N(R�t_socktcloseR(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt
disconnect�s

cCs3y|j|�Wntk
r.|j�nXdS(s4Called when a Network Error or disconnection occurs.N(tdisconnectHandlert	TypeError(Rtconn((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR�s
cCstd��dS(sUCalled when a Network Error or disconnection occurs.
        Designed to be overiddensRStandart disconnectionHandler called. Replace it with appropriate for your client.N(R	(RR�((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR��sRcCsl|jdk	rh|jr>|jjdtj�||f�n|jjd||f�|jj�ndS(s[Logs data to the specified filehandle. Data is time stamped
        and prefixed with inouts
%s - %s - %s
s%s - %s
N(RtRRwR�ttimetasctimetflush(RRtinout((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRy�s
	&cCs|jS(sReturns the streams ID(R](R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt
getIncomingID�scCs|jS(sReturns the streams ID(R](R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt
getOutgoingID�sN(RRRFt
DBG_ALWAYSRRbR
R{RzR�R�R�R�RR�RyR�R�(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyRf(s 								
	tClientcBsDeZegdddeddd�Zd�Zd�Zd�ZRS(cCs�tj|||||�||_||_||_||_|	rO|	|_n	||_|
|_d|_	d|_
d|_dS(N(RfR
t_hostt_portR�t_connectiont_hostIPt_proxyRt_sslObjt
_sslIssuert
_sslServer(RthosttportRRxRytsockRWt
connectionthostIPtproxy((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR
�s									cCs|jS(N(R�(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt	getSocket�scCs�|jd|j|j|jft�tj|�|jtkrP|j�dS|j	r�t
j|j	d|j	dt
jt
j
�}n$t
j|j|jt
jt
j
�}x|D]�}|\}}}}}yt
j
|||�|_Wn"t
jk
r}d|_q�nXyP|j	rB|jj|j	d|j	df�n|jj|j|jf�WnIt
jk
r�}	|jj�d|_|jdt|	�t�q�nXPq�W|jdkr�t
jd��n|jtkrSyS|jdt�t
j|jdd�|_|jj�|_|jj�|_WqS|jdt��qSXn|j�|j	r�|jd	t�|j	jd
�r�|j	d
j�}
nd}
g}|
dkr�|jd|j|jf�nL|
d
kr|jd|j|jf�n |jdt�td|
��|jd�|jd�|jd|j|jf�|jdt�|j	jd�r�|j	jd�r�d|j	d|j	df}t |�j!�}|jd|�n|jd�|j"|j#f}
|j$dj%|��|j"t&�j'dd�}|
\|_"|_#y,|j(d�dj(dd�\}}}Wntd ��nX|d!kr�td"|||f��nx8|j)d#�d$kr�||j*�j'dd�7}q�Wn|jd%t�|j+�dS(&s$Attempt to connect to specified hosts&client connect called to %s %s type %iNR�R�ssocket error: s0Unable to connect to the host and port specifiedsAttempting to create ssl socketsSocket Error: No SSL SupportsProxy connectedRtCONNECTuCONNECT %s:%s HTTP/1.0tPUTuPUT http://%s:%s/ HTTP/1.0sProxy Error: unknown proxy typesUnknown proxy type: sProxy-Connection: Keep-AlivesPragma: no-cachesHost: %s:%ssUser-Agent: Jabberpy/tusertpasswords%s:%ssProxy-Authorization: Basic s
s
Rs
iRHisInvalid proxy replyt200sInvalid proxy reply: %s %s %ss

i����sJabber server connected(,RXR�R�R�RrRfR{tSTDIOt_setupCommsR�tsockettgetaddrinfot	AF_UNSPECtSOCK_STREAMR�R�R	RR�R
RatTCP_SSLtsslR�tissuerR�tserverR�R\tupperR.tVERSIONRtstripRjRlR�R1R}RRtfindR�theader(Rtresultstrtaftsocktypetprotot	canonnametsatmsgteRt	connectortcredentialstbaktreplytcodetdesc((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR{�s�

	
		' 
	

	  

$
,#cCs�|jtkr<|jj|_|jj|_|j|_n�|jtkrx|j	j
|_|j	j|_|j|_nX|jtkr�|j
j
|_|jj|_tj
|_n|jdt�td��dS(Nsunknown connection type(R�tTCPR�trecvRjtsendallRlRkR�R�R�R�R�tstdintstdoutRuRXRatIOError(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR�sN(	RRR�RR�R
R�R{R�(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR��s		WtServercBsAeZd�Zdd�Zd�Zd�Zd�Zd�ZRS(cCstjtj��S(N(R�tctime(R((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytnow*si
cCs�d|_d|_g|_ggg|_|_|_ttt�|_	|j	j
|j|jf�|j	j|�|jj|j	�|jj|j	�dS(NRif(
R�R�tstreamst	mainsockst	readsockst
writesocksR�tAF_INETR�tportsocktbindtlistenR.(Rt
maxclients((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR
,s			cCs�dGHx�dGHt|j|jg�\}}}x�|D]�}||jkr�|j�\}}dG|Gt|�GH|jj|�|j|�q5|jd�}dG|GdGt|�GH|s�|j	�|jj
|�q5|jd|�q5WqdS(Nsselect-server loop startingtLOOPINGsConnect:is	gottonsEcho=>%s(RR�R�R�tacceptRWR.t_makeNewStreamR�R�RDtsend(Rt	readablest
writeablest
exceptionstsockobjtnewsocktaddressR((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pytserve?s"	

cCs6tdddd|�}|jj|�|j�|S(Nt	localhostifs
jabber:clientR�(RfR�R.R�(Rtscktt
new_stream((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR�Zs		
cCs1g}x$|jD]}|j|j��qW|S(N(R�R.R�(RtsocksR<((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt_getStreamSocketscscCs.x'|jD]}|j�|kr
|Sq
WdS(N(R�R�R(RR�R<((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt_getStreamFromSocketis(RRR�R
R�R�R�R�(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyR�(s					(((((&RFR�RutreR�Rtbase64Rtxml.parsers.expatRIRxRnR�R^RbR�R�R�RpR
R:R}RrR�Ratdebug_flagsR.RYR~tDBG_XMLRRR	RRRfR�R�(((s4/usr/lib/python2.7/site-packages/jabber/xmlstream.pyt<module>s>0		�=|�