conf: Report error if invalid type specified for character device

If invalid type is specified, e.g.
<serial type='foo'>
    <target port='0'/>
</serial>

We replace 'foo' with "null" type implicitly, without reporting an
error message to tell the user, and "start" or "edit" the domain
will be success.

It's not good to guess what the user wants, This patch is to fix
the problem.

* src/conf/domain_conf.c
This commit is contained in:
Osier Yang 2011-01-09 19:18:52 +08:00 committed by Eric Blake
parent 5e5acbc8d6
commit 92d6530106
1 changed files with 7 additions and 3 deletions

View File

@ -2821,10 +2821,14 @@ virDomainChrDefParseXML(virCapsPtr caps,
}
type = virXMLPropString(node, "type");
if (type == NULL)
if (type == NULL) {
def->type = VIR_DOMAIN_CHR_TYPE_PTY;
else if ((def->type = virDomainChrTypeFromString(type)) < 0)
def->type = VIR_DOMAIN_CHR_TYPE_NULL;
} else if ((def->type = virDomainChrTypeFromString(type)) < 0) {
virDomainReportError(VIR_ERR_XML_ERROR,
_("unknown type presented to host for character device: %s"),
type);
goto error;
}
nodeName = (const char *) node->name;
if ((def->deviceType = virDomainChrDeviceTypeFromString(nodeName)) < 0) {