From eb1cecc03da3bf249dcbda059e69679ff6a6b5eb Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 21 May 2021 21:46:39 +0200 Subject: [PATCH] Kernel: Make sure network adapters have unique names Previously we'd just slap 0 onto the adapter's basename. This ensures we actually end up with unique names. --- Kernel/Net/NetworkAdapter.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Kernel/Net/NetworkAdapter.cpp b/Kernel/Net/NetworkAdapter.cpp index e453c325d9..4b17f05d09 100644 --- a/Kernel/Net/NetworkAdapter.cpp +++ b/Kernel/Net/NetworkAdapter.cpp @@ -220,11 +220,13 @@ void NetworkAdapter::set_ipv4_gateway(const IPv4Address& gateway) void NetworkAdapter::set_interface_name(const StringView& basename) { - // FIXME: Find a unique name for this interface, starting with $basename. - StringBuilder builder; - builder.append(basename); - builder.append('0'); - m_name = builder.to_string(); + for (int i = 0; i < NumericLimits::max(); i++) { + auto name = String::formatted("{}{}", basename, i); + if (!lookup_by_name(name)) { + m_name = name; + break; + } + } } }