aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc5
-rw-r--r--platform/base/interface_info.cc2
-rw-r--r--platform/base/interface_info.h2
-rw-r--r--platform/impl/network_interface_linux.cc2
4 files changed, 6 insertions, 5 deletions
diff --git a/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc b/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc
index b6b86c86..3feb8e7a 100644
--- a/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc
+++ b/osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc
@@ -270,8 +270,9 @@ Error MdnsResponderAdapterImpl::RegisterInterface(
}
static_assert(sizeof(info.MAC.b) == sizeof(interface_info.hardware_address),
- "MAC addresss size mismatch.");
- memcpy(info.MAC.b, interface_info.hardware_address, sizeof(info.MAC.b));
+ "MAC address size mismatch.");
+ memcpy(info.MAC.b, interface_info.hardware_address.data(),
+ sizeof(info.MAC.b));
info.McastTxRx = 1;
platform_storage_.sockets.push_back(socket);
auto result = mDNS_RegisterInterface(&mdns_, &info, mDNSfalse);
diff --git a/platform/base/interface_info.cc b/platform/base/interface_info.cc
index fe6135e7..2ada91be 100644
--- a/platform/base/interface_info.cc
+++ b/platform/base/interface_info.cc
@@ -80,7 +80,7 @@ std::ostream& operator<<(std::ostream& out, const InterfaceInfo& info) {
out << '{' << info.index << " (a.k.a. " << info.name
<< "); media_type=" << info.type << "; MAC=" << std::hex
<< static_cast<int>(info.hardware_address[0]);
- for (size_t i = 1; i < sizeof(info.hardware_address); ++i) {
+ for (size_t i = 1; i < info.hardware_address.size(); ++i) {
out << ':' << static_cast<int>(info.hardware_address[i]);
}
for (const IPSubnet& ip : info.addresses) {
diff --git a/platform/base/interface_info.h b/platform/base/interface_info.h
index d9d41a5a..81686063 100644
--- a/platform/base/interface_info.h
+++ b/platform/base/interface_info.h
@@ -46,7 +46,7 @@ struct InterfaceInfo {
NetworkInterfaceIndex index = kInvalidNetworkInterfaceIndex;
// MAC address of the interface. All 0s if unavailable.
- uint8_t hardware_address[6] = {};
+ std::array<uint8_t, 6> hardware_address = {};
// Interface name (e.g. eth0) if available.
std::string name;
diff --git a/platform/impl/network_interface_linux.cc b/platform/impl/network_interface_linux.cc
index 3c674aa1..d58e5d9c 100644
--- a/platform/impl/network_interface_linux.cc
+++ b/platform/impl/network_interface_linux.cc
@@ -95,7 +95,7 @@ void GetInterfaceAttributes(struct rtattr* rta,
GetInterfaceName(reinterpret_cast<const char*>(RTA_DATA(rta)));
} else if (rta->rta_type == IFLA_ADDRESS) {
OSP_CHECK_EQ(sizeof(info->hardware_address), RTA_PAYLOAD(rta));
- std::memcpy(info->hardware_address, RTA_DATA(rta),
+ std::memcpy(info->hardware_address.data(), RTA_DATA(rta),
sizeof(info->hardware_address));
}
}