404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.145.109.231: ~ $
3

�h>`���@s8ddlmZddlmZddlZddlZddlZddlZddlZddl	m
Z
mZddlZddl
ZddlZddlZddlTddlmZddlTddlmZmZddlTdd	d
ddd
ddddddddgZejd�Zejd�Zejd�Zedd�ZdAdd
�Zdd�Z dd�Z!dd�Z"dd �Z#d!d"�Z$d#d$�Z%d%d&�Z&d'd(�Z'Gd)d�de
j
�Z(e
j)e(�Gd*d+�d+e*�Z+e+d,e,�e+d-e-�e+d.e,�gZ.Gd/d0�d0e*�Z/Gd1d2�d2e*�Z0e0�Z1d3d�Z2d4d	�Z3d5d
�Z4d6d�Z5Gd7d�de*�Z6Gd8d9�d9e*�Z7Gd:d�de7�Z8Gd;d<�d<�Z9Gd=d�de*�Z:Gd>d�de7e:�Z;Gd?d@�d@e*�Z<dS)B�)�absolute_import)�print_functionN)�GObject�GLib)�*)�
get_config)�xml_child_elements�xml_get_child_elements_by_name�
rpc_method�rpc_arg_type�rpc_callback�
rpc_signal�interface_registry�parse_socket_address_list�get_default_port�get_socket_list_from_config�get_local_server_socket_address�ConnectionState�	RpcManage�
RpcChannel�ListeningServer�
SocketAddresszcontent-length:(\d+)z

z([a-zA-Z0-9_-]+):(.*)
Zgeneral�
i18n_encodingcCs�g}tjd�}td|�|s"|Stjd|�}x~|D]v}|s>q4|j|�}|r�|jd�j�}|jd�}tj|�}	|	dkr�td||f�q4n
t	j
}	|}t|	||�}
|j|
�q4Wtd||
f�|S)Nz\s*{(unix|inet)}(.+)z%parse_socket_address_list: input='%s'z[\s,]+��z(unknown socket family - %s in address %sz$parse_socket_address_list: %s --> %s)�re�compile�	log_debug�split�search�group�lowerr�
map_family�Socket�AF_INET�append)�addr_string�default_port�socket_addressesZ	family_reZaddrsZcfg_addr�matchZ
family_tag�address�family�socket_address�r-�/usr/lib/python3.6/rpc.pyrEs.




cCstddt�}|S)NZ
connectionr')r�int)r'r-r-r.rdscCst|d�}t|�}|S)NZaddress_list)rr)Zcfg_sectionr&r(r-r-r.ris
cCs td�}t|�dkrdS|dS)NZclient_connect_tor)r�len)Z	addr_listr-r-r.roscCs�g}|tj@r|jd�|tj@r,|jd�|tj@r@|jd�|tj@rT|jd�|tj@rh|jd�|tj@r||jd�d|dj|�fS)	N�INZOUTZPRIZERR�HUPZNVALz(%d)[%s]�,)	r�IO_INr%ZIO_OUTZIO_PRI�IO_ERR�IO_HUP�IO_NVAL�join)�io_condition�namesr-r-r.�io_condition_to_stringvs











r;cKsBdt|�}x(t|j��D]\}}|d||f7}qW|d7}|S)Nzcontent-length: %d
z%s: %s
z
)r0�list�items)�body�kwds�hdr�key�valuer-r-r.�
rpc_header�s
rCcCst|||d�}||S)N)�rpc_id�type)rC)rDrEr>r@r-r-r.�rpc_message�srFc
Cs�d}}}}z�tj|�}|j�}|jd�}|jd�}tj||�}t|d�}tt|��}xv|D]n}|jd�}|jd�}	t	|jd��}
|j
|
}|jdk	r�|	dkr�|j||d�}q�|j|j�}n|j}|||
<q`WWd|dk	r�|j
�X|||fS)	N�	interface�method�arg�namerE�position�xml)Zobj_name)�libxml2ZparseDocZgetRootElementZpropr�get_rpc_defr	�preextend_listr0r/�positional_args�obj_typeZcontent�freeDoc)
�cmdrGrH�args�doc�rpc_defZ	arg_nodes�arg_node�arg_nameZarg_typeZarg_position�rpc_arg�	arg_valuer-r-r.�convert_rpc_xml_to_args�s.


	






