diff --git a/src/domain_conf.c b/src/domain_conf.c
index 0741d4e261..2750c88a25 100644
--- a/src/domain_conf.c
+++ b/src/domain_conf.c
@@ -960,6 +960,8 @@ virDomainNetDefParseXML(virConnectPtr conn,
char *port = NULL;
char *model = NULL;
char *internal = NULL;
+ char *nic_name = NULL;
+ char *hostnet_name = NULL;
if (VIR_ALLOC(def) < 0) {
virReportOOMError(conn);
@@ -1025,6 +1027,10 @@ virDomainNetDefParseXML(virConnectPtr conn,
script = virXMLPropString(cur, "path");
} else if (xmlStrEqual (cur->name, BAD_CAST "model")) {
model = virXMLPropString(cur, "type");
+ } else if ((flags & VIR_DOMAIN_XML_INTERNAL_STATUS) &&
+ xmlStrEqual(cur->name, BAD_CAST "state")) {
+ nic_name = virXMLPropString(cur, "nic");
+ hostnet_name = virXMLPropString(cur, "hostnet");
}
}
cur = cur->next;
@@ -1036,6 +1042,10 @@ virDomainNetDefParseXML(virConnectPtr conn,
virCapabilitiesGenerateMac(caps, def->mac);
}
+ def->nic_name = nic_name;
+ def->hostnet_name = hostnet_name;
+ nic_name = hostnet_name = NULL;
+
switch (def->type) {
case VIR_DOMAIN_NET_TYPE_NETWORK:
if (network == NULL) {
@@ -1155,6 +1165,8 @@ cleanup:
VIR_FREE(model);
VIR_FREE(type);
VIR_FREE(internal);
+ VIR_FREE(nic_name);
+ VIR_FREE(hostnet_name);
return def;
@@ -3534,7 +3546,8 @@ virDomainFSDefFormat(virConnectPtr conn,
static int
virDomainNetDefFormat(virConnectPtr conn,
virBufferPtr buf,
- virDomainNetDefPtr def)
+ virDomainNetDefPtr def,
+ int flags)
{
const char *type = virDomainNetTypeToString(def->type);
@@ -3605,6 +3618,15 @@ virDomainNetDefFormat(virConnectPtr conn,
virBufferEscapeString(buf, " \n",
def->model);
+ if (flags & VIR_DOMAIN_XML_INTERNAL_STATUS) {
+ virBufferAddLit(buf, " nic_name)
+ virBufferEscapeString(buf, " nic='%s'", def->nic_name);
+ if (def->hostnet_name)
+ virBufferEscapeString(buf, " hostnet='%s'", def->hostnet_name);
+ virBufferAddLit(buf, "/>\n");
+ }
+
virBufferAddLit(buf, " \n");
return 0;
@@ -4086,7 +4108,7 @@ char *virDomainDefFormat(virConnectPtr conn,
for (n = 0 ; n < def->nnets ; n++)
- if (virDomainNetDefFormat(conn, &buf, def->nets[n]) < 0)
+ if (virDomainNetDefFormat(conn, &buf, def->nets[n], flags) < 0)
goto cleanup;
for (n = 0 ; n < def->nserials ; n++)