diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-02-11 07:18:11 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-11 07:18:11 +0100 |
commit | 403faebaba8f1cfcdd0212057e63ca21301d38b7 (patch) | |
tree | 27a532cba89913c2559c446a0aef02e56b67bc3b /src | |
parent | 01c8330ca446e9bc9dde6a59357a06ee6ed2b86c (diff) | |
parent | 230ac0a202acd7ae9ad9bccb9e777ee5a0e0b7b7 (diff) | |
download | vyos-1x-403faebaba8f1cfcdd0212057e63ca21301d38b7.tar.gz vyos-1x-403faebaba8f1cfcdd0212057e63ca21301d38b7.zip |
Merge pull request #1214 from sever-sever/T3686
openvpn: T3686: Fix for check local-address in script and tmpl
Diffstat (limited to 'src')
-rwxr-xr-x | src/conf_mode/interfaces-openvpn.py | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/conf_mode/interfaces-openvpn.py b/src/conf_mode/interfaces-openvpn.py index 3b8fae710..242fae9fb 100755 --- a/src/conf_mode/interfaces-openvpn.py +++ b/src/conf_mode/interfaces-openvpn.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # -# Copyright (C) 2019-2021 VyOS maintainers and contributors +# Copyright (C) 2019-2022 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 @@ -225,11 +225,12 @@ def verify(openvpn): if 'local_address' not in openvpn and 'is_bridge_member' not in openvpn: raise ConfigError('Must specify "local-address" or add interface to bridge') - if len([addr for addr in openvpn['local_address'] if is_ipv4(addr)]) > 1: - raise ConfigError('Only one IPv4 local-address can be specified') + if 'local_address' in openvpn: + if len([addr for addr in openvpn['local_address'] if is_ipv4(addr)]) > 1: + raise ConfigError('Only one IPv4 local-address can be specified') - if len([addr for addr in openvpn['local_address'] if is_ipv6(addr)]) > 1: - raise ConfigError('Only one IPv6 local-address can be specified') + if len([addr for addr in openvpn['local_address'] if is_ipv6(addr)]) > 1: + raise ConfigError('Only one IPv6 local-address can be specified') if openvpn['device_type'] == 'tun': if 'remote_address' not in openvpn: @@ -268,7 +269,7 @@ def verify(openvpn): if dict_search('remote_host', openvpn) in dict_search('remote_address', openvpn): raise ConfigError('"remote-address" and "remote-host" can not be the same') - if openvpn['device_type'] == 'tap': + if openvpn['device_type'] == 'tap' and 'local_address' in openvpn: # we can only have one local_address, this is ensured above v4addr = None for laddr in openvpn['local_address']: |