From: Tim Wiederhake Date: Thu, 22 Apr 2021 10:32:55 +0000 (+0200) Subject: domain_conf: Introduce function virDomainChrSouceModeTypeFromString X-Git-Tag: v7.3.0-rc1~47 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=170288c408007b390a436167411ad170cf2559ed;p=thirdparty%2Flibvirt.git domain_conf: Introduce function virDomainChrSouceModeTypeFromString Preparatory step to remove virDomainChrSourceDefParseMode. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1bbf907596..cdc32e52dd 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11455,6 +11455,20 @@ typedef enum { } virDomainChrSourceModeType; +static int +virDomainChrSourceModeTypeFromString(const char *str) +{ + if (!str) + return -1; + + if (STREQ(str, "connect")) + return VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT; + if (STREQ(str, "bind")) + return VIR_DOMAIN_CHR_SOURCE_MODE_BIND; + + return -1; +} + /** * virDomainChrSourceDefParseMode: * @source: XML dom node @@ -11466,16 +11480,18 @@ static int virDomainChrSourceDefParseMode(xmlNodePtr source) { g_autofree char *mode = virXMLPropString(source, "mode"); + int result; - if (!mode || STREQ(mode, "connect")) { + if (!mode) return VIR_DOMAIN_CHR_SOURCE_MODE_CONNECT; - } else if (STREQ(mode, "bind")) { - return VIR_DOMAIN_CHR_SOURCE_MODE_BIND; + + if ((result = virDomainChrSourceModeTypeFromString(mode)) < 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Unknown source mode '%s'"), mode); + return -1; } - virReportError(VIR_ERR_INTERNAL_ERROR, - _("Unknown source mode '%s'"), mode); - return -1; + return result; }