sysupdated: Register known error types

This fixes a bug introduced during review of sysupdated. Originally,
we just returned EALREADY verbatim to signify that the target is
already up-to-date. Then we switched this to a proper error
(org.freedesktop.sysupdate1.NoCandidate) during review. But that now
maps to EIO, not EALREADY. Thus, whenever there's nothing to update,
updatectl would report I/O errors to the user, even though nothing
actually went wrong.
This commit is contained in:
Adrian Vovk
2024-08-30 21:43:44 -04:00
parent 6e1992166f
commit aa2e664e18
3 changed files with 7 additions and 2 deletions
+3 -2
View File
@@ -4,6 +4,7 @@
#include "sd-json.h"
#include "build-path.h"
#include "bus-common-errors.h"
#include "bus-error.h"
#include "bus-get-properties.h"
#include "bus-label.h"
@@ -1044,8 +1045,8 @@ static int target_method_update_finished_early(
/* Called when job finishes w/ a successful exit code, but before any work begins.
* This happens when there is no candidate (i.e. we're already up-to-date), or
* specified update is already installed. */
return sd_bus_error_setf(error, "org.freedesktop.sysupdate1.NoCandidate",
"Job exited successfully with no work to do, assume already updated");
return sd_bus_error_setf(error, BUS_ERROR_NO_UPDATE_CANDIDATE,
"Job exited successfully with no work to do, assume already updated");
}
static int target_method_update_detach(sd_bus_message *msg, const Job *j) {