r[c
GsJd}}�z&|j}|j}tjd�}tjd�}|jd|�|jd|�|j|�d}x�|jD]�}	|	j}
||}tjd�}|j	|�|jd|
�|jdt
|��t|tj�r�|jd	d
�|j	|�nDt
|d�r�|jd	d
�|j	|j||
��n|jd	d�|jt
|��|d
7}qZW|jdt
|��|jtd
d�}Wd|dk	�rD|j�X|S)Nz1.0rSrGrHrrIrJrKrErL�
get_xml_nodes�stringrZ	arg_count)�encoding�format)rGrHrMZnewDocZnewNodeZsetPropZsetRootElementrPrJZaddChild�str�
isinstanceZxmlNode�hasattrr\Z
addContentZ	serializerrR)
rDrVrTZtext_docrUrGrH�rootrKrYrXrZrWr-r-r.�convert_rpc_to_xml�s>







rdc@s�eZdZd#Zd$Zd%Zd&Zd'Zd(Zd)Z	eeBeBeBeBeBe	BZ
eeBZeeBeBe	BZeded	ed
ededed
e	diZ
eeeeeee	gZdejjdejejejffiZdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd*d!d"�ZdS)+rrr������
CONNECTING�OPEN�
AUTHENTICATEDr2�ERROR�TIMEOUT�RETRY�changedNcCs*tjj|�d|_d|_d|_|j�dS)Nr)r�__init__�flags�result_code�
result_msg�clear_result)�selfr-r-r.rqs
zConnectionState.__init__cCsd|j|j�|j|jfS)Nz'flags=%s, result_code=%d, result_msg=%s)�flags_to_stringrrrsrt)rvr-r-r.�__str__
szConnectionState.__str__cCs|jd|j�dS)Nr)�update�	ALL_FLAGS)rvr-r-r.�clearszConnectionState.clearcCsB|dkrd}g}x&tjD]}||@r|jtj|�qWdj|�S)Nrr3)r�connection_statesr%�map_connection_enum_to_stringr8)rv�valr:�stater-r-r.rwszConnectionState.flags_to_stringcCsd|_d|_dS)Nr�)rsrt)rvr-r-r.ruszConnectionState.clear_resultcCs||_||_dS)N)rsrt)rvrsrtr-r-r.�
set_result!szConnectionState.set_resultcCs|j|jfS)N)rsrt)rvr-r-r.�
get_result%szConnectionState.get_resultrr�c	Csf|j}|j|O_|j|M_||_||_||jA}|j|@}||@}|rb|jd|j||�dS)Nrp)rrrsrt�emit)	rv�	add_flags�remove_flagsrsrtZprevious_flags�
differenceZflags_addedZ
flags_removedr-r-r.ry(s

zConnectionState.updaterrf��� �@�)rrrr�)�__name__�
__module__�__qualname__rjrkrlr2rmrnrorz�
GOOD_FLAGS�
PROBLEM_FLAGSr}r|rZSignalFlagsZRUN_LASTZTYPE_INTZ__gsignals__rqrxr{rwrur�r�ryr-r-r-r.r�s8	c@seZdZddd�Zdd�ZdS)�RpcArgNcCs||_||_dS)N)rJrQ)rvrJrQr-r-r.rq@szRpcArg.__init__cCs6|jdkrd}n|j}|jdkr$|Sd||jfSdS)NZname_undefinedz%s:%s)rJrQ)rvrJr-r-r.rxDs

