]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
ether-addr-util: drop redundant "addr" from struct hw_addr_data
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 9 Jun 2021 15:19:47 +0000 (00:19 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 9 Jun 2021 15:19:50 +0000 (00:19 +0900)
Also, this makes always specifiy "struct" for hw_addr_data.

15 files changed:
src/basic/ether-addr-util.c
src/basic/ether-addr-util.h
src/libsystemd/sd-netlink/netlink-message.c
src/libsystemd/sd-netlink/netlink-util.h
src/network/networkctl.c
src/network/networkd-address.c
src/network/networkd-dhcp4.c
src/network/networkd-dhcp6.c
src/network/networkd-ipv4ll.c
src/network/networkd-link.c
src/network/networkd-link.h
src/network/networkd-lldp-rx.c
src/network/networkd-lldp-tx.c
src/network/networkd-ndisc.c
src/network/networkd-radv.c

index 4bb655738454f7dcfd785529748dcf16ae09b5a1..289faaba1b65fc4ad134fa5df5e83dd97ca58995 100644 (file)
 #include "macro.h"
 #include "string-util.h"
 
-char* hw_addr_to_string(const hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]) {
+char* hw_addr_to_string(const struct hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]) {
         assert(addr);
         assert(buffer);
         assert(addr->length <= HW_ADDR_MAX_SIZE);
 
         for (size_t i = 0; i < addr->length; i++) {
-                sprintf(&buffer[3*i], "%02"PRIx8, addr->addr.bytes[i]);
+                sprintf(&buffer[3*i], "%02"PRIx8, addr->bytes[i]);
                 if (i < addr->length - 1)
                         buffer[3*i + 2] = ':';
         }
index 712c9277964829a05d22603a031c2b9e4e962a55..6ca54f6af9c8ca4a3d66e03ac5e5358a659e8d2c 100644 (file)
  * defines a macro of the same name with a much lower size. */
 #define HW_ADDR_MAX_SIZE 32
 
-union hw_addr_union {
-        struct ether_addr ether;
-        uint8_t infiniband[INFINIBAND_ALEN];
-        uint8_t bytes[HW_ADDR_MAX_SIZE];
-};
-
-typedef struct hw_addr_data {
-        union hw_addr_union addr;
+struct hw_addr_data {
         size_t length;
-} hw_addr_data;
+        union {
+                struct ether_addr ether;
+                uint8_t infiniband[INFINIBAND_ALEN];
+                uint8_t bytes[HW_ADDR_MAX_SIZE];
+        };
+};
 
 #define HW_ADDR_TO_STRING_MAX (3*HW_ADDR_MAX_SIZE)
-char* hw_addr_to_string(const hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]);
+char* hw_addr_to_string(const struct hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]);
 
 /* Use only as function argument, never stand-alone! */
 #define HW_ADDR_TO_STR(hw_addr) hw_addr_to_string((hw_addr), (char[HW_ADDR_TO_STRING_MAX]){})
 
-#define HW_ADDR_NULL ((const hw_addr_data){})
+#define HW_ADDR_NULL ((const struct hw_addr_data){})
 
 #define ETHER_ADDR_FORMAT_STR "%02X%02X%02X%02X%02X%02X"
 #define ETHER_ADDR_FORMAT_VAL(x) (x).ether_addr_octet[0], (x).ether_addr_octet[1], (x).ether_addr_octet[2], (x).ether_addr_octet[3], (x).ether_addr_octet[4], (x).ether_addr_octet[5]
index 22f8a4aa7390e8c156a344f209a4ff7e8ca88fc8..473d74b01a157939c86192816db52eb846c68c58 100644 (file)
@@ -494,7 +494,7 @@ int sd_netlink_message_append_ether_addr(sd_netlink_message *m, unsigned short t
         return 0;
 }
 
