network_manager: Implement interface rename
Now that we persist the interface data, we can recreate the object when
the name changes.
Change-Id: I3b6de84ba20e3a7917e60283a29fbac007bfc6cc
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 8dc14e6..135c002 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -122,15 +122,16 @@
if (auto it = interfacesByIdx.find(info.intf.idx);
it != interfacesByIdx.end())
{
- it->second->updateInfo(info.intf);
if (info.intf.name && *info.intf.name != it->second->interfaceName())
{
- fmt::print(stderr, "Interface name change detected {} -> {}\n",
- it->second->interfaceName(), *info.intf.name);
- fflush(stderr);
- std::abort();
+ interfaces.erase(it->second->interfaceName());
+ interfacesByIdx.erase(it);
}
- return;
+ else
+ {
+ it->second->updateInfo(info.intf);
+ return;
+ }
}
if (!info.intf.name)
{