zRpcArg.__str__)NN)r�r�r�rqrxr-r-r-r.r�>s
r�rH�err_code�err_msgc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
RpcDefinitioncCs2||_||_||_d|_|dkr(g|_n||_dS)N)rErGrH�callbackrP)rvrErGrHZrpc_argsr-r-r.rqUszRpcDefinition.__init__cCs�g}|jdk	rLx<|jD]2}|jdk	r<|jd|j|jf�q|j|j�qWd|j|j|jdj|�f}|jdkr�|d|j7}|S)Nz%s:%sz[%s] %s:%s (%s)r3rHz callback=%s)	rPrQr%rJrErGrHr8r�)rvrTrY�textr-r-r.rx_s


zRpcDefinition.__str__cCs
||_dS)N)rE)rvrEr-r-r.�set_typelszRpcDefinition.set_typecCs(|jdk	rtj|j�}||j=||_dS)N)r�r�
get_interfacerG)rvr��interface_dictr-r-r.�set_callbackos
zRpcDefinition.set_callbackcCsf|jdkrtd|j��|jdkrVd|j}td|j|d�}tj|j||�||_|Stj|j|j�S)NrHz"%s rpc types do not have callbacksz%s_default_callback�
method_return)	rE�
ValueErrorr�rHr�rGr�register_rpc_defrN)rvZ
callback_nameZcallback_defr-r-r.�get_callback_defus


zRpcDefinition.get_callback_defcCsJ|dk	rFtt|�|jt�|_d}x$|D]}|j|}||_|d7}q&WdS)Nrr)rOr0rPr�rJ)rvZ	arg_namesrKrXrYr-r-r.�set_positional_args�s

z!RpcDefinition.set_positional_argscGsJ|dk	rFtt|�|jt�|_d}x$|D]}|j|}||_|d7}q&WdS)Nrr)rOr0rPr�rQ)rvZ	obj_typesrKrQrYr-r-r.�set_arg_obj_types�s

zRpcDefinition.set_arg_obj_typescCsdd�|jD�S)NcSsg|]
}|j�qSr-)rJ)�.0rYr-r-r.�
<listcomp>�sz:RpcDefinition.get_positional_arg_names.<locals>.<listcomp>)rP)rvr-r-r.�get_positional_arg_names�sz&RpcDefinition.get_positional_arg_namesN)r�r�r�rqrxr�r�r�r�r�r�r-r-r-r.r�Ss

		r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�InterfaceRegistrycCs
i|_dS)N)�
interfaces)rvr-r-r.rq�szInterfaceRegistry.__init__cCstd|dt�}d|iS)N�error_return�
_error_return)r��error_positional_args)rvrGZerror_return_defr-r-r.�
new_interface�szInterfaceRegistry.new_interfacecCs,|jj|�}|dkr(|j|�}||j|<|S)N)r��getr�)rv�interface_namerGr-r-r.r��s


zInterfaceRegistry.get_interfacecCsRddl}|j}|j|�d}|ddkr.|d=|j||�}|j|�|j|�|S)Nrrv)�inspectr�Z
getargspecrNr�r�)rvrErG�
method_ptrr�rHrPrVr-r-r.�set_rpc_def�s

zInterfaceRegistry.set_rpc_defcCsL|j|�}t|t�r|j}|j|�}|dkrHtd||d�}|j|||�|S)N)r�ra�
MethodTyper�r�r�r�)rvrGrHr�rVr-r-r.rN�s


zInterfaceRegistry.get_rpc_defcCs&|j|�}t|t�r|j}|||<dS)N)r�rar�r�)rvrGrHrVr�r-r-r.r��s

