diff --git a/AK/MACAddress.h b/AK/MACAddress.h index 32e32c1bf93..d91cc5b24af 100644 --- a/AK/MACAddress.h +++ b/AK/MACAddress.h @@ -9,10 +9,15 @@ #include #include #include -#include #include #include +#ifdef KERNEL +# include +#else +# include +#endif + class [[gnu::packed]] MACAddress { static constexpr size_t s_mac_address_length = 6u; @@ -53,10 +58,17 @@ public: return true; } +#ifdef KERNEL + ErrorOr> to_string() const + { + return Kernel::KString::formatted("{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}", m_data[0], m_data[1], m_data[2], m_data[3], m_data[4], m_data[5]); + } +#else String to_string() const { return String::formatted("{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}", m_data[0], m_data[1], m_data[2], m_data[3], m_data[4], m_data[5]); } +#endif static Optional from_string(StringView string) { diff --git a/Kernel/GlobalProcessExposed.cpp b/Kernel/GlobalProcessExposed.cpp index a98fed1db0d..3cbc7139e51 100644 --- a/Kernel/GlobalProcessExposed.cpp +++ b/Kernel/GlobalProcessExposed.cpp @@ -45,7 +45,8 @@ private: auto obj = array.add_object(); obj.add("name", adapter.name()); obj.add("class_name", adapter.class_name()); - obj.add("mac_address", adapter.mac_address().to_string()); + auto mac_address = adapter.mac_address().to_string().release_value_but_fixme_should_propagate_errors(); + obj.add("mac_address", mac_address->view()); if (!adapter.ipv4_address().is_zero()) { auto ipv4_address = adapter.ipv4_address().to_string().release_value_but_fixme_should_propagate_errors(); obj.add("ipv4_address", ipv4_address->view()); @@ -81,7 +82,8 @@ private: JsonArraySerializer array { builder }; arp_table().for_each([&](const auto& it) { auto obj = array.add_object(); - obj.add("mac_address", it.value.to_string()); + auto mac_address = it.value.to_string().release_value_but_fixme_should_propagate_errors(); + obj.add("mac_address", mac_address->view()); auto ip_address = it.key.to_string().release_value_but_fixme_should_propagate_errors(); obj.add("ip_address", ip_address->view()); });