HEX
Server: LiteSpeed
System: Linux us-phx-web1284.main-hosting.eu 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: u300739242 (300739242)
PHP: 8.2.30
Disabled: system, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/exabgp/netlink/__pycache__/netlink.cpython-37.pyc
B

RP�em�@s�dZddlZddlZddlmZddlmZddlmZddlmZddl	m
Z
ddlmZdd	l
mZyeed
�Wnek
r�ed��YnXGdd
�d
e�ZdS)z�
netlink.py

Created by Thomas Mangin on 2015-03-31.
Copyright (c) 2009-2017 Exa Networks. All rights reserved.
License: 3-clause BSD. (See the COPYRIGHT file)
�N)�pack)�unpack)�calcsize)�
namedtuple)�NetLinkError)�Sequence)�
Attributes�
AF_NETLINKz;This module only works on unix version with netlink supportc@s�eZdZdZdZedd�Ze�ejej	e�Z
Gdd�de�ZGdd�de�Z
Gd	d
�d
e�Ze
jde
jdiZed
d��Zedd��Zeejdfdd��ZdS)�NetLinkTr�Messagez+format_type control_flags sequence pid datac@seZdZdZee�ZdS)zNetLink.HeaderZIHHIIN)�__name__�
__module__�__qualname__�PACKr�LEN�rr�G/opt/alt/python37/lib/python3.7/site-packages/exabgp/netlink/netlink.py�HeaderCsrc@seZdZdZdZdZdZdS)zNetLink.Command����N)rr
rZ
NLMSG_NOOP�NLMSG_ERROR�
NLMSG_DONE�
NLMSG_OVERRUNrrrr�CommandHsrc@s@eZdZdZdZdZdZdZdZeeBZ	dZ
dZdZdZ
dZd	S)
z
NetLink.Flagsrrr��iiiN)rr
rZ
NLM_F_REQUESTZNLM_F_MULTIZ	NLM_F_ACKZ
NLM_F_ECHOZ
NLM_F_ROOTZNLM_F_MATCHZ
NLM_F_DUMPZNLM_F_ATOMICZ
NLM_F_REPLACEZ
NLM_F_EXCLZNLM_F_CREATEZNLM_F_APPENDrrrr�FlagsNsrz
netlink errorznetlink overrunc	Cs@t�|�}|jjt|�t|�}t|jj|||||�||S)N)r�encoderr�lenrr)	�cls�format_type�sequence�
control_flags�pid�body�
attributes�attrs�lengthrrrres
zNetLink.encodec	csrxl|rlt|jj|d|jj��\}}}}}t|�|kr>td��|�||||||jj|��V||d�}qWdS)NzBuffer underrun)rrrrr r�format)r!�datar)r"r$r#r%rrr�decodeks$ zNetLink.decodeNc	cs�t�}t��}|dkri}|�||||td|�|�}|j�|�x�|j�d�}x||�|�D]n\}	}
}}}
||kr�|j	rxqZt
d��n.||kr�t
d��n|	|jkr�t
|j|	||��|	tj
jkr�t��|
VqZWqBWdS)NZBxxxi�	znetlink sequence mismatchznetlink pid mismatch)r�os�getpidrr�netlink�send�recvr,�_IGNORE_SEQ_FAULTSr�errorsr
rr�
StopIteration)r!r"r$�familyr'r#r%�message�responseZ
response_typeZresponse_flagsZresponse_sequenceZresponse_pidZ
response_datarrrr0ws(


zNetLink.send)rr
rr2�
NETLINK_ROUTErr*�socketr	�SOCK_RAWr/�objectrrrrrr3�classmethodrr,�	AF_UNSPECr0rrrrr
;s

r
)�__doc__r-r9�structrrr�collectionsrZexabgp.netlinkrZexabgp.netlink.sequencerZexabgp.netlink.attributesr�getattr�AttributeError�ImportErrorr;r
rrrr�<module>s"