OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
exabgp
/
configuration
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
__init__.py
0 bytes
03/13/2021 04:30:48 PM
rw-r--r--
📁
__pycache__
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📁
announce
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
capability.py
3.08 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
check.py
10.11 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
configuration.py
21.04 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
core
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
environment.py
11.85 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
flow
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📁
l2vpn
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📁
neighbor
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📁
operational
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
parser.py
2.92 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
process
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
setup.py
10.63 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
static
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📁
template
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
usage.py
4.12 KB
03/13/2021 04:30:48 PM
rw-r--r--
Editing: parser.py
Close
# encoding: utf-8 """ generic/parser.py Created by Thomas Mangin on 2015-06-04. Copyright (c) 2009-2017 Exa Networks. All rights reserved. License: 3-clause BSD. (See the COPYRIGHT file) """ import socket from exabgp.bgp.message.open.asn import ASN from exabgp.protocol.ip import IP from exabgp.protocol.ip import IPRange def string(tokeniser): return tokeniser() def boolean(tokeniser, default): status = tokeniser().lower() if not status: return default if status in ('true', 'enable', 'enabled'): return True if status in ('false', 'disable', 'disabled'): return False raise ValueError('invalid value (%s) for a boolean' % status) def auto_boolean(tokeniser, default): status = tokeniser().lower() if not status: return default if status in ('true', 'enable', 'enabled'): return True if status in ('false', 'disable', 'disabled'): return False if status in ('auto',): return None raise ValueError('invalid value (%s) for a boolean' % status) def port(tokeniser): if not tokeniser.tokens: raise ValueError('a port number is required') value = tokeniser() try: return int(value) except ValueError: raise ValueError('"%s" is an invalid port' % value) if value < 0: raise ValueError('the port must be positive') if value >= pow(2, 16): raise ValueError('the port must be smaller than %d' % pow(2, 16)) return value def auto_asn(tokeniser, value=None): if value is None: if not tokeniser.tokens: raise ValueError("an asn or 'auto' is required") if tokeniser.peek() == 'auto': tokeniser() return None return asn(tokeniser) def asn(tokeniser, value=None): if value is None: if not tokeniser.tokens: raise ValueError('an asn is required') value = tokeniser() try: if value.count('.'): high, low = value.split('.', 1) as_number = (int(high) << 16) + int(low) else: as_number = int(value) return ASN(as_number) except ValueError: raise ValueError('"%s" is an invalid ASN' % value) def peer_ip(tokeniser): if not tokeniser.tokens: raise ValueError('an ip address is required') value = tokeniser() if '/' in value: value, mask = value.split('/', 1) else: # XXX: This only works as no port are allowed, improve mask = '128' if ':' in value else '32' try: return IPRange.create(value, mask) except (IndexError, ValueError, socket.error): raise ValueError('"%s" is an invalid IP address' % value) def ip(tokeniser): if not tokeniser.tokens: raise ValueError('an ip address is required') value = tokeniser() try: return IP.create(value) except (IndexError, ValueError, socket.error): raise ValueError('"%s" is an invalid IP address' % value)