LookupServer: Prefer File::read_until_eof over DeprecatedFile

This commit is contained in:
Ben Wiederhake 2023-05-13 19:48:21 +02:00 committed by Jelle Raaijmakers
parent 9474e0cd94
commit b4ad3f1b37
Notes: sideshowbarker 2024-07-17 03:18:29 +09:00

View File

@ -11,7 +11,7 @@
#include <AK/JsonArray.h>
#include <AK/JsonObject.h>
#include <AK/JsonValue.h>
#include <LibCore/DeprecatedFile.h>
#include <LibCore/File.h>
#include <LibCore/System.h>
#include <limits.h>
#include <poll.h>
@ -119,18 +119,25 @@ ErrorOr<size_t> MulticastDNS::emit_packet(Packet const& packet, sockaddr_in cons
Vector<IPv4Address> MulticastDNS::local_addresses() const
{
auto file = Core::DeprecatedFile::construct("/sys/kernel/net/adapters");
if (!file->open(Core::OpenMode::ReadOnly)) {
dbgln("Failed to open /sys/kernel/net/adapters: {}", file->error_string());
auto file_or_error = Core::File::open("/sys/kernel/net/adapters"sv, Core::File::OpenMode::Read);
if (file_or_error.is_error()) {
dbgln("Failed to open /sys/kernel/net/adapters: {}", file_or_error.error());
return {};
}
auto file_contents_or_error = file_or_error.value()->read_until_eof();
if (file_or_error.is_error()) {
dbgln("Cannot read /sys/kernel/net/adapters: {}", file_contents_or_error.error());
return {};
}
auto json_or_error = JsonValue::from_string(file_contents_or_error.value());
if (json_or_error.is_error()) {
dbgln("Invalid JSON(?) in /sys/kernel/net/adapters: {}", json_or_error.error());
return {};
}
auto file_contents = file->read_all();
auto json = JsonValue::from_string(file_contents).release_value_but_fixme_should_propagate_errors();
Vector<IPv4Address> addresses;
json.as_array().for_each([&addresses](auto& value) {
json_or_error.value().as_array().for_each([&addresses](auto& value) {
auto if_object = value.as_object();
auto address = if_object.get_deprecated_string("ipv4_address"sv).value_or({});
auto ipv4_address = IPv4Address::from_string(address);