core/manager-serialize: serialize objective string

Follow-up for 8c15bf36e1

I just realized that we should not serialize the number
of internal enum, as that's subject to changes and such
changes would be hard to notice. Let's serialize strings
properly instead.
This commit is contained in:
Mike Yuan
2024-04-18 20:32:20 +08:00
parent 37ca2ccf33
commit 0292afabee
+6 -7
View File
@@ -109,6 +109,7 @@ int manager_serialize(
(void) serialize_usec(f, "pretimeout-watchdog-overridden", m->watchdog_overridden[WATCHDOG_PRETIMEOUT]);
(void) serialize_item(f, "pretimeout-watchdog-governor-overridden", m->watchdog_pretimeout_governor_overridden);
(void) serialize_item(f, "previous-objective", manager_objective_to_string(m->objective));
(void) serialize_item_format(f, "soft-reboots-count", "%u", m->soft_reboots_count);
for (ManagerTimestamp q = 0; q < _MANAGER_TIMESTAMP_MAX; q++) {
@@ -158,9 +159,6 @@ int manager_serialize(
(void) serialize_ratelimit(f, "dump-ratelimit", &m->dump_ratelimit);
(void) serialize_ratelimit(f, "reload-reexec-ratelimit", &m->reload_reexec_ratelimit);
if (m->objective >= 0 && m->objective < _MANAGER_OBJECTIVE_MAX)
(void) serialize_item_format(f, "previous-objective", "%u", (unsigned) m->objective);
bus_track_serialize(m->subscribed, f, "subscribed");
r = dynamic_user_serialize(m, f, fds);
@@ -533,12 +531,13 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
else
m->soft_reboots_count = n;
} else if ((val = startswith(l, "previous-objective="))) {
unsigned n;
ManagerObjective objective;
if (safe_atou(val, &n) < 0 || n >= _MANAGER_OBJECTIVE_MAX)
log_notice("Failed to parse objective '%s', ignoring.", val);
objective = manager_objective_from_string(val);
if (objective < 0)
log_notice("Failed to parse previous objective '%s', ignoring.", val);
else
m->previous_objective = n;
m->previous_objective = objective;
} else {
ManagerTimestamp q;