From 7edc46ac26af48d3a31134d5cb6da04e29202a8f Mon Sep 17 00:00:00 2001 From: Laine Stump Date: Thu, 19 Jun 2014 12:47:26 +0300 Subject: [PATCH] interface: move parsing of bridge attributes into appropriate function For some reason the bridge stp mode and delay were put directly into the "bridge" case of the switch in virInterfaceDefParseXML(), although they are inside the element, and so should be parsed in the function created for that purpose - virInterfaceBridgeDefFormat(). --- src/conf/interface_conf.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c index 397920b2d9..c1a089ab68 100644 --- a/src/conf/interface_conf.c +++ b/src/conf/interface_conf.c @@ -487,11 +487,27 @@ virInterfaceDefParseBridge(virInterfaceDefPtr def, xmlNodePtr *interfaces = NULL; xmlNodePtr bridge; virInterfaceDefPtr itf; + char *tmp = NULL; int nbItf; size_t i; int ret = 0; bridge = ctxt->node; + def->data.bridge.stp = -1; + if ((tmp = virXMLPropString(bridge, "stp"))) { + if (STREQ(tmp, "on")) { + def->data.bridge.stp = 1; + } else if (STREQ(tmp, "off")) { + def->data.bridge.stp = 0; + } else { + virReportError(VIR_ERR_XML_ERROR, + _("bridge interface stp should be on or off got %s"), + tmp); + goto error; + } + } + def->data.bridge.delay = virXMLPropString(bridge, "delay"); + nbItf = virXPathNodeSet("./interface", ctxt, &interfaces); if (nbItf < 0) { ret = -1; @@ -517,6 +533,7 @@ virInterfaceDefParseBridge(virInterfaceDefPtr def, } error: + VIR_FREE(tmp); VIR_FREE(interfaces); ctxt->node = bridge; return ret; @@ -751,23 +768,6 @@ virInterfaceDefParseXML(xmlXPathContextPtr ctxt, int parentIfType) "%s", _("bridge interface misses the bridge element")); goto error; } - tmp = virXMLPropString(bridge, "stp"); - def->data.bridge.stp = -1; - if (tmp != NULL) { - if (STREQ(tmp, "on")) { - def->data.bridge.stp = 1; - } else if (STREQ(tmp, "off")) { - def->data.bridge.stp = 0; - } else { - virReportError(VIR_ERR_XML_ERROR, - _("bridge interface stp should be on or off got %s"), - tmp); - VIR_FREE(tmp); - goto error; - } - VIR_FREE(tmp); - } - def->data.bridge.delay = virXMLPropString(bridge, "delay"); ctxt->node = bridge; if (virInterfaceDefParseBridge(def, ctxt) < 0) goto error; -- 2.39.5