Your IP : 216.73.216.224


Current Path : /lib/python3/dist-packages/iotop/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/iotop/__pycache__/netlink.cpython-38.pyc

U

$�DYy�@s�dZddlZddlZddlZzDe�ejejd�Ze�d�[dd�Zdd�Z	dd	�Z
d9dd�ZWn�ejk
�rz.ddl
Z
d
d�Zdd�Z	dd	�Z
d:dd�ZWn\ek
�r�ddlZe�d�ZGdd�dej�Zdd�Zdd�Z	dd	�Z
d;dd�ZYnXYnXdZdZdZdZdZdZdZdZdZGdd�d�ZGdd �d e�ZGd!d"�d"e�ZGd#d$�d$e�Z Gd%d&�d&e�Z!Gd'd(�d(e�Z"dZ#dZ$dZ%dZ&dZ'd)Z(d*Z)d+Z*dZ+d,Z,d-Z-d.Z.d/Z/d0Z0d1Z1d2Z2dZ3Gd3d4�d4�Z4Gd5d6�d6�Z5d7d8�Z6dS)<z�
Netlink message generation/parsing

Copyright 2007        Johannes Berg <johannes@sipsolutions.net>

GPLv2+; See copying for details.
�N)rrcCs|�|�dS�N)�bind��
descriptor�addr�r�//usr/lib/python3/dist-packages/iotop/netlink.py�_nl_bindsr	cCs|��Sr)�getsockname�rrrr�_nl_getsocknamesrcCs|�|�dSr)�send�r�msgrrr�_nl_sendsr�@cCs
|�|�Sr)�recvfrom�r�bufsrrr�_nl_recvsrcCst�|��|d�dS�N�)�_netlinkr�filenorrrrr	#scCst�|���Sr)rr
rrrrrr&scCst�|��|�dSr)rr
rrrrrr)scCst�|��|�Sr)rrrrrrrr,sc@s0eZdZdejfdejfdejfdejfgZdS)�SOCKADDR_NLZ	nl_familyZnl_pad�nl_pid�	nl_groupsN)�__name__�
__module__�__qualname__�ctypesZc_ushort�c_intZ_fields_rrrrr4s
�rcCs2ttjdt��d�}t�|��t�	|�t�
|��S�Nr)r�socket�
AF_NETLINK�os�getpid�libcrrr �pointer�sizeofrrrrr	:s

�cCsHtdddd�}t�t�|��}t�|��t�|�t�|��|j|j	fSr")
rr r!r)r'r
rr(rr)rr�lenrrrr@s
�cCst�|��|t|�d�Sr")r'r
rr*rrrrrHsc
Csntdddd�}t�t�|��}t�|�}t�|��||dt�|�t�|��}t�	t�|�|�}||j
|jffSr")rr r!r)Zcreate_string_bufferr'rrr(Z	string_atrr)rrrr*Zbuf�rZretrrrrKs

�r�����c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�AttrcGs,||_t|�r"tj|f|��|_n||_dSr)�typer*�struct�pack�data)�self�	attr_typer5�valuesrrr�__init__gsz
Attr.__init__cCsJt�dt|j�d|j�}t|j�}|ddd@|}||jd|S)N�HHr-r����)r3r4r*r5r2)r6�hdr�lengthZpadrrr�_dumpns
z
Attr._dumpcCsd|jt|j�fS)Nz<Attr type %d, data "%s">)r2�reprr5�r6rrr�__repr__tsz
Attr.__repr__cCst�d|j�dS)N�Hr�r3�unpackr5rArrr�u16wszAttr.u16cCst�d|j�dS)N�hrrDrArrr�s16zszAttr.s16cCst�d|j�dS)N�IrrDrArrr�u32}szAttr.u32cCst�d|j�dS)N�irrDrArrr�s32�szAttr.s32cCs|jSr)r5rArrr�str�szAttr.strcCs|j�d�dS)N�r)r5�splitrArrr�nulstr�szAttr.nulstrcCs
t|j�Sr)�parse_attributesr5rArrr�nested�szAttr.nestedN)
rrrr9r?rBrFrHrJrLrMrPrRrrrrr1fsr1c@seZdZdd�ZdS)�StrAttrcCs"t�||dt|�|�d��dS)Nz%ds�utf-8�r1r9r*�encode�r6r7r5rrrr9�szStrAttr.__init__N�rrrr9rrrrrS�srSc@seZdZdd�ZdS)�
NulStrAttrcCs$t�||dt|�|�d�d�dS)Nz%dsBrTrrUrWrrrr9�s
�zNulStrAttr.__init__NrXrrrrrY�srYc@seZdZdd�ZdS)�U32AttrcCst�||d|�dS)NrI�r1r9�r6r7�valrrrr9�szU32Attr.__init__NrXrrrrrZ�srZc@seZdZdd�ZdS)�U8AttrcCst�||d|�dS)N�Br[r\rrrr9�szU8Attr.__init__NrXrrrrr^�sr^c@seZdZdd�Zdd�ZdS)�NestedcCs||_||_dSr)�attrsr2)r6r7rarrrr9�szNested.__init__cCsLg}|jD]}|�|���q
d�|�}t|�}t�d|d|j�}||S)N�r:r-)ra�appendr?�joinr*r3r4r2)r6�contents�attrr>r=rrrr?�s

