From a94375aef04acd8922473761c3736d023e6863b0 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 16 Sep 2022 17:47:56 +0200 Subject: [PATCH] conf: domain: Move pure validation code from virDomainNetDefParseXML to virDomainNetDefValidate MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The moved code is pure validation of semantics of the definition and not actual parsed values. Move it to the validation code. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/conf/domain_conf.c | 38 -------------------------------------- src/conf/domain_validate.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 38 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 016f508e50..27aa0bd053 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9344,44 +9344,6 @@ virDomainNetDefParseXML(virDomainXMLOption *xmlopt, return NULL; } - switch (def->type) { - case VIR_DOMAIN_NET_TYPE_NETWORK: - break; - - case VIR_DOMAIN_NET_TYPE_VHOSTUSER: - if (!virDomainNetIsVirtioModel(def)) { - virReportError(VIR_ERR_INTERNAL_ERROR, "%s", - _("Wrong or no 'type' attribute " - "specified with . " - "vhostuser requires the virtio-net* frontend")); - return NULL; - } - - if (def->data.vhostuser->data.nix.listen && - def->data.vhostuser->data.nix.reconnect.enabled == VIR_TRISTATE_BOOL_YES) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("'reconnect' attribute unsupported 'server' mode for ")); - return NULL; - } - break; - - case VIR_DOMAIN_NET_TYPE_VDPA: - case VIR_DOMAIN_NET_TYPE_BRIDGE: - case VIR_DOMAIN_NET_TYPE_CLIENT: - case VIR_DOMAIN_NET_TYPE_SERVER: - case VIR_DOMAIN_NET_TYPE_MCAST: - case VIR_DOMAIN_NET_TYPE_UDP: - case VIR_DOMAIN_NET_TYPE_INTERNAL: - case VIR_DOMAIN_NET_TYPE_DIRECT: - case VIR_DOMAIN_NET_TYPE_HOSTDEV: - case VIR_DOMAIN_NET_TYPE_VDS: - case VIR_DOMAIN_NET_TYPE_ETHERNET: - case VIR_DOMAIN_NET_TYPE_USER: - case VIR_DOMAIN_NET_TYPE_NULL: - case VIR_DOMAIN_NET_TYPE_LAST: - break; - } - if (virDomainNetIPInfoParseXML(_("guest interface"), node, ctxt, &def->guestIP) < 0) return NULL; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 6ecf6d1c11..81f6d5dbd5 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2134,6 +2134,40 @@ virDomainNetDefValidate(const virDomainNetDef *net) return -1; } + switch (net->type) { + case VIR_DOMAIN_NET_TYPE_VHOSTUSER: + if (!virDomainNetIsVirtioModel(net)) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("Wrong or no 'type' attribute specified with . vhostuser requires the virtio-net* frontend")); + return -1; + } + + if (net->data.vhostuser->data.nix.listen && + net->data.vhostuser->data.nix.reconnect.enabled == VIR_TRISTATE_BOOL_YES) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("'reconnect' attribute unsupported 'server' mode for ")); + return -1; + } + break; + + case VIR_DOMAIN_NET_TYPE_NETWORK: + case VIR_DOMAIN_NET_TYPE_VDPA: + case VIR_DOMAIN_NET_TYPE_BRIDGE: + case VIR_DOMAIN_NET_TYPE_CLIENT: + case VIR_DOMAIN_NET_TYPE_SERVER: + case VIR_DOMAIN_NET_TYPE_MCAST: + case VIR_DOMAIN_NET_TYPE_UDP: + case VIR_DOMAIN_NET_TYPE_INTERNAL: + case VIR_DOMAIN_NET_TYPE_DIRECT: + case VIR_DOMAIN_NET_TYPE_HOSTDEV: + case VIR_DOMAIN_NET_TYPE_VDS: + case VIR_DOMAIN_NET_TYPE_ETHERNET: + case VIR_DOMAIN_NET_TYPE_USER: + case VIR_DOMAIN_NET_TYPE_NULL: + case VIR_DOMAIN_NET_TYPE_LAST: + break; + } + return 0; } -- 2.39.5