From: Lennart Poettering Date: Mon, 4 Mar 2024 12:04:20 +0000 (+0100) Subject: hostnamectl: gracefully handle old hostnamed replies to GetHardwareSerial() X-Git-Tag: v256-rc1~656^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F31615%2Fhead;p=thirdparty%2Fsystemd.git hostnamectl: gracefully handle old hostnamed replies to GetHardwareSerial() Old versions of hostnamed used to propagate ENODEV/ENOENT as-is. Bad idea. This was fixed in 171ddae1a122e9c97b4ef12ccb2d29e1ba7a318a, but let's handle this gracefully in hostnamectl. --- diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c index 5e1cbd373d6..d1c4d476f66 100644 --- a/src/hostname/hostnamectl.c +++ b/src/hostname/hostnamectl.c @@ -454,7 +454,8 @@ static int show_all_names(sd_bus *bus) { &error, BUS_ERROR_NO_HARDWARE_SERIAL, SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED, - SD_BUS_ERROR_UNKNOWN_METHOD) ? LOG_DEBUG : LOG_WARNING, + SD_BUS_ERROR_UNKNOWN_METHOD) || + ERRNO_IS_DEVICE_ABSENT(r) ? LOG_DEBUG : LOG_WARNING, /* old hostnamed used to send ENOENT/ENODEV back to client as is, handle that gracefully */ r, "Failed to query hardware serial, ignoring: %s", bus_error_message(&error, r)); else { r = sd_bus_message_read_basic(hardware_serial_reply, 's', &info.hardware_serial);