From c8bffda588d0f0827b84da7d72ceaa017f5c7e96 Mon Sep 17 00:00:00 2001 From: Roman Bogorodskiy Date: Tue, 18 Nov 2025 18:58:17 +0100 Subject: [PATCH] conf: introduce 'wait' attribute for VNC Introduce an optional 'wait' attribute for 'VNC'. When set to 'yes', VM should only boot upon the initiation of a VNC connection. Signed-off-by: Roman Bogorodskiy Reviewed-by: Martin Kletzander --- src/conf/domain_conf.c | 8 ++++++++ src/conf/domain_conf.h | 1 + src/conf/schemas/domaincommon.rng | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d2dea6952e..497bfd6161 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -11940,6 +11940,10 @@ virDomainGraphicsDefParseXMLVNC(virDomainGraphicsDef *def, def->data.vnc.keymap = virXMLPropString(node, "keymap"); + if (virXMLPropTristateBool(node, "wait", VIR_XML_PROP_NONE, + &def->data.vnc.wait) < 0) + return -1; + ctxt->node = node; audioNode = virXPathNode("./audio", ctxt); if (audioNode) { @@ -27213,6 +27217,10 @@ virDomainGraphicsDefFormatVNC(virBuffer *attrBuf, virBufferAsprintf(attrBuf, " websocketGenerated='%s'", def->data.vnc.websocketGenerated ? "yes" : "no"); + if (def->data.vnc.wait != VIR_TRISTATE_BOOL_ABSENT) + virBufferAsprintf(attrBuf, " wait='%s'", + virTristateBoolTypeToString(def->data.vnc.wait)); + virDomainGraphicsListenDefFormatAddr(attrBuf, glisten, flags); break; case VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_NONE: diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 11eb46ae53..ef539119d0 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2048,6 +2048,7 @@ struct _virDomainGraphicsDef { virDomainGraphicsVNCSharePolicy sharePolicy; virTristateBool powerControl; unsigned int audioId; + virTristateBool wait; } vnc; struct { char *display; diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincommon.rng index 75b5124c33..67bbcbeb0b 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -4358,6 +4358,11 @@ + + + + + -- 2.47.3