diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp index 62fd5cec4d..ad039cd4e7 100644 --- a/Kernel/Net/IPv4Socket.cpp +++ b/Kernel/Net/IPv4Socket.cpp @@ -139,6 +139,8 @@ KResult IPv4Socket::connect(FileDescription& description, Userspace NetworkAdapter::from_ipv4_address(const IPv4Address& addr if (adapter->ipv4_address() == address || adapter->ipv4_broadcast() == address) return adapter; } + if (address[0] == 0 && address[1] == 0 && address[2] == 0 && address[3] == 0) + return LoopbackAdapter::the(); if (address[0] == 127) return LoopbackAdapter::the(); return nullptr; diff --git a/Kernel/Net/Routing.cpp b/Kernel/Net/Routing.cpp index e207cd35f4..3c6a6d0aac 100644 --- a/Kernel/Net/Routing.cpp +++ b/Kernel/Net/Routing.cpp @@ -141,6 +141,8 @@ RoutingDecision route_to(const IPv4Address& target, const IPv4Address& source, c return { adapter, mac }; }; + if (target[0] == 0 && target[1] == 0 && target[2] == 0 && target[3] == 0) + return if_matches(LoopbackAdapter::the(), LoopbackAdapter::the().mac_address()); if (target[0] == 127) return if_matches(LoopbackAdapter::the(), LoopbackAdapter::the().mac_address());