z"InterfaceRegistry.register_rpc_defcCs|j|�}|dS)Nr�)r�)rvrGr�r-r-r.�get_error_rpc_def�s
z#InterfaceRegistry.get_error_rpc_defcCsxt|jj��}|j�x\|D]T}|j|}td|�t|j��}|j�x$|D]}||}tdt|��qPWqWdS)Nz
Interface: %sz    %s)r<r��keys�sort�printr`)rvZinterface_namesr�rGZmethod_namesZmethod_namerHr-r-r.�dump_interfaces�s


z!InterfaceRegistry.dump_interfacesN)r�r�r�rqr�r�r�rNr�r�r�r-r-r-r.r��s
r�cs�fdd�}|S)Ncs,tjd�|�}|j���fdd�}d|_|S)NrHcs@|j�}tj���}t||�}||j|<|j|d|f|��|S)NrH)�
new_rpc_idrrN�AsyncRpc�async_rpc_cache�emit_rpc)rvrTrDrV�	async_rpc)rGrHr-r.�rpc_func�s

z/rpc_method.<locals>.decorator.<locals>.rpc_funcT)rr�r��_rpc_definition)r�rVr�)rG)rHr.�	decorator�s
zrpc_method.<locals>.decoratorr-)rGr�r-)rGr.r
�s
cs��fdd�}|S)Ncs |j}tj�|�}|j��|S)N)r�rrNr�)r�rHrV)�	arg_typesrGr-r.r��s
zrpc_arg_type.<locals>.decoratorr-)rGr�r�r-)r�rGr.r�scs��fdd�}|S)Ncs0tjd�|�}tj���}|j|j�d|_|S)Nr�T)rr�rNr�rHr�)r��rpc_callback_defrV)rGrHr-r.r��s
zrpc_callback.<locals>.decoratorr-)rGrHr�r-)rGrHr.r�scs�fdd�}|S)Ncs,tjd�|�}|j���fdd�}d|_|S)N�signalcs,|j�}tj���}|j|d|f|��dS)Nr�)r�rrNr�)rvrTrDrV)rGrHr-r.r�sz/rpc_signal.<locals>.decorator.<locals>.rpc_funcT)rr�r�r�)r�rVr�)rG)rHr.r��s
zrpc_signal.<locals>.decoratorr-)rGr�r-)rGr.r
�s
c@sdeZdZdde�dfdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	e
dd��Zdd�Zdd�Z
dS)rNcCsLtj|�|_||_||_||_tj|_d|_	||_
|dk	rH|j|j|�dS)N)rr"r+r*�portr'r#ZSOCK_STREAMrE�socket�
friendly_name�parse)rvr+r*r'r�r-r-r.rqszSocketAddress.__init__cCsbtjddt|j��}|jdkr"dS|jtjkr<d|j|fS|jtjkrZd|j|j	|fSdSdS)Nz^.+ at (0x[0-9A-Fa-f]+)>$z\1�Nonez{unix}%s socket=%sz{inet}%s:%s socket=%s�unknown)
r�sub�reprr�r+r#�AF_UNIXr*r$r�)rvZsocket_reprr-r-r.rxs
zSocketAddress.__str__cCsL|jdkrdS|jtjkr$d|jS|jtjkr@d|j|jfStd�SdS)Nr�z%sz%s:%sZUnknown)r+r#r�r*r$r��_)rvr-r-r.�_get_default_friendly_name&s

z(SocketAddress._get_default_friendly_namecCs|jdkr|j�S|jS)N)r�r�)rvr-r-r.�get_friendly_name0s
zSocketAddress.get_friendly_namecCsddl}|j|�S)Nr)�copy)rvr�r-r-r.r�5szSocketAddress.copycCs2|jtjkr|jS|jtjkr*|j|jfSdSdS)N)r+r#r�r*r$r�)rvr-r-r.�get_py_address9s
zSocketAddress.get_py_addresscCs0t|tj�r,|j�}tjtjd�j|�}|S|S)N)ZunixZinet)ra�sixZstring_typesr!r#r�r$r�)r+r-r-r.r"As
zSocketAddress.map_familycCs6||_|tjkr||_d|_n|tjkr2|j|�dS)N)r+r#r�r*r�r$�parse_inet_addr)rvr+�addrr-r-r.r�Is

zSocketAddress.parsecCs^tjd|�}|rN|jd�}|jd�}|dkr2|j}|dkr@t�}||_||_nd|_d|_dS)Nz^\s*([^:\s]+)\s*(:\s*([^\s]+))?rreZhostname)rrr r'Zget_hostnamer*r�)rvr�r)r�r-r-r.r�Qs

zSocketAddress.parse_inet_addr)r�r�r�rrqrxr�r�r�r��staticmethodr"r�r�r-r-r-r.r
s
c@sNeZdZejejBejBejBZdde	�fdd�Z
dd�Zdd�Zdd	�Z
dS)
�ConnectionIONcCs$t�|_||_||_||_d|_dS)N)r�connection_stater,�channel_type�channel_name�io_watch_id)rvr�r�r,r-r-r.rqhs
zConnectionIO.__init__cCs&|j�tj|jjtj|j|�|_dS)z-callback signature: (io_object, io_condition)N)�io_watch_removerZio_add_watchr,r�ZPRIORITY_DEFAULT�io_input_conditionsr�)rvr�r-r-r.�io_watch_addos
zConnectionIO.io_watch_addcCs |jdk	rtj|j�d|_dS)N)r�rZ
source_remove)rvr-r-r.r�vs
zConnectionIO.io_watch_removecCs�|tjtjBtjB@r�|tj@r>t}t|�}|jtjd||�|tj@rft	}t|�}|jtj
d||�|tj@r�t}t|�}|jtj
d||�dSdSdS)NrFT)rr6r5r7�ERR_SOCKET_HUPZget_strerror�close_connectionrr2ZERR_SOCKET_ERRORrmZERR_IO_INVALID)rvr9�errno�strerrorr-r-r.�valid_io_condition{s


zConnectionIO.valid_io_condition)r�r�r�rr4r6r5r7r�rrqr�r�r�r-r-r-r.r�es
r�c@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)rFrgcCstj|dd|d�||_dS)NZ	listeningZserver_listening)r�r�r,)r�rq�client_connection_handler_class)rvr,r�r-r-r.rq�szListeningServer.__init__cCs�||_|jjtjkrXtjj|jj�r4tj|jj�n$tjj	|j�}tjj|�sXtj
|�tj|jj|jj�|j_t
j
|jjj�t
jt
j�|jr�|jjjtjtjd�|jjj|jj��|jjtjkr�tj|jjd�|jjj|j�|jjS)Nri�)r,r+r#r��os�path�existsr*�remove�dirname�makedirsr�rE�fcntl�fileno�F_SETFD�
FD_CLOEXEC�allow_reuse_addressZ
setsockoptZ
SOL_SOCKETZSO_REUSEADDRZbindr��chmodZlisten�request_queue_size)rvr,r�r-r-r.�new_listening_socket�s 
z$ListeningServer.new_listening_socketcCs`y |j|j�|j_|j|j�Wn:tk
rZ}z|jjtj	tj
dt|��dSd}~XnXdS)NrFT���)r�r,r�r��handle_client_connect�	Exceptionr�ryrrmrkr`)rv�er-r-r.�open�szListeningServer.opencCsRy�|j|�sdS|tj@r�yN|j�\}}tj|j�tjtj�|j|j	�}|j
||�|jjdt
j�Wnrtjk
r�}zTt|�\}}tjtjd|j	|f�|tjkr�t
j}	nt
j}	|jj|	d||�WYdd}~XnXWnntk
�rL}zPtjtjd|jjt|�f�ddl}
t|
j��|jjt
jddt|��WYdd}~XnXdS)NFrz5closing client connection due to socket error(%s): %szexception %s: %srTr�)r�rr4Zacceptr�r�r�r�r�r,r�r�ryrr�r#�error�get_error_from_socket_exception�syslog�LOG_ERR�Errno�EPIPEr2rmr��	__class__r�r`�	traceback�syslog_trace�
format_exc)rvr�r9Z
client_socketZclient_addressZclient_handlerr�r�r�r�r�r-r-r.r��s.