-int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const hw_addr_data *data) {
+int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const struct hw_addr_data *data) {
         int r;
 
         assert_return(m, -EINVAL);
@@ -506,7 +506,7 @@ int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, c
         if (r < 0)
                 return r;
 
-        r = add_rtattr(m, type, data->addr.bytes, data->length);
+        r = add_rtattr(m, type, data->bytes, data->length);
         if (r < 0)
                 return r;
 
@@ -886,7 +886,7 @@ int sd_netlink_message_read_ether_addr(sd_netlink_message *m, unsigned short typ
         return 0;
 }
 
-int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_addr_data *data) {
+int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, struct hw_addr_data *data) {
         int r;
         void *attr_data;
 
@@ -899,11 +899,11 @@ int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_
         r = netlink_message_read_internal(m, type, &attr_data, NULL);
         if (r < 0)
                 return r;
-        else if ((size_t) r > sizeof(union hw_addr_union))
+        else if (r > HW_ADDR_MAX_SIZE)
                 return -EIO;
 
         if (data) {
-                memcpy(data->addr.bytes, attr_data, r);
+                memcpy(data->bytes, attr_data, r);
                 data->length = r;
         }
 
index 059a5c665aa71b1c8bfc9066707d96c12da0c269..c676c07135e7ddc8cb01917f987bdb4c69abf0fe 100644 (file)
@@ -117,11 +117,11 @@ int rtnl_log_create_error(int r);
                                      userdata, description);            \
         })
 
-int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const hw_addr_data *data);
+int netlink_message_append_hw_addr(sd_netlink_message *m, unsigned short type, const struct hw_addr_data *data);
 int netlink_message_append_in_addr_union(sd_netlink_message *m, unsigned short type, int family, const union in_addr_union *data);
 int netlink_message_append_sockaddr_union(sd_netlink_message *m, unsigned short type, const union sockaddr_union *data);
 
-int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, hw_addr_data *data);
+int netlink_message_read_hw_addr(sd_netlink_message *m, unsigned short type, struct hw_addr_data *data);
 int netlink_message_read_in_addr_union(sd_netlink_message *m, unsigned short type, int family, union in_addr_union *data);
 
 void rtattr_append_attribute_internal(struct rtattr *rta, unsigned short type, const void *data, size_t data_length);
