dec718acb6
New version with upstreamed changes from @edolstra :-)
69 lines
2.5 KiB
Diff
69 lines
2.5 KiB
Diff
Signed-off-by: Ramkumar Ramachandra <artag...@gmail.com>
|
|
---
|
|
Ramkumar Ramachandra wrote:
|
|
> $ ./test-id128
|
|
> random: a08ea8ed34594d4bbd953dd182ec86f9
|
|
> Assertion 'sd_id128_get_machine(&id) == 0' failed at
|
|
> src/test/test-id128.c:41, function main(). Aborting.
|
|
> [1] 8017 abort (core dumped) ./test-id128
|
|
|
|
Okay, this test fails because I don't have a /etc/machine-id -- I
|
|
thought systemd is supposed to create it? However, from the logic in
|
|
src/core/machine-id-setup.c, it looks like although open() is called
|
|
with O_CREAT on /etc/machine-id, systemd barfs if the file isn't
|
|
present. How about changing this?
|
|
|
|
src/core/machine-id-setup.c | 12 +++++-------
|
|
src/test/test-id128.c | 6 ++++--
|
|
2 files changed, 9 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c
|
|
index 7f4c23b..3f21d58 100644
|
|
--- a/src/core/machine-id-setup.c
|
|
+++ b/src/core/machine-id-setup.c
|
|
@@ -168,12 +168,8 @@ int machine_id_setup(void) {
|
|
writable = true;
|
|
else {
|
|
fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
|
|
- if (fd < 0) {
|
|
- umask(m);
|
|
- log_error("Cannot open /etc/machine-id: %m");
|
|
- return -errno;
|
|
- }
|
|
-
|
|
+ if (fd < 0)
|
|
+ goto generate;
|
|
writable = false;
|
|
}
|
|
|
|
@@ -192,7 +188,9 @@ int machine_id_setup(void) {
|
|
}
|
|
}
|
|
|
|
- /* Hmm, so, the id currently stored is not useful, then let's
|
|
+generate:
|
|
+ /* Hmm, so, either /etc/machine-id doesn't exist, the id
|
|
+ * currently stored is not useful, then let's
|
|
* generate one */
|
|
|
|
r = generate(id);
|
|
diff --git a/src/test/test-id128.c b/src/test/test-id128.c
|
|
index bfd743e..60902d0 100644
|
|
--- a/src/test/test-id128.c
|
|
+++ b/src/test/test-id128.c
|
|
@@ -38,8 +38,10 @@ int main(int argc, char *argv[]) {
|
|
assert_se(sd_id128_from_string(t, &id2) == 0);
|
|
assert_se(sd_id128_equal(id, id2));
|
|
|
|
- assert_se(sd_id128_get_machine(&id) == 0);
|
|
- printf("machine: %s\n", sd_id128_to_string(id, t));
|
|
+ if (sd_id128_get_machine(&id) < 0)
|
|
+ printf("machine: run systemd-machine-id-setup first\n");
|
|
+ else
|
|
+ printf("machine: %s\n", sd_id128_to_string(id, t));
|
|
|
|
assert_se(sd_id128_get_boot(&id) == 0);
|
|
printf("boot: %s\n", sd_id128_to_string(id, t));
|
|
--
|
|
1.7.8.1.362.g5d6df.dirty
|