(*z%ListeningServer.handle_client_connectN)	r�r�r�r�r�rqr�r�r�r-r-r-r.r�s	c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�RequestReceivercCs||_|j�dS)N)�dispatchFunc�reset)rvr�r-r-r.rq�szRequestReceiver.__init__cCs"d|_d|_d|_d|_d|_dS)Nrrr�r�)�	headerLen�bodyLen�headerr>�feed_buf)rvr-r-r.r��s
zRequestReceiver.resetcCs�t|j�dkrdSx�|jdkrFtj|j�}|rD|j�|_|j�qnPt|j�|j|jkr�|j}|j|j}|j||�|_|j|d�|_d|_d|_|j	|j
|j�qPqWdS)Nrrr�r�)r0rr�
header_end_rer�end�parse_headerrr>r�r)rvr)Z	bodyBeginZbodyEndr-r-r.�process�s(

zRequestReceiver.processcCs|j|7_|j�dS)N)rr)rv�datar-r-r.�feedszRequestReceiver.feedcCsli|_d}xLtj|j||jd�}|rR|jd�}|jd�j�}||j|<|j�}qPqWt|jd�|_	dS)Nrrrzcontent-length)
r�header_field_rerrrr �striprr/r)rvZbeginr)rArBr-r-r.rs


zRequestReceiver.parse_headerN)r�r�r�rqr�rr	rr-r-r-r.r��s
r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)rcCsi|_i|_d|_dS)Nr)r��rpc_handlersrD)rvr-r-r.rqszRpcManage.__init__cCs|jd7_t|j�S)Nr)rDr`)rvr-r-r.r�#szRpcManage.new_rpc_idcCsVtdt|j�|jf�t|jj��}|j�x"|D]}td||j|f�q4WdS)Nz*async_rpc_cache: %d entries, cur rpc_id=%sz%s: %s)rr0r�rDr<r�r�)rvZrpc_idsrDr-r-r.�dump_async_rpc_cache's

zRpcManage.dump_async_rpc_cachecCs|jj�dS)N)r�r{)rvr-r-r.�flush_async_rpc_cache.szRpcManage.flush_async_rpc_cachecCstjtjd|||f�dS)Nz
[%s] %d %s)r�r�)rvrHr�r�r-r-r.�default_errback1szRpcManage.default_errbackcCs�|dkrtjtjdt�dS|jdkrDxZ|jD]}||j�q0Wn@|jdkr�t|j�dkrxx&|jD]}||j�qdWn|j|j�dS)Nz8process_async_return(): rpc_id=%s not in async_rpc_cacher�r�r)	r�r�rD�return_type�	callbacks�return_argsr0�errbacksr)rvr�r�r-r-r.�process_async_return4s

zRpcManage.process_async_returncCs||j|<dS)N)r)rvrGZhandlerr-r-r.�connect_rpc_interfaceBszRpcManage.connect_rpc_interfaceN)
r�r�r�rqr�r
rrrrr-r-r-r.rsc@s�eZdZedde�Zedde�Zd!dd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zd"dd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd �ZdS)#rr�Zbuf_size�timeoutNcCs6tj|||dd�tj|�tj�|_t|j�|_dS)N)r�r�r,)	r�rqr�	threadingZLock�
write_lockr��default_request_handler�receiver)rvr�r�r-r-r.rqLs

zRpcChannel.__init__cCsd|j|j|jfS)Nz channel: name=%s addr=%s type=%s)r�r,r�)rvr-r-r.rxRszRpcChannel.__str__cCs|jj�dS)N)r�acquire)rvr-r-r.�acquire_write_lockUszRpcChannel.acquire_write_lockcCs|jj�dS)N)r�release)rvr-r-r.�release_write_lockXszRpcChannel.release_write_lockcCs
||_dS)N)r�)rvr�r-r-r.�set_channel_type[szRpcChannel.set_channel_typecCs|jS)N)r�)rvr-r-r.�get_channel_type^szRpcChannel.get_channel_typerr�cCs�td|j�|j�|jjdkr&dS|jjdk	r�y(|jjjtj�|jjj�d|j_Wn,tjk
r�}zd|j_WYdd}~XnX|j	j
||tjB||�|j
�dS)Nzclose_connection: %s)rr,rr�Zshutdownr#Z	SHUT_RDWR�closer�r�ryrr�r�)rvr�r�rsrtr�r-r-r.r�aszRpcChannel.close_connectioncCs*|jj|d�}|dkrdSt||d�}|S)N)rr��getattr)rvrGrHZhandler_objr�r-r-r.�get_method_implementationrs
z$RpcChannel.get_method_implementationcGsZt|j�t|�kr0tjtjdt|�|f�dSt||f|��}t|||�}|j|�dS)Nz3emit_rpc() arg length=%s does not match rpc_def(%s))r0rPr�r�rdrF�	send_data)rvrDrErVrTZrpc_xmlZrpc_datar-r-r.r�yszRpcChannel.emit_rpccCs\|jjtj@sdS|j�y`d}xV|t|�krv|jjjt	||d�d��}|dkrl|j
tj�tt
|jd��||}q"WWn�tjk
r�}z.tjtjd|j�|j�|jjtj�dSd}~Xnztjk
�r>}zZt|�\}}tjtjd|j|f�|j�|tjk�rtj}ntj}|j
|d||�dSd}~XnX|jjdtj�|j�dS)NrzUTF-8)Zdetailzsocket timeout: (%s)z&could not send data on socket (%s): %s)r�rrrrkrr0r,r��send�bytesr�r2�ProgramErrorr�r#rr�r�rryrnr�r�r�r�rmr�)rvrZ	totalSentZsentr�r�r�r�r-r-r.r$�s6zRpcChannel.send_datac	CsNy�|j|�sdS|tj@r�y6|j|j�}|jd�}t|�dkrN|jtj	�dSWnnt
jk
r�}zPt|�\}}t
j
t
jd|j|f�|tjkr�tj	}ntj}|j|d||�dSd}~XnX|jjdtj�|jj|�Wnjtk
�rH}zLt
j
t
jd|jjt|�f�ddl}t|j��|jtjddt|��dSd}~XnXdS)	NFzutf-8rzsocket error (%s): %szexception %s: %srTr�)r�rr4Zrecv�socket_buf_size�decoder0r�rr2r#r�r�r�r�r,r�r�rmr�ryr�rr	r�r�r�r`r�r�r�)	rvr�r9rr�r�r�r�r�r-r-r.�handle_client_io�s6



