Re: [PATCH 06/12] lib: Almost eliminate use of virTristateBoolTypeFromString()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On a Friday in 2022, Michal Privoznik wrote:
There are couple of places where virTristateBoolTypeFromString()
is called. Well, the same result can be achieved by
virXMLPropTristateBool() and on fewer lines.

Note there are couple of places left untouched because those
don't care about error reporting and thus are shorter they way
they are now.

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
src/conf/cpu_conf.c            |  20 ++--
src/conf/domain_conf.c         | 170 ++++++++++++---------------------
src/conf/domain_conf.h         |  13 ++-
src/conf/network_conf.c        | 116 ++++++----------------
src/conf/network_conf.h        |  12 +--
src/conf/storage_conf.c        |  17 ++--
src/conf/storage_source_conf.c |  14 +--
src/conf/storage_source_conf.h |   2 +-
src/conf/virnetworkportdef.c   |  31 +++---
src/conf/virnetworkportdef.h   |   4 +-
src/cpu/cpu_x86.c              |  23 ++---
src/qemu/qemu_capabilities.c   |  28 ++----
src/qemu/qemu_domain.c         |  16 +---
13 files changed, 157 insertions(+), 309 deletions(-)

diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
index 4d61bfd01b..8e61a16919 100644
--- a/src/conf/cpu_conf.c
+++ b/src/conf/cpu_conf.c
@@ -16972,18 +16930,14 @@ virDomainDefParseBootXML(xmlXPathContextPtr ctxt,
    }

    if ((node = virXPathNode("./os/bootmenu[1]", ctxt))) {
-        tmp = virXMLPropString(node, "enable");
-        if (tmp) {
-            def->os.bootmenu = virTristateBoolTypeFromString(tmp);
-            if (def->os.bootmenu <= 0) {
-                /* In order not to break misconfigured machines, this
-                 * should not emit an error, but rather set the bootmenu
-                 * to disabled */
-                VIR_WARN("disabling bootmenu due to unknown option '%s'",
-                         tmp);
-                def->os.bootmenu = VIR_TRISTATE_BOOL_NO;
-            }
-            VIR_FREE(tmp);
+        if (virXMLPropTristateBool(node, "enable",
+                                   VIR_XML_PROP_NONE,
+                                   &def->os.bootmenu) < 0) {
+            /* In order not to break misconfigured machines, this
+             * should not emit an error, but rather set the bootmenu
+             * to disabled */

The comment is now incorrect - virXMLPropTristateBool would log an
error.

Introduced by commit 4f24ca01e881ec8df69861a3386b697ff528d3e3
CommitDate: 2010-07-27 16:38:32 -0400

    qemu: Allow setting boot menu on/off

we accepted a value of "yes" meaning "yes", and all other values meant
"no".

This was later refactored by
commit 8c952908681ca66ba4be75362de7e593d6c44f94
CommitDate: 2012-09-20 10:59:35 +0200
    qemu: Cleanup boot parameter building

to use an enum with "yes" and "no", but no error checking.


I think we can safely return an error here after all the years.

Jano

+            VIR_WARN("disabling bootmenu due to unknown option");
+            def->os.bootmenu = VIR_TRISTATE_BOOL_NO;
        }

        tmp = virXMLPropString(node, "timeout");

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux