]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: introduce 'wait' attribute for VNC
authorRoman Bogorodskiy <bogorodskiy@gmail.com>
Tue, 18 Nov 2025 17:58:17 +0000 (18:58 +0100)
committerRoman Bogorodskiy <bogorodskiy@gmail.com>
Thu, 20 Nov 2025 18:17:29 +0000 (19:17 +0100)
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 <bogorodskiy@gmail.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/conf/schemas/domaincommon.rng

index d2dea6952efcbf96d7cb75af705ffd7566302cbf..497bfd6161a3010fe8ea663973d6e095ad257c74 100644 (file)
@@ -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:
index 11eb46ae5385bb59856fa1a716de8f7350cd3d29..ef539119d0b2ec6a6c96b257bd9e021def712dbc 100644 (file)
@@ -2048,6 +2048,7 @@ struct _virDomainGraphicsDef {
             virDomainGraphicsVNCSharePolicy sharePolicy;
             virTristateBool powerControl;
             unsigned int audioId;
+            virTristateBool wait;
         } vnc;
         struct {
             char *display;
index 75b5124c338fd448462bfc369813e4a720c358d3..67bbcbeb0b66028d166373bb00b98165077a5523 100644 (file)
                   <ref name="virYesNo"/>
                 </attribute>
               </optional>
+              <optional>
+                <attribute name="wait">
+                  <ref name="virYesNo"/>
+                </attribute>
+              </optional>
             </group>
             <group>
               <optional>