diff options
-rw-r--r-- | osp/impl/discovery/mdns/mdns_responder_adapter_impl.cc | 5 | ||||
-rw-r--r-- | platform/base/interface_info.cc | 2 | ||||
-rw-r--r-- | platform/base/interface_info.h | 2 | ||||
-rw-r--r-- | platform/impl/network_interface_linux.cc | 2 |
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)); } } |