diff --git a/Kernel/Net/NetworkAdapter.cpp b/Kernel/Net/NetworkAdapter.cpp index 658c694a67..07b3e911b9 100644 --- a/Kernel/Net/NetworkAdapter.cpp +++ b/Kernel/Net/NetworkAdapter.cpp @@ -37,7 +37,7 @@ RefPtr NetworkAdapter::from_ipv4_address(const IPv4Address& addr { Locker locker(all_adapters().lock()); for (auto* adapter : all_adapters().resource()) { - if (adapter->ipv4_address() == address) + if (adapter->ipv4_address() == address || adapter->ipv4_broadcast() == address) return adapter; } if (address[0] == 127) diff --git a/Kernel/Net/NetworkAdapter.h b/Kernel/Net/NetworkAdapter.h index 2892dd34af..148ada3c87 100644 --- a/Kernel/Net/NetworkAdapter.h +++ b/Kernel/Net/NetworkAdapter.h @@ -36,6 +36,7 @@ public: MACAddress mac_address() { return m_mac_address; } IPv4Address ipv4_address() const { return m_ipv4_address; } IPv4Address ipv4_netmask() const { return m_ipv4_netmask; } + IPv4Address ipv4_broadcast() const { return IPv4Address { (m_ipv4_address.to_u32() & m_ipv4_netmask.to_u32()) | ~m_ipv4_netmask.to_u32() }; } IPv4Address ipv4_gateway() const { return m_ipv4_gateway; } virtual bool link_up() { return false; }