diff --git a/src/core/manager-serialize.c b/src/core/manager-serialize.c index 6008e5655e..3c64755743 100644 --- a/src/core/manager-serialize.c +++ b/src/core/manager-serialize.c @@ -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;