From: Laine Stump <laine(a)laine.org>
The minimal XML returned from ncf_if_xml_state() doesn't contain this
attribute (which makes no sense in the case of reporting current
status of the interface), and it was preventing it from passing
through the parse/format step.
---
src/conf/interface_conf.c | 11 +++++------
src/conf/interface_conf.h | 3 ++-
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c
index e646351..540c931 100644
--- a/src/conf/interface_conf.c
+++ b/src/conf/interface_conf.c
@@ -128,12 +128,9 @@ virInterfaceDefParseStartMode(virConnectPtr conn, virInterfaceDefPtr
def,
char *tmp;
tmp = virXPathString(conn, "string(./start/@mode)", ctxt);
- if (tmp == NULL) {
- virInterfaceReportError(conn, VIR_ERR_XML_ERROR,
- "%s", _("interface misses the start mode
attribute"));
- return(-1);
- }
- if (STREQ(tmp, "onboot"))
+ if (tmp == NULL)
+ def->startmode = VIR_INTERFACE_START_UNSPECIFIED;
+ else if (STREQ(tmp, "onboot"))
def->startmode = VIR_INTERFACE_START_ONBOOT;
else if (STREQ(tmp, "hotplug"))
def->startmode = VIR_INTERFACE_START_HOTPLUG;
@@ -1039,6 +1036,8 @@ virInterfaceStartmodeDefFormat(virConnectPtr conn, virBufferPtr
buf,
enum virInterfaceStartMode startmode) {
const char *mode;
switch (startmode) {
+ case VIR_INTERFACE_START_UNSPECIFIED:
+ return 0;
case VIR_INTERFACE_START_NONE:
mode = "none";
break;
diff --git a/src/conf/interface_conf.h b/src/conf/interface_conf.h
index bb9dce4..20d9771 100644
--- a/src/conf/interface_conf.h
+++ b/src/conf/interface_conf.h
@@ -48,7 +48,8 @@ VIR_ENUM_DECL(virInterface)
/* types of start mode */
enum virInterfaceStartMode {
- VIR_INTERFACE_START_NONE = 0, /* not defined */
+ VIR_INTERFACE_START_UNSPECIFIED = 0, /* not given in config */
+ VIR_INTERFACE_START_NONE, /* specified as not defined */
VIR_INTERFACE_START_ONBOOT, /* startup at boot */
VIR_INTERFACE_START_HOTPLUG, /* on hotplug */
};
--
1.6.5.15.gc274d