zNested._dumpN)rrrr9r?rrrrr`�sr`����	�
���
��c@s&eZdZd
dd�Zdd�Zdd	�ZdS)�Messager���NcCs^||_||_||_d|_|pg}t|t�rTg}|D]}|�|���q2d�|�|_	n||_	dS)Nrr�)
r2�flags�seq�pid�
isinstance�listrcr?rd�payload)r6�msg_typertruryrerfrrrr9�s
zMessage.__init__cCsZ|jdkr|��|_|j|_t|j�}t�d|d|j|j|j|j�}|�||j�dS)Nrr�IHHIIr0)	rurvr*ryr3r4r2rtr
)r6Zconnr>r=rrrr
�s


�zMessage.sendcCs d|j|j|j|jt|j�fS)Nz:<netlink.Message type=%d, pid=%d, seq=%d, flags=0x%x "%s">)r2rvrurtr@ryrArrrrB�s�zMessage.__repr__)rrrN)rrrr9r
rBrrrrrq�s
rqc@s.eZdZddd�Zdd�Zdd�Zd	d
�ZdS)�
ConnectionrNcCsnt�tjtj|�|_|j�tjtjd�|j�tjtjd�t|jd|f�t	|j�\|_
|_d|_||_
dS)Nir)r#r$�SOCK_RAWrZ
setsockoptZ
SOL_SOCKETZ	SO_SNDBUFZ	SO_RCVBUFr	rrv�groups�_seqZ
unexpected)r6Znltyper~Zunexpected_msg_handlerrrrr9�s�zConnection.__init__cCst|j|�dSr)rr)r6rrrrr
�szConnection.sendcCs�t|j�\}\}}t�d|dd��\}}}}}t||||dd��}	||	_|	jtkr�t�d|	jdd��d}
|
dkr�t	dt
�|
�|
f�}|
|_|�|	S)Nr{r0rKr-rzNetlink error: %s (%d))
rrr3rErqrvr2�NLMSG_ERRORry�OSErrorr%�strerror�errno)r6reZnlpidZnlgrpsZmsglenrzrtrurvrr��errrrr�recv�s 
�
�zConnection.recvcCs|jd7_|jSr)rrArrrruszConnection.seq)rN)rrrr9r
r�rurrrrr|�s

r|cCs\i}t|�rXt�d|dd��\}}t||d|��||<|ddd@}||d�}q|S)Nr:r-rr;)r*r3rEr1)r5raZattr_lenr7rrrrQsrQ)r)r)r)7�__doc__r%r#r3r$r}Z
_dummysockrr	rrr�errorr�ImportErrorr ZCDLLr'Z	StructurerZ
NLM_F_REQUESTZNLM_F_MULTIZ	NLM_F_ACKZ
NLM_F_ECHOZ
NLMSG_NOOPr�Z
NLMSG_DONEZ
NLMSG_OVERRUNZNLMSG_MIN_TYPEr1rSrYrZr^r`Z
NETLINK_ROUTEZNETLINK_UNUSEDZNETLINK_USERSOCKZNETLINK_FIREWALLZNETLINK_INET_DIAGZ
NETLINK_NFLOGZNETLINK_XFRMZNETLINK_SELINUXZ
NETLINK_ISCSIZ
NETLINK_AUDITZNETLINK_FIB_LOOKUPZNETLINK_CONNECTORZNETLINK_NETFILTERZNETLINK_IP6_FWZNETLINK_DNRTMSGZNETLINK_KOBJECT_UEVENTZNETLINK_GENERICrqr|rQrrrr�<module>sz

'%