Server : LiteSpeed System : Linux in-mum-web1112.main-hosting.eu 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64 User : u451330669 ( 451330669) PHP Version : 8.2.27 Disable Function : NONE Directory : /opt/alt/python311/lib/python3.11/site-packages/pyroute2/requests/ |
import socket
from pyroute2.netlink.rtnl.fibmsg import FR_ACT_NAMES, fibmsg
from .common import Index, IPRouteFilter, IPTargets, NLAKeyTransform
DEFAULT_FRA_PRIORITY = 32000
class RuleFieldFilter(IPTargets, Index, NLAKeyTransform):
_nla_prefix = fibmsg.prefix
class RuleIPRouteFilter(IPRouteFilter):
def set_action(self, context, value):
if isinstance(value, str):
return {
'action': FR_ACT_NAMES.get(
value, FR_ACT_NAMES.get('FR_ACT_' + value.upper(), value)
)
}
return {'action': value}
def finalize(self, context):
if self.command != 'dump':
if 'family' not in context:
context['family'] = socket.AF_INET
if 'priority' not in context:
context['priority'] = DEFAULT_FRA_PRIORITY
if 'table' in context and 'action' not in context:
context['action'] = 'to_tbl'
for key in ('src_len', 'dst_len'):
if context.get(key, None) is None and key[:3] in context:
context[key] = {socket.AF_INET6: 128, socket.AF_INET: 32}[
context['family']
]