1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:47:35 +00:00

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

View file

@ -11,7 +11,7 @@
#include <AK/JsonArray.h> #include <AK/JsonArray.h>
#include <AK/JsonObject.h> #include <AK/JsonObject.h>
#include <AK/JsonValue.h> #include <AK/JsonValue.h>
#include <LibCore/DeprecatedFile.h> #include <LibCore/File.h>
#include <LibCore/System.h> #include <LibCore/System.h>
#include <limits.h> #include <limits.h>
#include <poll.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 Vector<IPv4Address> MulticastDNS::local_addresses() const
{ {
auto file = Core::DeprecatedFile::construct("/sys/kernel/net/adapters"); auto file_or_error = Core::File::open("/sys/kernel/net/adapters"sv, Core::File::OpenMode::Read);
if (!file->open(Core::OpenMode::ReadOnly)) { if (file_or_error.is_error()) {
dbgln("Failed to open /sys/kernel/net/adapters: {}", file->error_string()); 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 {}; return {};
} }
auto file_contents = file->read_all();
auto json = JsonValue::from_string(file_contents).release_value_but_fixme_should_propagate_errors();
Vector<IPv4Address> addresses; 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 if_object = value.as_object();
auto address = if_object.get_deprecated_string("ipv4_address"sv).value_or({}); auto address = if_object.get_deprecated_string("ipv4_address"sv).value_or({});
auto ipv4_address = IPv4Address::from_string(address); auto ipv4_address = IPv4Address::from_string(address);