diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2026-06-24 14:48:01 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-24 14:48:01 +0300 |
| commit | d3826867554eb9dbd30d5c8c781516a8afcfd96b (patch) | |
| tree | 5dfe88e7ff6454e6d0ff59653ee857bf8aa9c9ee /src/conf_mode | |
| parent | e0114625c08a2a9826822958f53724995580716d (diff) | |
| parent | 66d984ae1b25928335650d04a28a497702ba8280 (diff) | |
| download | vyos-1x-d3826867554eb9dbd30d5c8c781516a8afcfd96b.tar.gz vyos-1x-d3826867554eb9dbd30d5c8c781516a8afcfd96b.zip | |
Merge pull request #5264 from rnavarro/fix/vti-updown-db-flock-race
ipsec: T8975: lock vti-up-down state DB to prevent lost updates under concurrent rekey
Diffstat (limited to 'src/conf_mode')
| -rwxr-xr-x | src/conf_mode/vpn_ipsec.py | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/conf_mode/vpn_ipsec.py b/src/conf_mode/vpn_ipsec.py index 78d5cbe83..be8eeca13 100755 --- a/src/conf_mode/vpn_ipsec.py +++ b/src/conf_mode/vpn_ipsec.py @@ -50,7 +50,6 @@ from vyos.utils.network import interface_exists from vyos.utils.dict import dict_search from vyos.utils.dict import dict_search_args from vyos.utils.process import call -from vyos.utils.vti_updown_db import vti_updown_db_exists from vyos.utils.vti_updown_db import open_vti_updown_db_for_create_or_update from vyos.utils.vti_updown_db import remove_vti_updown_db from vyos import ConfigError @@ -900,8 +899,7 @@ def apply(ipsec): systemd_service = 'strongswan.service' if not ipsec or 'deleted' in ipsec: call(f'systemctl stop {systemd_service}') - if vti_updown_db_exists(): - remove_vti_updown_db() + remove_vti_updown_db() else: call(f'systemctl reload-or-restart {systemd_service}') if ipsec['enabled_vti_interfaces']: @@ -909,7 +907,7 @@ def apply(ipsec): db.removeAllOtherInterfaces(ipsec['enabled_vti_interfaces']) db.setPersistentInterfaces(ipsec['persistent_vti_interfaces']) db.commit(lambda interface: ipsec['vti_interface_dicts'][interface]) - elif vti_updown_db_exists(): + else: remove_vti_updown_db() if ipsec: if ipsec.get('nhrp_exists', False): |
