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.
This commit is contained in:
Gunnar Beutner 2021-05-21 21:46:39 +02:00 committed by Andreas Kling
commit eb1cecc03d
Notes: sideshowbarker 2024-07-18 17:36:42 +09:00

View file

@ -220,11 +220,13 @@ void NetworkAdapter::set_ipv4_gateway(const IPv4Address& gateway)
void NetworkAdapter::set_interface_name(const StringView& basename) void NetworkAdapter::set_interface_name(const StringView& basename)
{ {
// FIXME: Find a unique name for this interface, starting with $basename. for (int i = 0; i < NumericLimits<int>::max(); i++) {
StringBuilder builder; auto name = String::formatted("{}{}", basename, i);
builder.append(basename); if (!lookup_by_name(name)) {
builder.append('0'); m_name = name;
m_name = builder.to_string(); break;
}
}
} }
} }