1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:38:11 +00:00

Net: Make NetworkAdapter reference-counted

The idea behind WeakPtr<NetworkAdapter> was to support hot-pluggable
network adapters, but on closer thought, that's super impractical so
let's not go down that road.
This commit is contained in:
Andreas Kling 2020-02-08 00:19:46 +01:00
parent f3a5985bb2
commit a3f39fe789
7 changed files with 19 additions and 19 deletions

View file

@ -46,13 +46,13 @@ bool RoutingDecision::is_zero() const
RoutingDecision route_to(const IPv4Address& target, const IPv4Address& source)
{
if (target[0] == 127)
return { LoopbackAdapter::the().make_weak_ptr(), {} };
return { LoopbackAdapter::the(), {} };
auto target_addr = target.to_u32();
auto source_addr = source.to_u32();
WeakPtr<NetworkAdapter> local_adapter = nullptr;
WeakPtr<NetworkAdapter> gateway_adapter = nullptr;
RefPtr<NetworkAdapter> local_adapter = nullptr;
RefPtr<NetworkAdapter> gateway_adapter = nullptr;
NetworkAdapter::for_each([source_addr, &target_addr, &local_adapter, &gateway_adapter](auto& adapter) {
auto adapter_addr = adapter.ipv4_address().to_u32();
@ -62,10 +62,10 @@ RoutingDecision route_to(const IPv4Address& target, const IPv4Address& source)
return;
if ((target_addr & adapter_mask) == (adapter_addr & adapter_mask))
local_adapter = adapter.make_weak_ptr();
local_adapter = adapter;
if (adapter.ipv4_gateway().to_u32() != 0)
gateway_adapter = adapter.make_weak_ptr();
gateway_adapter = adapter;
});
if (!local_adapter && !gateway_adapter) {
@ -76,7 +76,7 @@ RoutingDecision route_to(const IPv4Address& target, const IPv4Address& source)
return { nullptr, {} };
}
WeakPtr<NetworkAdapter> adapter = nullptr;
RefPtr<NetworkAdapter> adapter = nullptr;
IPv4Address next_hop_ip;
if (local_adapter) {