mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 05:08:13 +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:
parent
f3a5985bb2
commit
a3f39fe789
7 changed files with 19 additions and 19 deletions
|
@ -49,26 +49,26 @@ void NetworkAdapter::for_each(Function<void(NetworkAdapter&)> callback)
|
|||
callback(*it);
|
||||
}
|
||||
|
||||
WeakPtr<NetworkAdapter> NetworkAdapter::from_ipv4_address(const IPv4Address& address)
|
||||
RefPtr<NetworkAdapter> NetworkAdapter::from_ipv4_address(const IPv4Address& address)
|
||||
{
|
||||
LOCKER(all_adapters().lock());
|
||||
for (auto* adapter : all_adapters().resource()) {
|
||||
if (adapter->ipv4_address() == address)
|
||||
return adapter->make_weak_ptr();
|
||||
return adapter;
|
||||
}
|
||||
if (address[0] == 127)
|
||||
return LoopbackAdapter::the().make_weak_ptr();
|
||||
return LoopbackAdapter::the();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
WeakPtr<NetworkAdapter> NetworkAdapter::lookup_by_name(const StringView& name)
|
||||
RefPtr<NetworkAdapter> NetworkAdapter::lookup_by_name(const StringView& name)
|
||||
{
|
||||
NetworkAdapter* found_adapter = nullptr;
|
||||
for_each([&](auto& adapter) {
|
||||
if (adapter.name() == name)
|
||||
found_adapter = &adapter;
|
||||
});
|
||||
return found_adapter ? found_adapter->make_weak_ptr() : nullptr;
|
||||
return found_adapter;
|
||||
}
|
||||
|
||||
NetworkAdapter::NetworkAdapter()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue