浏览代码

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)
 {
-    // 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;
+        }
+    }
 }
 
 }