From 65bb1b97956feb329cdebd438bd965c95d07fd03 Mon Sep 17 00:00:00 2001 From: Doug Goldstein Date: Sun, 24 Feb 2013 20:31:03 -0600 Subject: [PATCH] interface: Fix udev backend bridge device display The bridge device was showing the vnet devices created for the domains as connected to the bridge. libvirt should only show host devices when trying to get the interface definition rather than the domain devices as well. --- src/interface/interface_backend_udev.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c index bd83545ad3..dca85b3f54 100644 --- a/src/interface/interface_backend_udev.c +++ b/src/interface/interface_backend_udev.c @@ -24,7 +24,9 @@ #include #include "virerror.h" +#include "c-ctype.h" #include "datatypes.h" +#include "domain_conf.h" #include "interface_driver.h" #include "interface_conf.h" #include "viralloc.h" @@ -527,6 +529,16 @@ udevIfaceBridgeScanDirFilter(const struct dirent *entry) if (STREQ(entry->d_name, ".") || STREQ(entry->d_name, "..")) return 0; + /* Omit the domain interfaces from the list of bridge attached + * devices. All we can do is check for the device name matching + * vnet%d. Improvements to this check are welcome. + */ + if (strlen(entry->d_name) >= 5) { + if (STRPREFIX(entry->d_name, VIR_NET_GENERATED_PREFIX) && + c_isdigit(entry->d_name[4])) + return 0; + } + return 1; } -- 2.39.5