index 619ef91288de2e8dadd1c606c9ac55a2168abc99..4423847eaf6a8f32e528b3a6b6b72aa889bf0e64 100644 (file)
@@ -272,7 +272,7 @@ typedef struct LinkInfo {
         sd_device *sd_device;
         int ifindex;
         unsigned short iftype;
-        hw_addr_data hw_address;
+        struct hw_addr_data hw_address;
         struct ether_addr permanent_mac_address;
         uint32_t master;
         uint32_t mtu;
@@ -554,13 +554,13 @@ static int decode_link(sd_netlink_message *m, LinkInfo *info, char **patterns, b
 
         info->has_mac_address =
                 netlink_message_read_hw_addr(m, IFLA_ADDRESS, &info->hw_address) >= 0 &&
-                memcmp(&info->hw_address, &HW_ADDR_NULL, sizeof(hw_addr_data)) != 0;
+                memcmp(&info->hw_address, &HW_ADDR_NULL, sizeof(struct hw_addr_data)) != 0;
 
         info->has_permanent_mac_address =
                 ethtool_get_permanent_macaddr(NULL, info->name, &info->permanent_mac_address) >= 0 &&
                 memcmp(&info->permanent_mac_address, &ETHER_ADDR_NULL, sizeof(struct ether_addr)) != 0 &&
                 (info->hw_address.length != sizeof(struct ether_addr) ||
-                 memcmp(&info->permanent_mac_address, info->hw_address.addr.bytes, sizeof(struct ether_addr)) != 0);
+                 memcmp(&info->permanent_mac_address, info->hw_address.bytes, sizeof(struct ether_addr)) != 0);
 
         (void) sd_netlink_message_read_u32(m, IFLA_MTU, &info->mtu);
         (void) sd_netlink_message_read_u32(m, IFLA_MIN_MTU, &info->min_mtu);
@@ -1684,7 +1684,7 @@ static int link_status_one(
                 _cleanup_free_ char *description = NULL;
 
                 if (info->hw_address.length == ETH_ALEN)
-                        (void) ieee_oui(hwdb, &info->hw_address.addr.ether, &description);
+                        (void) ieee_oui(hwdb, &info->hw_address.ether, &description);
 
                 r = table_add_many(table,
                                    TABLE_EMPTY,
index ad7ef85d8a65b821cb88f89564e519614f0d499c..b84181892ef869692732c9b0fa577df66790ae73 100644 (file)
@@ -59,22 +59,22 @@ int generate_ipv6_eui_64_address(const Link *link, struct in6_addr *ret) {
 
         if (link->iftype == ARPHRD_INFINIBAND) {
                 /* see RFC4391 section 8 */
-                memcpy(&ret->s6_addr[8], &link->hw_addr.addr.infiniband[12], 8);
+                memcpy(&ret->s6_addr[8], &link->hw_addr.infiniband[12], 8);
                 ret->s6_addr[8] ^= 1 << 1;
 
                 return 0;
         }
 
         /* see RFC4291 section 2.5.1 */
-        ret->s6_addr[8]  = link->hw_addr.addr.ether.ether_addr_octet[0];
+        ret->s6_addr[8]  = link->hw_addr.ether.ether_addr_octet[0];
         ret->s6_addr[8] ^= 1 << 1;
-        ret->s6_addr[9]  = link->hw_addr.addr.ether.ether_addr_octet[1];
-        ret->s6_addr[10] = link->hw_addr.addr.ether.ether_addr_octet[2];
+        ret->s6_addr[9]  = link->hw_addr.ether.ether_addr_octet[1];
+        ret->s6_addr[10] = link->hw_addr.ether.ether_addr_octet[2];
         ret->s6_addr[11] = 0xff;
         ret->s6_addr[12] = 0xfe;
-        ret->s6_addr[13] = link->hw_addr.addr.ether.ether_addr_octet[3];
-        ret->s6_addr[14] = link->hw_addr.addr.ether.ether_addr_octet[4];
-        ret->s6_addr[15] = link->hw_addr.addr.ether.ether_addr_octet[5];
+        ret->s6_addr[13] = link->hw_addr.ether.ether_addr_octet[3];
+        ret->s6_addr[14] = link->hw_addr.ether.ether_addr_octet[4];
+        ret->s6_addr[15] = link->hw_addr.ether.ether_addr_octet[5];
 
         return 0;
 }
@@ -1531,7 +1531,7 @@ static int ipv4_dad_configure(Address *address) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.addr.ether);
+        r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.ether);
         if (r < 0)
                 return r;
 
@@ -1561,7 +1561,7 @@ static int ipv4_dad_update_mac_one(Address *address) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.addr.ether);
+        r = sd_ipv4acd_set_mac(address->acd, &address->link->hw_addr.ether);
         if (r < 0)
                 return r;
 
