diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/migration-scripts/nat/6-to-7 | 8 | ||||
| -rwxr-xr-x | src/op_mode/dhcp.py | 10 | ||||
| -rwxr-xr-x | src/validators/bgp-large-community-list | 8 | 
3 files changed, 14 insertions, 12 deletions
diff --git a/src/migration-scripts/nat/6-to-7 b/src/migration-scripts/nat/6-to-7 index b5f6328ef..a2e735394 100755 --- a/src/migration-scripts/nat/6-to-7 +++ b/src/migration-scripts/nat/6-to-7 @@ -21,6 +21,7 @@  # to  #   'set nat [source|destination] rule X [inbound-interface|outbound interface] name <iface>'  #   'set nat [source|destination] rule X [inbound-interface|outbound interface] group <iface_group>' +# Also remove command if interface == any  from sys import argv,exit  from vyos.configtree import ConfigTree @@ -56,8 +57,11 @@ for direction in ['source', 'destination']:              if config.exists(base + [iface]):                  if config.exists(base + [iface, 'interface-name']):                      tmp = config.return_value(base + [iface, 'interface-name']) -                    config.delete(base + [iface, 'interface-name']) -                    config.set(base + [iface, 'name'], value=tmp) +                    if tmp != 'any': +                        config.delete(base + [iface, 'interface-name']) +                        config.set(base + [iface, 'name'], value=tmp) +                    else: +                        config.delete(base + [iface])  try:      with open(file_name, 'w') as f: diff --git a/src/op_mode/dhcp.py b/src/op_mode/dhcp.py index bd2c522ca..a9271ea79 100755 --- a/src/op_mode/dhcp.py +++ b/src/op_mode/dhcp.py @@ -102,11 +102,11 @@ def _get_raw_server_leases(family='inet', pool=None, sorted=None, state=[], orig          if family == 'inet':              data_lease['mac'] = lease['hwaddr'] -            data_lease['start'] = lease['start_timestamp'] +            data_lease['start'] = lease['start_timestamp'].timestamp()              data_lease['hostname'] = lease['hostname']          if family == 'inet6': -            data_lease['last_communication'] = lease['start_timestamp'] +            data_lease['last_communication'] = lease['start_timestamp'].timestamp()              data_lease['iaid_duid'] = _format_hex_string(lease['duid'])              lease_types_long = {'0': 'non-temporary', '1': 'temporary', '2': 'prefix delegation'}              data_lease['type'] = lease_types_long[lease['lease_type']] @@ -123,7 +123,7 @@ def _get_raw_server_leases(family='inet', pool=None, sorted=None, state=[], orig          # Do not add old leases          if data_lease['remaining'] != '' and data_lease['pool'] in pool and data_lease['state'] != 'free': -            if not state or data_lease['state'] in state: +            if not state or state == 'all' or data_lease['state'] in state:                  data.append(data_lease)          # deduplicate @@ -151,7 +151,7 @@ def _get_formatted_server_leases(raw_data, family='inet'):              ipaddr = lease.get('ip')              hw_addr = lease.get('mac')              state = lease.get('state') -            start = lease.get('start').timestamp() +            start = lease.get('start')              start =  _utc_to_local(start).strftime('%Y/%m/%d %H:%M:%S')              end = lease.get('end')              end =  _utc_to_local(end).strftime('%Y/%m/%d %H:%M:%S') if end else '-' @@ -168,7 +168,7 @@ def _get_formatted_server_leases(raw_data, family='inet'):          for lease in raw_data:              ipaddr = lease.get('ip')              state = lease.get('state') -            start = lease.get('last_communication').timestamp() +            start = lease.get('last_communication')              start =  _utc_to_local(start).strftime('%Y/%m/%d %H:%M:%S')              end = lease.get('end')              end =  _utc_to_local(end).strftime('%Y/%m/%d %H:%M:%S') diff --git a/src/validators/bgp-large-community-list b/src/validators/bgp-large-community-list index 80112dfdc..9ba5b27eb 100755 --- a/src/validators/bgp-large-community-list +++ b/src/validators/bgp-large-community-list @@ -1,6 +1,6 @@  #!/usr/bin/env python3  # -# Copyright (C) 2021 VyOS maintainers and contributors +# Copyright (C) 2021-2023 VyOS maintainers and contributors  #  # This program is free software; you can redistribute it and/or modify  # it under the terms of the GNU General Public License version 2 or later as @@ -17,9 +17,8 @@  import re  import sys -from vyos.template import is_ipv4 -  pattern = '(.*):(.*):(.*)' +allowedChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '+', '*', '?', '^', '$', '(', ')', '[', ']', '{', '}', '|', '\\', ':', '-' }  if __name__ == '__main__':      if len(sys.argv) != 2: @@ -29,8 +28,7 @@ if __name__ == '__main__':      if not len(value) == 3:          sys.exit(1) -    if not (re.match(pattern, sys.argv[1]) and -           (is_ipv4(value[0]) or value[0].isdigit()) and (value[1].isdigit() or value[1] == '*')): +    if not (re.match(pattern, sys.argv[1]) and set(sys.argv[1]).issubset(allowedChars)):          sys.exit(1)      sys.exit(0)  | 
