From a8977b62bafa996b52d05e9dcb4143643de43c2a Mon Sep 17 00:00:00 2001
From: "Daniel P. Berrange" <berrange@redhat.com>
Date: Wed, 5 Dec 2007 15:08:23 +0000
Subject: [PATCH] Strip autogenerated vnetXXX interfaces

---
 ChangeLog       | 5 +++++
 src/qemu_conf.c | 7 +++++++
 2 files changed, 12 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 578d9e3326..195a987281 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Dec  5 10:07:00 EST 2007 Daniel P. Berrange <berrange@redhat.com>
+
+	* src/qemu_conf.c: Strip out NIC interfaces named vnetXXX since
+	those are auto-generated names.
+
 Wed Dec  5 13:48:00 UTC 2007 Richard W.M. Jones <rjones@redhat.com>
 
 	* python/libvir.c, python/libvirt_wrap.h, qemud/qemud.c,
diff --git a/src/qemu_conf.c b/src/qemu_conf.c
index 0c43e57dd4..2d003afccf 100644
--- a/src/qemu_conf.c
+++ b/src/qemu_conf.c
@@ -657,6 +657,11 @@ static int qemudParseInterfaceXML(virConnectPtr conn,
                         (net->type == QEMUD_NET_BRIDGE)) &&
                        xmlStrEqual(cur->name, BAD_CAST "target")) {
                 ifname = xmlGetProp(cur, BAD_CAST "dev");
+                if (STREQLEN("vnet", (const char*)ifname, 4)) {
+                    /* An auto-generated target name, blank it out */
+                    xmlFree(ifname);
+                    ifname = NULL;
+                }
             } else if ((script == NULL) &&
                        (net->type == QEMUD_NET_ETHERNET) &&
                        xmlStrEqual(cur->name, BAD_CAST "script")) {
@@ -1411,6 +1416,7 @@ qemudNetworkIfaceConnect(virConnectPtr conn,
         }
         brname = network->bridge;
         if (net->dst.network.ifname[0] == '\0' ||
+            STREQLEN(net->dst.network.ifname, "vnet", 4) ||
             strchr(net->dst.network.ifname, '%')) {
             strcpy(net->dst.network.ifname, "vnet%d");
         }
@@ -1418,6 +1424,7 @@ qemudNetworkIfaceConnect(virConnectPtr conn,
     } else if (net->type == QEMUD_NET_BRIDGE) {
         brname = net->dst.bridge.brname;
         if (net->dst.bridge.ifname[0] == '\0' ||
+            STREQLEN(net->dst.bridge.ifname, "vnet", 4) ||
             strchr(net->dst.bridge.ifname, '%')) {
             strcpy(net->dst.bridge.ifname, "vnet%d");
         }