mirror of
https://github.com/systemd/systemd.git
synced 2024-12-27 07:22:31 +03:00
Introduce bus_unit_check_load_state() helper
This function is used to check that a previous unit load succeed and returns 0 in this case. In the case the load failed, the function setup a bus error accordingly and returns -errno.
This commit is contained in:
parent
cf0f970fe1
commit
000a996dc4
@ -1251,3 +1251,20 @@ int bus_unit_set_properties(
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
int bus_unit_check_load_state(Unit *u, sd_bus_error *error) {
|
||||
|
||||
if (u->load_state == UNIT_LOADED)
|
||||
return 0;
|
||||
|
||||
/* Give a better description of the unit error when
|
||||
* possible. Note that in the case of UNIT_MASKED, load_error
|
||||
* is not set. */
|
||||
if (u->load_state == UNIT_MASKED)
|
||||
return sd_bus_error_setf(error, BUS_ERROR_UNIT_MASKED, "Unit is masked.");
|
||||
|
||||
if (u->load_state == UNIT_NOT_FOUND)
|
||||
return sd_bus_error_setf(error, BUS_ERROR_NO_SUCH_UNIT, "Unit not found.");
|
||||
|
||||
return sd_bus_error_set_errnof(error, u->load_error, "Unit is not loaded properly: %m.");
|
||||
}
|
||||
|
@ -37,3 +37,5 @@ int bus_unit_method_reset_failed(sd_bus_message *message, void *userdata, sd_bus
|
||||
int bus_unit_queue_job(sd_bus_message *message, Unit *u, JobType type, JobMode mode, bool reload_if_possible, sd_bus_error *error);
|
||||
int bus_unit_set_properties(Unit *u, sd_bus_message *message, UnitSetPropertiesMode mode, bool commit, sd_bus_error *error);
|
||||
int bus_unit_method_set_properties(sd_bus_message *message, void *userdata, sd_bus_error *error);
|
||||
|
||||
int bus_unit_check_load_state(Unit *u, sd_bus_error *error);
|
||||
|
Loading…
Reference in New Issue
Block a user