]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
hostnamed: use INDEXES_TO_MASK where appropriate
authorMike Yuan <me@yhndnzj.com>
Thu, 22 Jan 2026 18:25:53 +0000 (19:25 +0100)
committerMike Yuan <me@yhndnzj.com>
Thu, 22 Jan 2026 19:49:38 +0000 (20:49 +0100)
Addresses https://github.com/systemd/systemd/pull/40367#discussion_r2714368627

src/hostname/hostnamed.c

index d2461981af20d60c258af069e7b557393f148494..f086fa577ad0b9ee769a25b924130d07aebd94de 100644 (file)
@@ -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, &current_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, &current_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, &current_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,