Преглед на файлове

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.
Gunnar Beutner преди 4 години
родител
ревизия
eb1cecc03d
променени са 1 файла, в които са добавени 7 реда и са изтрити 5 реда
  1. 7 5
      Kernel/Net/NetworkAdapter.cpp

+ 7 - 5
Kernel/Net/NetworkAdapter.cpp

@@ -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.
-    StringBuilder builder;
-    builder.append(basename);
-    builder.append('0');
-    m_name = builder.to_string();
+    for (int i = 0; i < NumericLimits<int>::max(); i++) {
+        auto name = String::formatted("{}{}", basename, i);
+        if (!lookup_by_name(name)) {
+            m_name = name;
+            break;
+        }
+    }
 }
 }
 
 
 }
 }