checkpoint: preserve in-memory state of connections
If a connection is in-memory (i.e. has flag "unsaved"), after a
checkpoint and rollback it can be wrongly persisted to disk:
- if the connection was modified and written to disk after the
rollback, during the rollback we update it again with persist mode
"keep", which keeps it on disk;
- if the connection was deleted after the rollback, during the
rollback we add it again with persist mode "to-disk".
Instead, remember whether the connection had the "unsaved" flag set
and try to restore the previous state.
However, this is not straightforward as there are 4 different possible
states for the settings connection: persistent; in-memory only;
in-memory shadowing a persistent file; in-memory shadowing a detached
persistent file (i.e. the deletion of the connection doesn't delete
the persistent file). Handle all those cases.
Fixes: 3e09aed2a0
('checkpoint: add create, rollback and destroy D-Bus API')
This commit is contained in:
2
NEWS
2
NEWS
@@ -15,6 +15,8 @@ USE AT YOUR OWN RISK. NOT RECOMMENDED FOR PRODUCTION USE!
|
||||
visible in nmcli via "nmcli -f all device show $DEV".
|
||||
* Deprecated 802-11-wireless and 802-11-wired property 'mac-address-blacklist'
|
||||
and introduced the 'mac-address-denylist' property.
|
||||
* Properly restore in-memory connection profiles during the rollback
|
||||
of a checkpoint.
|
||||
* Fix detection of 6 GHz band capability for WiFi devices
|
||||
* Allow IPv6 SLAAC and static IPv6 DNS server assignment for modem broadband
|
||||
when IPv6 device address was not explicitly passed on by ModemManager
|
||||
|
Reference in New Issue
Block a user