char *port = NULL;
char *model = NULL;
char *internal = NULL;
+ char *nic_name = NULL;
+ char *hostnet_name = NULL;
if (VIR_ALLOC(def) < 0) {
virReportOOMError(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;
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) {
VIR_FREE(model);
VIR_FREE(type);
VIR_FREE(internal);
+ VIR_FREE(nic_name);
+ VIR_FREE(hostnet_name);
return def;
static int
virDomainNetDefFormat(virConnectPtr conn,
virBufferPtr buf,
- virDomainNetDefPtr def)
+ virDomainNetDefPtr def,
+ int flags)
{
const char *type = virDomainNetTypeToString(def->type);
virBufferEscapeString(buf, " <model type='%s'/>\n",
def->model);
+ if (flags & VIR_DOMAIN_XML_INTERNAL_STATUS) {
+ virBufferAddLit(buf, " <state");
+ if (def->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, " </interface>\n");
return 0;
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++)