|
|
fc9aca |
From f2d099c8c534ee426dbc31a3a61fcf27c18b92d8 Mon Sep 17 00:00:00 2001
|
|
|
fc9aca |
From: Thomas Haller <thaller@redhat.com>
|
|
|
fc9aca |
Date: Thu, 11 May 2017 19:26:28 +0200
|
|
|
fc9aca |
Subject: [PATCH 1/2] core: cleanup logging reading device-state
|
|
|
fc9aca |
|
|
|
fc9aca |
- print string value instead of numerical "managed"
|
|
|
fc9aca |
- for missing state, print the same format. After all,
|
|
|
fc9aca |
some defaults apply and it is interesting to know what
|
|
|
fc9aca |
they are.
|
|
|
fc9aca |
|
|
|
fc9aca |
(cherry picked from commit 81008c90ac9832ade1c9783078823fdd45221225)
|
|
|
fc9aca |
(cherry picked from commit 8da225283b9977554a6b78e73dc03d22b8703027)
|
|
|
fc9aca |
---
|
|
|
fc9aca |
src/nm-config.c | 30 +++++++++++++-----------------
|
|
|
fc9aca |
1 file changed, 13 insertions(+), 17 deletions(-)
|
|
|
fc9aca |
|
|
|
fc9aca |
diff --git a/src/nm-config.c b/src/nm-config.c
|
|
|
fc9aca |
index 2cdf855..954cad7 100644
|
|
|
fc9aca |
--- a/src/nm-config.c
|
|
|
fc9aca |
+++ b/src/nm-config.c
|
|
|
fc9aca |
@@ -1873,6 +1873,13 @@ _nm_config_state_set (NMConfig *self,
|
|
|
fc9aca |
#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_PERM_HW_ADDR_FAKE "perm-hw-addr-fake"
|
|
|
fc9aca |
#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_CONNECTION_UUID "connection-uuid"
|
|
|
fc9aca |
|
|
|
fc9aca |
+NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_device_state_managed_type_to_str, NMConfigDeviceStateManagedType,
|
|
|
fc9aca |
+ NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT ("unknown"),
|
|
|
fc9aca |
+ NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNKNOWN, "unknown"),
|
|
|
fc9aca |
+ NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED, "unmanaged"),
|
|
|
fc9aca |
+ NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED, "managed"),
|
|
|
fc9aca |
+);
|
|
|
fc9aca |
+
|
|
|
fc9aca |
static NMConfigDeviceStateData *
|
|
|
fc9aca |
_config_device_state_data_new (int ifindex, GKeyFile *kf)
|
|
|
fc9aca |
{
|
|
|
fc9aca |
@@ -1968,27 +1975,16 @@ nm_config_device_state_load (int ifindex)
|
|
|
fc9aca |
|
|
|
fc9aca |
device_state = _config_device_state_data_new (ifindex, kf);
|
|
|
fc9aca |
|
|
|
fc9aca |
- if (kf) {
|
|
|
fc9aca |
- _LOGT ("device-state: read #%d (%s); managed=%d%s%s%s%s%s%s",
|
|
|
fc9aca |
- ifindex, path,
|
|
|
fc9aca |
- device_state->managed,
|
|
|
fc9aca |
- NM_PRINT_FMT_QUOTED (device_state->connection_uuid, ", connection-uuid=", device_state->connection_uuid, "", ""),
|
|
|
fc9aca |
- NM_PRINT_FMT_QUOTED (device_state->perm_hw_addr_fake, ", perm-hw-addr-fake=", device_state->perm_hw_addr_fake, "", ""));
|
|
|
fc9aca |
- } else {
|
|
|
fc9aca |
- _LOGT ("device-state: read #%d (%s); no persistent state",
|
|
|
fc9aca |
- ifindex, path);
|
|
|
fc9aca |
- }
|
|
|
fc9aca |
+ _LOGT ("device-state: %s #%d (%s); managed=%s%s%s%s%s%s%s",
|
|
|
fc9aca |
+ kf ? "read" : "miss",
|
|
|
fc9aca |
+ ifindex, path,
|
|
|
fc9aca |
+ _device_state_managed_type_to_str (device_state->managed),
|
|
|
fc9aca |
+ NM_PRINT_FMT_QUOTED (device_state->connection_uuid, ", connection-uuid=", device_state->connection_uuid, "", ""),
|
|
|
fc9aca |
+ NM_PRINT_FMT_QUOTED (device_state->perm_hw_addr_fake, ", perm-hw-addr-fake=", device_state->perm_hw_addr_fake, "", ""));
|
|
|
fc9aca |
|
|
|
fc9aca |
return device_state;
|
|
|
fc9aca |
}
|
|
|
fc9aca |
|
|
|
fc9aca |
-NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_device_state_managed_type_to_str, NMConfigDeviceStateManagedType,
|
|
|
fc9aca |
- NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT ("unknown"),
|
|
|
fc9aca |
- NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNKNOWN, "unknown"),
|
|
|
fc9aca |
- NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED, "unmanaged"),
|
|
|
fc9aca |
- NM_UTILS_LOOKUP_STR_ITEM (NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED, "managed"),
|
|
|
fc9aca |
-);
|
|
|
fc9aca |
-
|
|
|
fc9aca |
gboolean
|
|
|
fc9aca |
nm_config_device_state_write (int ifindex,
|
|
|
fc9aca |
NMConfigDeviceStateManagedType managed,
|
|
|
fc9aca |
--
|
|
|
fc9aca |
2.9.3
|
|
|
fc9aca |
|
|
|
fc9aca |
|
|
|
fc9aca |
From 41ff1247a2dcfd6c781cbce2fac12ab6ae657727 Mon Sep 17 00:00:00 2001
|
|
|
fc9aca |
From: Thomas Haller <thaller@redhat.com>
|
|
|
fc9aca |
Date: Thu, 11 May 2017 19:40:55 +0200
|
|
|
fc9aca |
Subject: [PATCH 2/2] core: fix reading device state file
|
|
|
fc9aca |
|
|
|
fc9aca |
For manged=unknown, we don't write the value to the
|
|
|
fc9aca |
device state keyfile. The results in an empty file,
|
|
|
fc9aca |
or at least, a keyfile that doesn't have device.managed
|
|
|
fc9aca |
set.
|
|
|
fc9aca |
|
|
|
fc9aca |
On read, we must treat a missing device.managed flag as
|
|
|
fc9aca |
unknown, and not as unmanaged. Otherwise, on restart
|
|
|
fc9aca |
a device becomes marked as explicitly unmanaged.
|
|
|
fc9aca |
|
|
|
fc9aca |
This was broken by commit 142ebb1 "core: only persist explicit managed
|
|
|
fc9aca |
state in device's state file", where we started conditionally
|
|
|
fc9aca |
to no longer write the managed state.
|
|
|
fc9aca |
|
|
|
fc9aca |
Reported-by: Michael Biebl <mbiebl@debian.org>
|
|
|
fc9aca |
Fixes: 142ebb10376ec592593f15b0359f38be89c97620
|
|
|
fc9aca |
(cherry picked from commit 348ffdec183ee198499dad1365906e8d16ff4122)
|
|
|
fc9aca |
(cherry picked from commit 33d3ec3b3e5d2e737afc8db6c64850e67db5c12d)
|
|
|
fc9aca |
---
|
|
|
fc9aca |
src/nm-config.c | 24 +++++++++++++-----------
|
|
|
fc9aca |
1 file changed, 13 insertions(+), 11 deletions(-)
|
|
|
fc9aca |
|
|
|
fc9aca |
diff --git a/src/nm-config.c b/src/nm-config.c
|
|
|
fc9aca |
index 954cad7..54ccf9a 100644
|
|
|
fc9aca |
--- a/src/nm-config.c
|
|
|
fc9aca |
+++ b/src/nm-config.c
|
|
|
fc9aca |
@@ -1894,21 +1894,23 @@ _config_device_state_data_new (int ifindex, GKeyFile *kf)
|
|
|
fc9aca |
nm_assert (ifindex > 0);
|
|
|
fc9aca |
|
|
|
fc9aca |
if (kf) {
|
|
|
fc9aca |
- gboolean managed;
|
|
|
fc9aca |
-
|
|
|
fc9aca |
- managed = nm_config_keyfile_get_boolean (kf,
|
|
|
fc9aca |
- DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE,
|
|
|
fc9aca |
- DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_MANAGED,
|
|
|
fc9aca |
- FALSE);
|
|
|
fc9aca |
- managed_type = managed
|
|
|
fc9aca |
- ? NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED
|
|
|
fc9aca |
- : NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED;
|
|
|
fc9aca |
-
|
|
|
fc9aca |
- if (managed) {
|
|
|
fc9aca |
+ switch (nm_config_keyfile_get_boolean (kf,
|
|
|
fc9aca |
+ DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE,
|
|
|
fc9aca |
+ DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_MANAGED,
|
|
|
fc9aca |
+ -1)) {
|
|
|
fc9aca |
+ case TRUE:
|
|
|
fc9aca |
+ managed_type = NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_MANAGED;
|
|
|
fc9aca |
connection_uuid = nm_config_keyfile_get_value (kf,
|
|
|
fc9aca |
DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE,
|
|
|
fc9aca |
DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_CONNECTION_UUID,
|
|
|
fc9aca |
NM_CONFIG_GET_VALUE_STRIP | NM_CONFIG_GET_VALUE_NO_EMPTY);
|
|
|
fc9aca |
+ break;
|
|
|
fc9aca |
+ case FALSE:
|
|
|
fc9aca |
+ managed_type = NM_CONFIG_DEVICE_STATE_MANAGED_TYPE_UNMANAGED;
|
|
|
fc9aca |
+ break;
|
|
|
fc9aca |
+ case -1:
|
|
|
fc9aca |
+ /* missing property in keyfile. */
|
|
|
fc9aca |
+ break;
|
|
|
fc9aca |
}
|
|
|
fc9aca |
|
|
|
fc9aca |
perm_hw_addr_fake = nm_config_keyfile_get_value (kf,
|
|
|
fc9aca |
--
|
|
|
fc9aca |
2.9.3
|
|
|
fc9aca |
|