zRpcChannel.handle_client_iocCsx|jj|d�}|dkr,tjtjd|�dStd|jj|||jj|jj	|f�t
|�\}}}||_||_|j
|�dS)Nz1handle_return(): rpc_id=%s not in async_rpc_cachez/%s.handle_return: rpc_id=%s type=%s %s.%s, {%s})r��popr�r�rr�r�rVrGrHr[rrr)rvrErDr>r�rGrHrTr-r-r.�
handle_return�s$zRpcChannel.handle_returncCs�|jdd�}|jdd�}td|jj|||f�|dks@|dkrR|j|||��n�|dk�r<t|�\}}}|j||�}|�ry@||�}	|	dkr�g}	tj||�}
|
j	�}|j
|d|f|	��WnFtk
�r}z(tj|�}
|j
|d|
||j
|j�WYdd}~XnXn4tj}d||jjf}tj|�}
|j
|d|
|||�n�|d	k�r�t|�\}}}|j||�}|�r�y||�Wn.tk
�r�}ztj|�}
WYdd}~XnXn4tj}d||jjf}tj|�}
|j
|d|
|||�ntd
|||f��dS)NrDrrEz2%s.default_request_handler: rpc_id=%s type=%s {%s}r�r�rHz,method '%s' is not implemented in class '%s'r�zunknown type(%s) for %s:%s)r�rr�r�r,r[r#rrNr�r�r'r�r�r�r�ZENOSYSr�)rvrr>rDrErGrHrTr�rZrpc_method_defr�r�Z
rpc_error_defr�r�r-r-r.r�sH

,


z"RpcChannel.default_request_handler)NN)rrrr�)r�r�r�rr/r(Zsocket_timeoutrqrxrrrr r�r#r�r$r*r,rr-r-r-r.rHs

"
c@s$eZdZdd�Zdd�Zdd�ZdS)r�cCs(||_||_d|_d|_g|_g|_dS)N)rVrDrrrr)rvrVrDr-r-r.rq�szAsyncRpc.__init__cCs|jj|�dS)N)rr%)rvr�r-r-r.�add_callbackszAsyncRpc.add_callbackcCs|jj|�dS)N)rr%)rvZerrbackr-r-r.�add_errback	szAsyncRpc.add_errbackN)r�r�r�rqr-r.r-r-r-r.r��sr�)N)=Z
__future__rrr�rMrr�r�r�Z
gi.repositoryrrr�r�r#r�r�typesZsetroubleshoot.configrZsetroubleshoot.errcodeZsetroubleshoot.xml_serializerr	Zsetroubleshoot.util�__all__rZcontent_length_rerr
rrrrrr;rCrFr[rdrZ
type_register�objectr�r`r/r�r�r�rr
rrr
rr�rr�rrr�r-r-r-r.�<module>s|




))Q
E<	
X.I@,5

Filemanager

Name Type Size Permission Actions
Plugin.cpython-36.opt-1.pyc File 5.11 KB 0644
Plugin.cpython-36.pyc File 5.11 KB 0644
__init__.cpython-36.opt-1.pyc File 113 B 0644
__init__.cpython-36.pyc File 113 B 0644
access_control.cpython-36.opt-1.pyc File 3.89 KB 0644
access_control.cpython-36.pyc File 3.89 KB 0644
analyze.cpython-36.opt-1.pyc File 22.17 KB 0644
analyze.cpython-36.pyc File 22.17 KB 0644
audit_data.cpython-36.opt-1.pyc File 27.42 KB 0644
audit_data.cpython-36.pyc File 27.42 KB 0644
avc_audit.cpython-36.opt-1.pyc File 12.36 KB 0644
avc_audit.cpython-36.pyc File 12.36 KB 0644
config.cpython-36.opt-1.pyc File 11.49 KB 0644
config.cpython-36.pyc File 11.49 KB 0644
email_alert.cpython-36.opt-1.pyc File 1.77 KB 0644
email_alert.cpython-36.pyc File 1.77 KB 0644
errcode.cpython-36.opt-1.pyc File 2.63 KB 0644
errcode.cpython-36.pyc File 2.63 KB 0644
html_util.cpython-36.opt-1.pyc File 5.25 KB 0644
html_util.cpython-36.pyc File 5.25 KB 0644
rpc.cpython-36.opt-1.pyc File 28.32 KB 0644
rpc.cpython-36.pyc File 28.32 KB 0644
rpc_interfaces.cpython-36.opt-1.pyc File 4.75 KB 0644
rpc_interfaces.cpython-36.pyc File 4.75 KB 0644
server.cpython-36.opt-1.pyc File 25.04 KB 0644
server.cpython-36.pyc File 25.04 KB 0644
serverconnection.cpython-36.opt-1.pyc File 5.24 KB 0644
serverconnection.cpython-36.pyc File 5.24 KB 0644
signature.cpython-36.opt-1.pyc File 28.08 KB 0644
signature.cpython-36.pyc File 28.08 KB 0644
util.cpython-36.opt-1.pyc File 25.73 KB 0644
util.cpython-36.pyc File 25.73 KB 0644
uuid.cpython-36.opt-1.pyc File 16.13 KB 0644
uuid.cpython-36.pyc File 16.13 KB 0644
xml_serialize.cpython-36.opt-1.pyc File 9.89 KB 0644
xml_serialize.cpython-36.pyc File 9.89 KB 0644