index 4a11b916775ac2dbae70eaca9569be6b3ab37949..878b306c1feac5fded9b32d1617fc9db6f5b1a24 100644 (file)
@@ -852,7 +852,7 @@ static int dhcp4_configure_dad(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.addr.ether);
+        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
@@ -874,7 +874,7 @@ static int dhcp4_dad_update_mac(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.addr.ether);
+        r = sd_ipv4acd_set_mac(link->dhcp_acd, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
@@ -1437,7 +1437,7 @@ static int dhcp4_set_client_identifier(Link *link) {
                 break;
         }
         case DHCP_CLIENT_ID_MAC: {
-                const uint8_t *hw_addr = link->hw_addr.addr.bytes;
+                const uint8_t *hw_addr = link->hw_addr.bytes;
                 size_t hw_addr_len = link->hw_addr.length;
 
                 if (link->iftype == ARPHRD_INFINIBAND && hw_addr_len == INFINIBAND_ALEN) {
@@ -1546,8 +1546,8 @@ int dhcp4_configure(Link *link) {
                 return log_link_warning_errno(link, r, "DHCP4 CLIENT: Failed to attach event to DHCP4 client: %m");
 
         r = sd_dhcp_client_set_mac(link->dhcp_client,
-                                   link->hw_addr.addr.bytes,
-                                   link->bcast_addr.length > 0 ? link->bcast_addr.addr.bytes : NULL,
+                                   link->hw_addr.bytes,
+                                   link->bcast_addr.length > 0 ? link->bcast_addr.bytes : NULL,
                                    link->hw_addr.length, link->iftype);
         if (r < 0)
                 return log_link_warning_errno(link, r, "DHCP4 CLIENT: Failed to set MAC address: %m");
@@ -1702,8 +1702,8 @@ int dhcp4_update_mac(Link *link) {
         if (!link->dhcp_client)
                 return 0;
 
-        r = sd_dhcp_client_set_mac(link->dhcp_client, link->hw_addr.addr.bytes,
-                                   link->bcast_addr.length > 0 ? link->bcast_addr.addr.bytes : NULL,
+        r = sd_dhcp_client_set_mac(link->dhcp_client, link->hw_addr.bytes,
+                                   link->bcast_addr.length > 0 ? link->bcast_addr.bytes : NULL,
                                    link->hw_addr.length, link->iftype);
         if (r < 0)
                 return r;
index 488f90332935a4ca3885b7188ff609625657da6d..e2c314514bd5b1cdb685352550b96828cd45ef28 100644 (file)
@@ -1569,7 +1569,7 @@ static int dhcp6_set_identifier(Link *link, sd_dhcp6_client *client) {
         assert(link->network);
         assert(client);
 
-        r = sd_dhcp6_client_set_mac(client, link->hw_addr.addr.bytes, link->hw_addr.length, link->iftype);
+        r = sd_dhcp6_client_set_mac(client, link->hw_addr.bytes, link->hw_addr.length, link->iftype);
         if (r < 0)
                 return r;
 
index 2ad7f2c5dc67faf78a2c38606d77b42cc45005e1..a2a76d848cb03ba3c6cb953d774644d693a5bf8c 100644 (file)
@@ -166,7 +166,7 @@ int ipv4ll_configure(Link *link) {
                         return r;
         }
 
-        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.addr.ether);
+        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
@@ -196,7 +196,7 @@ int ipv4ll_update_mac(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.addr.ether);
+        r = sd_ipv4ll_set_mac(link->ipv4ll, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
index 6933c8890f9ce59099d8aef05721154d5087985a..1ec346ff531bb3e5ed4c58d6cbaaf165006ad8fa 100644 (file)
@@ -1157,7 +1157,7 @@ static int link_get_network(Link *link, Network **ret) {
                 r = net_match_config(
                                 &network->match,
                                 link->sd_device,
-                                &link->hw_addr.addr.ether,
+                                &link->hw_addr.ether,
                                 &link->permanent_mac,
                                 link->driver,
                                 link->iftype,
@@ -1968,7 +1968,7 @@ static int link_update_master(Link *link, sd_netlink_message *message) {
 }
 
 static int link_update_hardware_address(Link *link, sd_netlink_message *message) {
-        hw_addr_data hw_addr;
+        struct hw_addr_data hw_addr;
         int r;
 
         assert(link);
@@ -1985,7 +1985,7 @@ static int link_update_hardware_address(Link *link, sd_netlink_message *message)
                 return log_link_warning_errno(link, r, "rtnl: failed to read hardware address: %m");
 
         if (link->hw_addr.length == hw_addr.length &&
-            memcmp(link->hw_addr.addr.bytes, hw_addr.addr.bytes, hw_addr.length) == 0)
+            memcmp(link->hw_addr.bytes, hw_addr.bytes, hw_addr.length) == 0)
                 return 0;
 
         link->hw_addr = hw_addr;
@@ -2009,13 +2009,13 @@ static int link_update_hardware_address(Link *link, sd_netlink_message *message)
                 return log_link_debug_errno(link, r, "Could not update MAC address for Router Advertisement: %m");
 
         if (link->ndisc) {
-                r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.addr.ether);
+                r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.ether);
                 if (r < 0)
                         return log_link_debug_errno(link, r, "Could not update MAC for NDisc: %m");
         }
 
         if (link->lldp) {
-                r = sd_lldp_set_filter_address(link->lldp, &link->hw_addr.addr.ether);
+                r = sd_lldp_set_filter_address(link->lldp, &link->hw_addr.ether);
                 if (r < 0)
                         return log_link_debug_errno(link, r, "Could not update MAC address for LLDP: %m");
         }
index 780bdee18524664941a66577f9cdd6893c0cb624..f5a2fc802b01faeedc806e9fc5ee6da16c7912b3 100644 (file)
@@ -53,8 +53,8 @@ typedef struct Link {
         char *kind;
         unsigned short iftype;
         char *state_file;
-        hw_addr_data hw_addr;
-        hw_addr_data bcast_addr;
+        struct hw_addr_data hw_addr;
+        struct hw_addr_data bcast_addr;
         struct ether_addr permanent_mac;
         struct in6_addr ipv6ll_address;
         uint32_t mtu;
index d781f443d6889ba1ebc3571bc4633b199e68a6fa..56e4244f41f11cb634f964b07f2adbad28d4948d 100644 (file)
@@ -95,7 +95,7 @@ int link_lldp_rx_configure(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_lldp_set_filter_address(link->lldp, &link->hw_addr.addr.ether);
+        r = sd_lldp_set_filter_address(link->lldp, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
index bd77b788529e3edf9f33dab1fa42693337e53a18..45a087b301c411eef317863ee1fbe858e2fb8b3a 100644 (file)
@@ -314,7 +314,7 @@ static int link_send_lldp(Link *link) {
                 SD_LLDP_SYSTEM_CAPABILITIES_STATION;
 
         r = lldp_make_packet(link->network->lldp_emit,
-                             &link->hw_addr.addr.ether,
+                             &link->hw_addr.ether,
                              sd_id128_to_string(machine_id, machine_id_string),
                              link->ifname,
                              (uint16_t) ttl,
index 80cb80247a8b6bb65efbbdc104a17cd24c48de16..444147c305af2456f914cc70fa46f985e13c9652 100644 (file)
@@ -657,9 +657,9 @@ static int make_stableprivate_address(Link *link, const struct in6_addr *prefix,
         siphash24_compress_string(link->ifname, &state);
         /* Only last 8 bytes of IB MAC are stable */
         if (link->iftype == ARPHRD_INFINIBAND)
-                siphash24_compress(&link->hw_addr.addr.infiniband[12], 8, &state);
+                siphash24_compress(&link->hw_addr.infiniband[12], 8, &state);
         else
-                siphash24_compress(link->hw_addr.addr.bytes, link->hw_addr.length, &state);
+                siphash24_compress(link->hw_addr.bytes, link->hw_addr.length, &state);
         siphash24_compress(&dad_counter, sizeof(uint8_t), &state);
 
         rid = htole64(siphash24_finalize(&state));
@@ -1370,7 +1370,7 @@ int ndisc_configure(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.addr.ether);
+        r = sd_ndisc_set_mac(link->ndisc, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
index 45cfd7a9a7d4929d1d3200f70fccfdd060b6b927..805d3fff6ccd5224dd722e47fec0635c6f45cc7f 100644 (file)
@@ -694,7 +694,7 @@ int radv_configure(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_radv_set_mac(link->radv, &link->hw_addr.addr.ether);
+        r = sd_radv_set_mac(link->radv, &link->hw_addr.ether);
         if (r < 0)
                 return r;
 
@@ -766,7 +766,7 @@ int radv_update_mac(Link *link) {
         if (r < 0)
                 return r;
 
-        r = sd_radv_set_mac(link->radv, &link->hw_addr.addr.ether);
+        r = sd_radv_set_mac(link->radv, &link->hw_addr.ether);
         if (r < 0)
                 return r;