|
@@ -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);
|