From: Mike Yuan Date: Thu, 22 Jan 2026 18:25:53 +0000 (+0100) Subject: hostnamed: use INDEXES_TO_MASK where appropriate X-Git-Tag: v260-rc1~329^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5d2e9c2ad0c62ca9db9c5f3975bdaf4eb363c615;p=thirdparty%2Fsystemd.git hostnamed: use INDEXES_TO_MASK where appropriate Addresses https://github.com/systemd/systemd/pull/40367#discussion_r2714368627 --- diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index d2461981af2..f086fa577ad 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -71,12 +71,12 @@ typedef enum { /* Read from /etc/os-release (or /usr/lib/os-release) */ PROP_OS_PRETTY_NAME, + PROP_OS_FANCY_NAME, PROP_OS_CPE_NAME, PROP_OS_HOME_URL, PROP_OS_SUPPORT_END, PROP_OS_IMAGE_ID, PROP_OS_IMAGE_VERSION, - PROP_OS_FANCY_NAME, _PROP_MAX, _PROP_INVALID = -EINVAL, } HostProperty; @@ -110,6 +110,9 @@ static void context_reset(Context *c, uint64_t mask) { } } +#define context_reset_many(c, ...) \ + context_reset((c), INDEXES_TO_MASK(uint64_t, __VA_ARGS__)) + static void context_destroy(Context *c) { assert(c); @@ -133,9 +136,8 @@ static void context_read_etc_hostname(Context *c) { stat_inode_unmodified(&c->etc_hostname_stat, ¤t_stat)) return; - context_reset(c, - (UINT64_C(1) << PROP_STATIC_HOSTNAME) | - (UINT64_C(1) << PROP_STATIC_HOSTNAME_SUBSTITUTED_WILDCARDS)); + context_reset_many(c, PROP_STATIC_HOSTNAME, + PROP_STATIC_HOSTNAME_SUBSTITUTED_WILDCARDS); r = read_etc_hostname(/* path= */ NULL, /* substitute_wildcards= */ false, &c->data[PROP_STATIC_HOSTNAME]); if (r < 0) { @@ -166,16 +168,15 @@ static void context_read_machine_info(Context *c) { stat_inode_unmodified(&c->etc_machine_info_stat, ¤t_stat)) return; - context_reset(c, - (UINT64_C(1) << PROP_PRETTY_HOSTNAME) | - (UINT64_C(1) << PROP_ICON_NAME) | - (UINT64_C(1) << PROP_CHASSIS) | - (UINT64_C(1) << PROP_DEPLOYMENT) | - (UINT64_C(1) << PROP_LOCATION) | - (UINT64_C(1) << PROP_HARDWARE_VENDOR) | - (UINT64_C(1) << PROP_HARDWARE_MODEL) | - (UINT64_C(1) << PROP_HARDWARE_SKU) | - (UINT64_C(1) << PROP_HARDWARE_VERSION)); + context_reset_many(c, PROP_PRETTY_HOSTNAME, + PROP_ICON_NAME, + PROP_CHASSIS, + PROP_DEPLOYMENT, + PROP_LOCATION, + PROP_HARDWARE_VENDOR, + PROP_HARDWARE_MODEL, + PROP_HARDWARE_SKU, + PROP_HARDWARE_VERSION); r = parse_env_file(NULL, etc_machine_info(), "PRETTY_HOSTNAME", &c->data[PROP_PRETTY_HOSTNAME], @@ -205,14 +206,13 @@ static void context_read_os_release(Context *c) { stat_inode_unmodified(&c->etc_os_release_stat, ¤t_stat)) return; - context_reset(c, - (UINT64_C(1) << PROP_OS_PRETTY_NAME) | - (UINT64_C(1) << PROP_OS_CPE_NAME) | - (UINT64_C(1) << PROP_OS_HOME_URL) | - (UINT64_C(1) << PROP_OS_SUPPORT_END) | - (UINT64_C(1) << PROP_OS_IMAGE_ID) | - (UINT64_C(1) << PROP_OS_IMAGE_VERSION) | - (UINT64_C(1) << PROP_OS_FANCY_NAME)); + context_reset_many(c, PROP_OS_PRETTY_NAME, + PROP_OS_FANCY_NAME, + PROP_OS_CPE_NAME, + PROP_OS_HOME_URL, + PROP_OS_SUPPORT_END, + PROP_OS_IMAGE_ID, + PROP_OS_IMAGE_VERSION); r = parse_os_release(NULL, "PRETTY_NAME", &os_pretty_name,