From: John Levon Date: Fri, 23 Jan 2009 01:48:47 +0000 (+0000) Subject: parse IP address for bridge interfaces X-Git-Tag: LIBVIRT_0_6_0~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e80f10064e2290414d0b525a2b7505a84fee9f66;p=thirdparty%2Flibvirt.git parse IP address for bridge interfaces --- diff --git a/ChangeLog b/ChangeLog index 25e8d05cec..64d9196c16 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Thu Jan 22 17:42:37 PST 2009 John Levon + + * src/domain_conf.c, src/domain_conf.h, src/xend_internal.c, + src/xm_internal.c: parse IP address for bridge interfaces + + * tests/sexpr2xmltest.c, tests/xml2sexprtest.c, + tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.sexpr, + tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml, + tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.sexpr, + tests/xml2sexprdata/xml2sexpr-bridge-ipaddr.xml: add tests + Thu Jan 21 19:44:12 GMT 2009 Daniel P. Berrange Use the GNULIB random_r function diff --git a/src/domain_conf.c b/src/domain_conf.c index feb77cac92..30336d490f 100644 --- a/src/domain_conf.c +++ b/src/domain_conf.c @@ -289,6 +289,7 @@ void virDomainNetDefFree(virDomainNetDefPtr def) case VIR_DOMAIN_NET_TYPE_BRIDGE: VIR_FREE(def->data.bridge.brname); VIR_FREE(def->data.bridge.script); + VIR_FREE(def->data.bridge.ipaddr); break; } @@ -887,7 +888,8 @@ virDomainNetDefParseXML(virConnectPtr conn, address = virXMLPropString(cur, "address"); port = virXMLPropString(cur, "port"); } else if ((address == NULL) && - (def->type == VIR_DOMAIN_NET_TYPE_ETHERNET) && + (def->type == VIR_DOMAIN_NET_TYPE_ETHERNET || + def->type == VIR_DOMAIN_NET_TYPE_BRIDGE) && (xmlStrEqual(cur->name, BAD_CAST "ip"))) { address = virXMLPropString(cur, "address"); } else if ((ifname == NULL) && @@ -954,6 +956,10 @@ virDomainNetDefParseXML(virConnectPtr conn, def->data.bridge.script = script; script = NULL; } + if (address != NULL) { + def->data.bridge.ipaddr = address; + address = NULL; + } break; case VIR_DOMAIN_NET_TYPE_CLIENT: @@ -2889,6 +2895,9 @@ virDomainNetDefFormat(virConnectPtr conn, case VIR_DOMAIN_NET_TYPE_BRIDGE: virBufferEscapeString(buf, " \n", def->data.bridge.brname); + if (def->data.bridge.ipaddr) + virBufferVSprintf(buf, " \n", + def->data.bridge.ipaddr); if (def->data.bridge.script) virBufferEscapeString(buf, "