]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-id128: introduce ERRNO_IS_NEG_MACHINE_ID_UNSET
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 9 Aug 2023 15:51:24 +0000 (17:51 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 16 Aug 2023 10:52:56 +0000 (12:52 +0200)
src/boot/bootctl-install.c
src/kernel-install/kernel-install.c
src/libsystemd/sd-id128/id128-util.h
src/test/test-condition.c

index 7e85c2f08e2612f4572fb6d9415a885d4d1f19ec..ca14564a8e82bfdbae72c94b3118b9abbdd58145 100644 (file)
@@ -27,12 +27,10 @@ static int load_etc_machine_id(void) {
         int r;
 
         r = sd_id128_get_machine(&arg_machine_id);
-        if (r < 0) {
-                if (ERRNO_IS_MACHINE_ID_UNSET(r)) /* Not set or empty */
-                        return 0;
-
+        if (ERRNO_IS_NEG_MACHINE_ID_UNSET(r)) /* Not set or empty */
+                return 0;
+        if (r < 0)
                 return log_error_errno(r, "Failed to get machine-id: %m");
-        }
 
         log_debug("Loaded machine ID %s from /etc/machine-id.", SD_ID128_TO_STRING(arg_machine_id));
         return 0;
index 7de62f3ba410a84ef9c4469bd456b1498ccf2de8..abd6e2fdce1a73e37675803803a2a92f5fdf8f33 100644 (file)
@@ -448,11 +448,10 @@ static int context_load_machine_id(Context *c) {
         assert(c);
 
         r = id128_get_machine_at(c->rfd, &c->machine_id);
-        if (r < 0) {
-                if (ERRNO_IS_MACHINE_ID_UNSET(r))
-                        return 0;
+        if (ERRNO_IS_NEG_MACHINE_ID_UNSET(r))
+                return 0;
+        if (r < 0)
                 return log_error_errno(r, "Failed to load machine ID from /etc/machine-id: %m");
-        }
 
         log_debug("MACHINE_ID=%s set via /etc/machine-id.", SD_ID128_TO_STRING(c->machine_id));
         return 1; /* loaded */
index 7bcbd8e55840cec02bfed6f2c8f6ef3dfd11cccb..bd3e201361716f463104108e565e6adf671173b1 100644 (file)
@@ -6,6 +6,7 @@
 
 #include "sd-id128.h"
 
+#include "errno-util.h"
 #include "hash-funcs.h"
 #include "macro.h"
 
@@ -45,8 +46,9 @@ sd_id128_t id128_make_v4_uuid(sd_id128_t id);
 int id128_get_product(sd_id128_t *ret);
 
 /* A helper to check for the three relevant cases of "machine ID not initialized" */
-#define ERRNO_IS_MACHINE_ID_UNSET(r)            \
-        IN_SET(abs(r),                          \
-               ENOENT,                          \
-               ENOMEDIUM,                       \
-               ENOPKG)
+#define ERRNO_IS_NEG_MACHINE_ID_UNSET(r)        \
+        IN_SET(r,                               \
+               -ENOENT,                         \
+               -ENOMEDIUM,                      \
+               -ENOPKG)
+_DEFINE_ABS_WRAPPER(MACHINE_ID_UNSET);
index 6d57ba8da9eb10083c2689eeb7f3e4980b5c5a4a..5505d6c8e2a49e4382a2b34a0e40e1616fb703d9 100644 (file)
@@ -251,7 +251,7 @@ TEST(condition_test_host) {
         int r;
 
         r = sd_id128_get_machine(&id);
-        if (r < 0 && ERRNO_IS_MACHINE_ID_UNSET(r))
+        if (ERRNO_IS_NEG_MACHINE_ID_UNSET(r))
                 return (void) log_tests_skipped("/etc/machine-id missing");
         assert_se(r >= 0);