From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166409; cv=none; d=zohomail.com; s=zohoarc; b=YQ9O31e9w7urSdapo/iEv7DdFEGDjcTIqdpCUTk2TMeQgkqDKthipn1U6xPs1DiWeIGzh9+xz2dBMjpB4bGhgrfT91hBXmPGH0Q4K7GCeJ3s25We8Ck+LUuLQhVCRpYX2HVNJq6cTZQOE3kTgjxxaucC1E9aSiBKXfwSA5WRCtg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166409; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=Wb+ai2ru4uGyDc2Ktc6kQTYalyR4qp4/7JVpzynx/HY=; b=UxkKSZWzEpHRvQQ72HeWzYsIrXbllCo6KHJcfGPIC5bSPpgjp4KDo/9U6EIB/IBIGxFKQG1HDLdPrfCN6OhwkH2OPzfm1j9nGnTPOwvPIEkm/g/2A6aQDSVHuO8vsPCuJ50VgG95yGRnsnqkW5wHaDfyRscCfB0HEEEJE6f1xSI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166409778938.6666242633551; Fri, 28 Mar 2025 05:53:29 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id D60A21323; Fri, 28 Mar 2025 08:53:28 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 6D7E61215; Fri, 28 Mar 2025 08:52:48 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 417D911FB; Fri, 28 Mar 2025 08:52:43 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 553D211B2 for ; Fri, 28 Mar 2025 08:52:42 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-441-4G3or7qmMGiZGTPJknuh_w-1; Fri, 28 Mar 2025 08:52:40 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C3D781801A12 for ; Fri, 28 Mar 2025 12:52:39 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B46261828AA7; Fri, 28 Mar 2025 12:52:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=v3pfCn4WE9mmj2xDJcsu3Gpla5fZtrUYQuShYK7OOLc=; b=bLgOeOjs8rVGo34/9nvaTsDDiOWj8K1efN3mwkigwYNkMhP0WZr7qiNT2XmCi4SwW925rS CmY1i1ajZfEj6pIRHngi+GV0FbTlIFeSBQrWiLwWPMU9lSIfMKL2WvcgD5Rtew9ezOIhZU NRzx6qRAvDDZ71kJDDPPZZ0smMBwwEc= X-MC-Unique: 4G3or7qmMGiZGTPJknuh_w-1 X-Mimecast-MFC-AGG-ID: 4G3or7qmMGiZGTPJknuh_w_1743166359 To: devel@lists.libvirt.org Subject: [PATCH 1/8] virDomainStorageNetworkParseHost: Remove unpopulated 'transport' variable Date: Fri, 28 Mar 2025 13:52:27 +0100 Message-ID: <04b6e74316e191e84f5793622391e63ba2952b85.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 7TFTOV0reO0TxPLhAI639OPE_Hu_3ZYyfoEGKmYJAjM_1743166359 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: XELC27HEVQSMZUWI5UBKMPWOEJWQ7VMS X-Message-ID-Hash: XELC27HEVQSMZUWI5UBKMPWOEJWQ7VMS X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166411927019100 Content-Type: text/plain; charset="utf-8" From: Peter Krempa Since the refactor to use proper enum type for the network transport the 'transport' variable is no longer filled. Remove it and fix the error message which references it without using NULLSTR. Fixes: 452695926dc Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 99ecb03067..53ab502306 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6017,7 +6017,6 @@ virDomainStorageNetworkParseHost(xmlNodePtr hostnode, virStorageNetHostDef *host) { int ret =3D -1; - g_autofree char *transport =3D NULL; g_autofree char *port =3D NULL; memset(host, 0, sizeof(*host)); @@ -6043,7 +6042,7 @@ virDomainStorageNetworkParseHost(xmlNodePtr hostnode, host->socket !=3D NULL) { virReportError(VIR_ERR_XML_ERROR, _("transport '%1$s' does not support socket attribu= te"), - transport); + virStorageNetHostTransportTypeToString(host->transp= ort)); goto cleanup; } --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166430; cv=none; d=zohomail.com; s=zohoarc; b=epSAbgjsM2Hb9fLzsVhC9yc16k5TGkc6K2ueGWydtb8GIQLMstIYNj6umSwLdRgaphJSHaRrw2l2JEhM44XwGSYKec6BOPs/NRSMrzxZ1afKEqVEedF8abPrPgJ6i7S8J1UhzZoU3R4EN2c8Ifzf8IA3Ev3SlVDZ0rDuGbb6e0w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166430; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=c+Z7zBgRK5iVdW4J89SNygMuOOzKihvN/lYpirzrlfA=; b=fRk4abmBHFC/0PqpODW7EEWBwzO3HMLbZ+jtvRSb5rroMNZLfcnLkx6XMays5Boqs6VdwlAz4l1pDLpVCTr2NxkitgA80LwSVq1DzW7FrJQDPFCxyj4sOEpE91t5cwO0RNqlft2mhnpkOMeAPIJt+KdsAeayZno18wSWZTliQIM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166430639913.7235888390888; Fri, 28 Mar 2025 05:53:50 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 1120A132E; Fri, 28 Mar 2025 08:53:50 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 2A91E1283; Fri, 28 Mar 2025 08:52:50 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 875651254; Fri, 28 Mar 2025 08:52:45 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 06C9911F8 for ; Fri, 28 Mar 2025 08:52:45 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-458-qbBCH3nyPyC7hqyaf1p3Hg-1; Fri, 28 Mar 2025 08:52:42 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 52EC71800A3B for ; Fri, 28 Mar 2025 12:52:41 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 50A38180174E; Fri, 28 Mar 2025 12:52:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166364; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7WY5ILqaheKPlcRH8wgetwVoyWZr9DW/PRL3fari/OQ=; b=XJsO1D808tgIBeMQGPc+dOW/dXM5bRHctbMsuJslnf/NyFlxMfRktS/eZMhEBa4UsZe5jW 3saN1XFwt1ukGzGJeKU9G94tdUWSMKnzeTRo3RyVxRH8rBg962OC+i0VCz/wDTNDuBvTVk JlHEKfyUkPn98IygyfLEf6LqToedKQE= X-MC-Unique: qbBCH3nyPyC7hqyaf1p3Hg-1 X-Mimecast-MFC-AGG-ID: qbBCH3nyPyC7hqyaf1p3Hg_1743166361 To: devel@lists.libvirt.org Subject: [PATCH 2/8] virDomainStorageNetworkParseHost: Refactor cleanup Date: Fri, 28 Mar 2025 13:52:28 +0100 Message-ID: <73619c087f12d4a1a8ba73fe31c93b76527eb46e.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: PyZ7J5YSCfc3G87QaroC2uchycRc5Ow3puCQGiYok7g_1743166361 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LL6J3IYIBOVA5WD2R7F4X3IAIUJ3PQRW X-Message-ID-Hash: LL6J3IYIBOVA5WD2R7F4X3IAIUJ3PQRW X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166431676019000 Content-Type: text/plain; charset="utf-8" From: Peter Krempa Use a 'switch' statement instead of a bunch of if statements to do validation and selection what to parse. Remove the pre-clearing of the struct as we always alocate cleared memory for it and we can reorder assignments to avoid the need for cleanup. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 68 ++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 53ab502306..1680da3ea6 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6016,55 +6016,59 @@ int virDomainStorageNetworkParseHost(xmlNodePtr hostnode, virStorageNetHostDef *host) { - int ret =3D -1; - g_autofree char *port =3D NULL; - - memset(host, 0, sizeof(*host)); + g_autofree char *socket =3D NULL; if (virXMLPropEnumDefault(hostnode, "transport", virStorageNetHostTransportTypeFromString, VIR_XML_PROP_NONE, &host->transport, - VIR_STORAGE_NET_HOST_TRANS_TCP) < 0) { - goto cleanup; - } + VIR_STORAGE_NET_HOST_TRANS_TCP) < 0) + return -1; - host->socket =3D virXMLPropString(hostnode, "socket"); + socket =3D virXMLPropString(hostnode, "socket"); - if (host->transport =3D=3D VIR_STORAGE_NET_HOST_TRANS_UNIX && - host->socket =3D=3D NULL) { - virReportError(VIR_ERR_XML_ERROR, "%s", - _("missing socket for unix transport")); - goto cleanup; - } + switch (host->transport) { + case VIR_STORAGE_NET_HOST_TRANS_UNIX: + if (!socket) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("missing socket for unix transport")); + return -1; + } - if (host->transport !=3D VIR_STORAGE_NET_HOST_TRANS_UNIX && - host->socket !=3D NULL) { - virReportError(VIR_ERR_XML_ERROR, - _("transport '%1$s' does not support socket attribu= te"), - virStorageNetHostTransportTypeToString(host->transp= ort)); - goto cleanup; - } + host->socket =3D g_steal_pointer(&socket); + break; + + case VIR_STORAGE_NET_HOST_TRANS_TCP: + case VIR_STORAGE_NET_HOST_TRANS_RDMA: { + g_autofree char *portstr =3D NULL; + unsigned int port =3D 0; + + if (socket) { + virReportError(VIR_ERR_XML_ERROR, + _("transport '%1$s' does not support socket att= ribute"), + virStorageNetHostTransportTypeToString(host->tr= ansport)); + return -1; + } + + if ((portstr =3D virXMLPropString(hostnode, "port")) && + virStringParsePort(portstr, &port) < 0) + return -1; - if (host->transport !=3D VIR_STORAGE_NET_HOST_TRANS_UNIX) { if (!(host->name =3D virXMLPropString(hostnode, "name"))) { virReportError(VIR_ERR_XML_ERROR, "%s", _("missing name for host")); - goto cleanup; + return -1; } - if ((port =3D virXMLPropString(hostnode, "port"))) { - if (virStringParsePort(port, &host->port) < 0) - goto cleanup; - } + host->port =3D port; } + break; - ret =3D 0; + case VIR_STORAGE_NET_HOST_TRANS_LAST: + break; + } - cleanup: - if (ret < 0) - virStorageNetHostDefClear(host); - return ret; + return 0; } --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166457; cv=none; d=zohomail.com; s=zohoarc; b=kxgg7JFz3yp83K9j15jpUnGvLMO/p/OrcWiffWf/PxZkEcG5NbQ4a0ljJ0cvCbc5cGQc6CdlFfhdCcUE1csceW9/HlGZGEGhlS4rUD5WyreJhMxoZskEhlCc/Ao5qRH8BfMSQC/+khu4oslwRrlsdnZfIrXB3ilTS0U1FBPU0ho= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166457; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=eML9TtMJueXYM5aoeHaamCwecdvRp33GFwChL6M7cgE=; b=IqKVAiUyJ5ZK3r14YvidNMtj50p3xI7dkBIy9H6OjRzztHCSwDioQixX14bGzD6gAALK7LULUen3tfS/+EpWt3eciE3NiUWAayjnwFz4cKl7DrJmgWVzDE5AL6vW1StHSWV7mixTCJ3MPEHCdA4BOOjwvYko5hAl9aC60xq6zOY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166457519898.9079844774706; Fri, 28 Mar 2025 05:54:17 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id DC0591220; Fri, 28 Mar 2025 08:54:16 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id BC7D3121C; Fri, 28 Mar 2025 08:52:55 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 99F461262; Fri, 28 Mar 2025 08:52:51 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 8CDF911B2 for ; Fri, 28 Mar 2025 08:52:45 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-572-YdEs1Bo0Nm6v7Yz8O3ql5A-1; Fri, 28 Mar 2025 08:52:43 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D67EB18009B1 for ; Fri, 28 Mar 2025 12:52:42 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D464C1828AAA; Fri, 28 Mar 2025 12:52:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=J0hnskZ3n8y+4+7GZeFvGxxUzQqduJ/BRYQMU8Fp2Uw=; b=fC71grd+S4sebXKmcJ6WkePlYP/1vi3GlbJLIhauUflOHIeh3D0q2osYzpi16G7Us8L83I q3qpJ4RQTeuC7eA8rE5MVSJt5Gvk1AkTYXbBEAFr57CcDVr4gO1x35cheshoy0rBv9UDWK uAewlyIdz+uhMNDz72txvwACJB7ZVBc= X-MC-Unique: YdEs1Bo0Nm6v7Yz8O3ql5A-1 X-Mimecast-MFC-AGG-ID: YdEs1Bo0Nm6v7Yz8O3ql5A_1743166363 To: devel@lists.libvirt.org Subject: [PATCH 3/8] conf: Introduce VIR_STORAGE_NET_HOST_TRANS_FD Date: Fri, 28 Mar 2025 13:52:29 +0100 Message-ID: <4ef6bb83559348408d6043faa979e97fcb438f0a.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: nRPENhKrtxMA7wQNgJBTmugyAXbfCXTrdXrIZMwCejU_1743166363 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LZ5E7T6MM35RDVSWK3MMIL5BNTN4O4XG X-Message-ID-Hash: LZ5E7T6MM35RDVSWK3MMIL5BNTN4O4XG X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166460181019000 Content-Type: text/plain; charset="utf-8" From: Peter Krempa Prepare the parser code and anything using 'virStorageNetHostTransport' to support passing a FD instead of opening the connection by qemu itself. For now this just preparse the parser and data structures, but the code is dormant. Only code paths which will actually support FD passing will then enable it in the future. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/backup_conf.c | 2 +- src/conf/domain_conf.c | 24 +++++++++++++++++-- src/conf/domain_conf.h | 3 ++- src/conf/storage_source_conf.c | 2 ++ src/conf/storage_source_conf.h | 3 +++ src/qemu/qemu_backup.c | 1 + src/qemu/qemu_block.c | 1 + src/qemu/qemu_monitor_json.c | 1 + .../storage_file_backend_gluster.c | 1 + 9 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c index 1fea6a2be7..1bdfbfa3d6 100644 --- a/src/conf/backup_conf.c +++ b/src/conf/backup_conf.c @@ -228,7 +228,7 @@ virDomainBackupDefParseXML(xmlXPathContextPtr ctxt, def->server =3D g_new0(virStorageNetHostDef, 1); - if (virDomainStorageNetworkParseHost(node, def->server) < 0) + if (virDomainStorageNetworkParseHost(node, def->server, false) < 0) return NULL; if (def->server->transport =3D=3D VIR_STORAGE_NET_HOST_TRANS_RDMA)= { diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1680da3ea6..c724638180 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -6014,7 +6014,8 @@ virDomainHostdevSubsysPCIDefParseXML(xmlNodePtr node, int virDomainStorageNetworkParseHost(xmlNodePtr hostnode, - virStorageNetHostDef *host) + virStorageNetHostDef *host, + bool allow_fd) { g_autofree char *socket =3D NULL; @@ -6064,6 +6065,25 @@ virDomainStorageNetworkParseHost(xmlNodePtr hostnode, } break; + case VIR_STORAGE_NET_HOST_TRANS_FD: + if (!allow_fd) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("transport 'fd' is now allowed")); + return -1; + } + + if (socket) { + virReportError(VIR_ERR_XML_ERROR, + _("transport '%1$s' does not support socket att= ribute"), + virStorageNetHostTransportTypeToString(host->tr= ansport)); + return -1; + } + + if (!(host->fdgroup =3D virXMLPropStringRequired(hostnode, "fdgrou= p"))) + return -1; + + break; + case VIR_STORAGE_NET_HOST_TRANS_LAST: break; } @@ -6092,7 +6112,7 @@ virDomainStorageNetworkParseHosts(xmlNodePtr node, *nhosts =3D nhostnodes; for (i =3D 0; i < nhostnodes; i++) { - if (virDomainStorageNetworkParseHost(hostnodes[i], *hosts + i) < 0) + if (virDomainStorageNetworkParseHost(hostnodes[i], *hosts + i, fal= se) < 0) return -1; } diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 0d1dd954ae..8dfadbb98d 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -4024,7 +4024,8 @@ virDomainDiskByTarget(virDomainDef *def, void virDomainDiskInsert(virDomainDef *def, virDomainDiskDef *disk); int virDomainStorageNetworkParseHost(xmlNodePtr hostnode, - virStorageNetHostDef *host); + virStorageNetHostDef *host, + bool allow_fd); int virDomainDiskDefAssignAddress(virDomainXMLOption *xmlopt, virDomainDiskDef *def, const virDomainDef *vmdef); diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c index ca956a1b7c..db12dfd961 100644 --- a/src/conf/storage_source_conf.c +++ b/src/conf/storage_source_conf.c @@ -97,6 +97,7 @@ VIR_ENUM_IMPL(virStorageNetHostTransport, "tcp", "unix", "rdma", + "fd", ); @@ -149,6 +150,7 @@ virStorageNetHostDefClear(virStorageNetHostDef *def) VIR_FREE(def->name); VIR_FREE(def->socket); + VIR_FREE(def->fdgroup); } diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index e6cbb93c06..52ed303657 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -141,6 +141,7 @@ typedef enum { VIR_STORAGE_NET_HOST_TRANS_TCP, VIR_STORAGE_NET_HOST_TRANS_UNIX, VIR_STORAGE_NET_HOST_TRANS_RDMA, + VIR_STORAGE_NET_HOST_TRANS_FD, VIR_STORAGE_NET_HOST_TRANS_LAST } virStorageNetHostTransport; @@ -154,6 +155,8 @@ struct _virStorageNetHostDef { unsigned int port; virStorageNetHostTransport transport; char *socket; /* path to unix socket */ + + char *fdgroup; }; diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 43576d135b..2935153cdf 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -87,6 +87,7 @@ qemuBackupPrepare(virDomainBackupDef *def) break; case VIR_STORAGE_NET_HOST_TRANS_RDMA: + case VIR_STORAGE_NET_HOST_TRANS_FD: case VIR_STORAGE_NET_HOST_TRANS_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("unexpected transport in ")); diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index e370411e16..3ed279af28 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -266,6 +266,7 @@ qemuBlockStorageSourceBuildJSONSocketAddress(virStorage= NetHostDef *host) break; case VIR_STORAGE_NET_HOST_TRANS_RDMA: + case VIR_STORAGE_NET_HOST_TRANS_FD: case VIR_STORAGE_NET_HOST_TRANS_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, _("transport protocol '%1$s' is not yet supported"), diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index d0de48fb18..994cf53d9f 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6342,6 +6342,7 @@ qemuMonitorJSONNBDServerStart(qemuMonitor *mon, addr =3D qemuMonitorJSONBuildUnixSocketAddress(server->socket); break; case VIR_STORAGE_NET_HOST_TRANS_RDMA: + case VIR_STORAGE_NET_HOST_TRANS_FD: case VIR_STORAGE_NET_HOST_TRANS_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("invalid server address")); diff --git a/src/storage_file/storage_file_backend_gluster.c b/src/storage_= file/storage_file_backend_gluster.c index 950f8e81fe..df4df0f128 100644 --- a/src/storage_file/storage_file_backend_gluster.c +++ b/src/storage_file/storage_file_backend_gluster.c @@ -74,6 +74,7 @@ virStorageFileBackendGlusterInitServer(virStorageFileBack= endGlusterPriv *priv, hoststr =3D host->socket; break; + case VIR_STORAGE_NET_HOST_TRANS_FD: case VIR_STORAGE_NET_HOST_TRANS_LAST: break; } --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166478; cv=none; d=zohomail.com; s=zohoarc; b=hw3+KaLpwc08x38A1KGE4aWLEEMdAO/OHNmVJyg6ofIX8/4kOKNEAyakLaXt3VxsQeK6KPZ0cxPFbISMKyXQxk9P/SuIRij9Iye6NZ65myAjR1XvhwwOUerWYIc1DGHTkEsmDBNMFjyfilAAQmSudPTWH6jSIxs2nqwebWzQLsY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166478; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=FW0a0Hcdiat5NXagh0v6Skr9i+MGGq+mc/alxodMaLs=; b=nO/nYVY7qogfClfoaAgoNpyZdYWRaajQVrHluoAB4KT/K+5yZtHF4H5mspadokXXopC1tAWplCvXK/KYk6/f1ORRhTDbmaKdYjXyRSMTDGaI+/0wLLmv8UeDvMa3atotfkLyvjE6z+lQ6oatXSZJVtrCtktUGTpAO5VpkEOisDg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166478080255.63752115714135; Fri, 28 Mar 2025 05:54:38 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 79A5C11B2; Fri, 28 Mar 2025 08:54:37 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 7770A12D0; Fri, 28 Mar 2025 08:52:58 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id CFE4E1293; Fri, 28 Mar 2025 08:52:53 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id CCEE812AB for ; Fri, 28 Mar 2025 08:52:46 -0400 (EDT) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-193-y3YOsXQbNdaRomZnZuuhTQ-1; Fri, 28 Mar 2025 08:52:45 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6266D196D2CF for ; Fri, 28 Mar 2025 12:52:44 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 56E3C180174E; Fri, 28 Mar 2025 12:52:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166366; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gvMWN022x6mo6by70svHoIamPVANfdDKcW0lgOigJJk=; b=CgCz19TTmjoCHpWQ5ot4FEdiqMcuUpVWhCTX9nG8OWifVuzuDW6EDdnrjKhZRvOXRyeuNN IP2vChSLb3hVxLuxa325aViGGqE8roPpiX9SmzlrvJXZaH2pOYfBtZHlLICKh59ohj1fjy p6zbmSDcDO94+2AUmHGqqefeOmczcAc= X-MC-Unique: y3YOsXQbNdaRomZnZuuhTQ-1 X-Mimecast-MFC-AGG-ID: y3YOsXQbNdaRomZnZuuhTQ_1743166364 To: devel@lists.libvirt.org Subject: [PATCH 4/8] virStorageNetHostDefClear: Move into virStorageNetHostDefFree Date: Fri, 28 Mar 2025 13:52:30 +0100 Message-ID: <507106e1035c5e023254fdcb5cb422032c34622a.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: lH_tI_1LiaDTAhZYZcK6K3q0Y3gIRrNPT_hgllM54f0_1743166364 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: 4SRTQ65WDDFWIYTIPITO47T5CRQ5DDML X-Message-ID-Hash: 4SRTQ65WDDFWIYTIPITO47T5CRQ5DDML X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166479799019000 Content-Type: text/plain; charset="utf-8" From: Peter Krempa There are no other callers. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/storage_source_conf.c | 19 +++++-------------- src/conf/storage_source_conf.h | 3 --- src/libvirt_private.syms | 1 - 3 files changed, 5 insertions(+), 18 deletions(-) diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c index db12dfd961..9f28580406 100644 --- a/src/conf/storage_source_conf.c +++ b/src/conf/storage_source_conf.c @@ -142,18 +142,6 @@ virStorageSourceHasBacking(const virStorageSource *src) } -void -virStorageNetHostDefClear(virStorageNetHostDef *def) -{ - if (!def) - return; - - VIR_FREE(def->name); - VIR_FREE(def->socket); - VIR_FREE(def->fdgroup); -} - - void virStorageNetHostDefFree(size_t nhosts, virStorageNetHostDef *hosts) @@ -163,8 +151,11 @@ virStorageNetHostDefFree(size_t nhosts, if (!hosts) return; - for (i =3D 0; i < nhosts; i++) - virStorageNetHostDefClear(&hosts[i]); + for (i =3D 0; i < nhosts; i++) { + g_free(hosts[i].name); + g_free(hosts[i].socket); + g_free(hosts[i].fdgroup); + } g_free(hosts); } diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index 52ed303657..de7895e637 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -505,9 +505,6 @@ virSecurityDeviceLabelDef * virStorageSourceGetSecurityLabelDef(virStorageSource *src, const char *model); -void -virStorageNetHostDefClear(virStorageNetHostDef *def); - void virStorageNetHostDefFree(size_t nhosts, virStorageNetHostDef *hosts); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 812fa4e435..a8ebf9efd8 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1153,7 +1153,6 @@ virStorageFileFeatureTypeFromString; virStorageFileFeatureTypeToString; virStorageFileFormatTypeFromString; virStorageFileFormatTypeToString; -virStorageNetHostDefClear; virStorageNetHostDefCopy; virStorageNetHostDefFree; virStorageNetHostTransportTypeFromString; --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166504; cv=none; d=zohomail.com; s=zohoarc; b=YJhN+/DxFHe5jQSrnooyTgxfiK2Dz5pWdlqPqp+hvTCnUmOZPr3SozQ/jL3UlbfnutrywzhWq9ZbzWMDI9DZbxjTOQNRRKISO/s7rOsqjcP+ZGrFxoO7WvPIe8qxaI6LMiExCPXpNwMBk8aNEbz0rpgWnIsHp79lxW4YB/gQWBo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166504; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=pg5Md4MUhrwSHvp8jDLIFUow7+WkDIFWFO1vhuacwR8=; b=kd9E/TAzqlOT7d6fpCdSvTaRz1XDwRODIme2DzC4jfx9HXBw+H0rGPqP46+zAWRhJzlBPGioeZoW2XcdgTb2fLWgCXfnRgbYAqX8Cg/BO+V8XckcV1GpBCXDASi0uW5O2nAEwuLRSjiZB5ex8ZDZ8q72cUz1pOb7k1wPQ14i9fQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 174316650476134.80451962200971; Fri, 28 Mar 2025 05:55:04 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id D65D7136A; Fri, 28 Mar 2025 08:55:03 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id AD7EF11FB; Fri, 28 Mar 2025 08:53:05 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id C87AD1219; Fri, 28 Mar 2025 08:53:00 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id AC0271219 for ; Fri, 28 Mar 2025 08:52:48 -0400 (EDT) Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-228-TS9RclrwMhCOFEuefxz_DA-1; Fri, 28 Mar 2025 08:52:46 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DD01818EBE8F for ; Fri, 28 Mar 2025 12:52:45 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D4A521828A9E; Fri, 28 Mar 2025 12:52:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166368; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=KwjYFkDUZ8pD6dMnHLL8GEqeG4ZbdOp5zRk5a2lGbPw=; b=cupXNpGS+JLmD1o1Cu1dn9FM0cAmNQvLuciiK6dKrKWTQ8LXEaWB96vvW+o+QsOSjBowKE Q8Fu6NyAasFIXCVK0oSR/ElDKZV6L4tIVT9mou3M/4Y2B1Ff+YjHBgN30DDTQokj47fv7j 7Y5oA7E2j8ZIPI/NtSQYaLq4N15oqYU= X-MC-Unique: TS9RclrwMhCOFEuefxz_DA-1 X-Mimecast-MFC-AGG-ID: TS9RclrwMhCOFEuefxz_DA_1743166366 To: devel@lists.libvirt.org Subject: [PATCH 5/8] qemu: monitor: Support FD passing of sockets to 'qemuMonitorJSONNBDServerStart' Date: Fri, 28 Mar 2025 13:52:31 +0100 Message-ID: <61597a6daee4b3b2a189f47540fef171527ae59c.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: lWBz3PW0j06qI1tSVpdVK7wYYqtnnqstOBfqX4svPkc_1743166366 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: UQTG33BAGHCOUV4LBRQIFYJYRIJURKR6 X-Message-ID-Hash: UQTG33BAGHCOUV4LBRQIFYJYRIJURKR6 X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166508921019100 Content-Type: text/plain; charset="utf-8" From: Peter Krempa Upcoming patches will extend the FD passing infrastructure to the backup job so that users can pass an opened socket instead of qemu opening it themself to bypass difficulities caused by containerizing libvirt. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/storage_source_conf.c | 1 + src/conf/storage_source_conf.h | 1 + src/qemu/qemu_monitor_json.c | 22 +++++++++++++++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/conf/storage_source_conf.c b/src/conf/storage_source_conf.c index 9f28580406..8a063be244 100644 --- a/src/conf/storage_source_conf.c +++ b/src/conf/storage_source_conf.c @@ -155,6 +155,7 @@ virStorageNetHostDefFree(size_t nhosts, g_free(hosts[i].name); g_free(hosts[i].socket); g_free(hosts[i].fdgroup); + g_free(hosts[i].qemu_fdname); } g_free(hosts); diff --git a/src/conf/storage_source_conf.h b/src/conf/storage_source_conf.h index de7895e637..ebddf28cd6 100644 --- a/src/conf/storage_source_conf.h +++ b/src/conf/storage_source_conf.h @@ -157,6 +157,7 @@ struct _virStorageNetHostDef { char *socket; /* path to unix socket */ char *fdgroup; + char *qemu_fdname; /* name used with 'getfd' to pass to qemu - interna= l */ }; diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 994cf53d9f..34ed42b004 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -6323,6 +6323,24 @@ qemuMonitorJSONBuildUnixSocketAddress(const char *pa= th) } +static virJSONValue * +qemuMonitorJSONBuildFDSocketAddress(const char *name) +{ + g_autoptr(virJSONValue) addr =3D NULL; + g_autoptr(virJSONValue) data =3D NULL; + + if (virJSONValueObjectAdd(&data, "s:str", name, NULL) < 0) + return NULL; + + if (virJSONValueObjectAdd(&addr, + "s:type", "fd", + "a:data", &data, NULL) < 0) + return NULL; + + return g_steal_pointer(&addr); +} + + int qemuMonitorJSONNBDServerStart(qemuMonitor *mon, const virStorageNetHostDef *server, @@ -6341,8 +6359,10 @@ qemuMonitorJSONNBDServerStart(qemuMonitor *mon, case VIR_STORAGE_NET_HOST_TRANS_UNIX: addr =3D qemuMonitorJSONBuildUnixSocketAddress(server->socket); break; - case VIR_STORAGE_NET_HOST_TRANS_RDMA: case VIR_STORAGE_NET_HOST_TRANS_FD: + addr =3D qemuMonitorJSONBuildFDSocketAddress(server->qemu_fdname); + break; + case VIR_STORAGE_NET_HOST_TRANS_RDMA: case VIR_STORAGE_NET_HOST_TRANS_LAST: virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("invalid server address")); --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166528; cv=none; d=zohomail.com; s=zohoarc; b=Pla6Mtk7+M/peoC+eBliSva7Nqoqws8aGocziw6lZlXcgItu6c7ZgJ9riSXCaBzABUCVu8WA131FVU1Br2A8EQd004+huYMeSuHZlM+/PdjDJWlfSvHMcK48KWjjCytMhj2LR/Q18F1AuhHWdGlMItydGc2tJ+k5YJGuFM3tAt4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166528; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=YmjdGYP3+1T8safZp70UYUEagmMdE+G145u8Ixd2RjI=; b=OhtWimpYjUefjFi0zXrL+VOegtiJUE1giVNfPK91GDpJplw9VFuWQD3f8ou1HFEq8MO/URvhxdyZknBcUmNOIQi5eqG4kuAOJ84xWT6VY8BVx1dZA9TVeZvcjkiNqFI1ezDZBKnaFKyIelWI8B0e/V/EZTqGJUzG1dpw5qCOz3A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166528166106.70969152533587; Fri, 28 Mar 2025 05:55:28 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 334C81384; Fri, 28 Mar 2025 08:55:27 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id A3DFE1300; Fri, 28 Mar 2025 08:53:08 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 44627126C; Fri, 28 Mar 2025 08:53:02 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 1B1F7130D for ; Fri, 28 Mar 2025 08:52:50 -0400 (EDT) Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-171-txymJWGfOHWyXuoxH2zbxg-1; Fri, 28 Mar 2025 08:52:48 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6A90D19560B0 for ; Fri, 28 Mar 2025 12:52:47 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 60C7C1828AA8; Fri, 28 Mar 2025 12:52:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166369; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Si/4q1xChIg5VGjgEagj0aNIBnJ7V4D8vSbABS9laoo=; b=FXMUT1MjRyMhi8GDfihpEph6SNA8fabwK5gsXeY2zkPpNHqUDAVlTc5NjLASeQASmHE1eu yg+nIKQS8HbcrMiHBvwk8e8rY2zxvS7sgbl1uxydjsW96m55Pp8/zWk5OpqPu5u9NtMofr rtTanbh3Nk2qJks2HIRK/hdigXydqo8= X-MC-Unique: txymJWGfOHWyXuoxH2zbxg-1 X-Mimecast-MFC-AGG-ID: txymJWGfOHWyXuoxH2zbxg_1743166367 To: devel@lists.libvirt.org Subject: [PATCH 6/8] backup: Add support for passing server socket file descriptor to backup NBD server Date: Fri, 28 Mar 2025 13:52:32 +0100 Message-ID: <8b027390f4cb8c19e628ed30ffb8cd2daf3943d0.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: H02L-KUK69VJr1la-3KCgbNuzOcy7xFptgM28XYjoAw_1743166367 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: EREYBG6R5QH7TPZZUMQNUC4NY2PMYIDC X-Message-ID-Hash: EREYBG6R5QH7TPZZUMQNUC4NY2PMYIDC X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166530089019100 Content-Type: text/plain; charset="utf-8" From: Peter Krempa In deployments where libvirt is containerized together with the VM it may be hard for the management application to access listening sockets inside the container from the outside. This patch implements "transport=3D'fd'" for the NBD server definition for backups which allows to use the existing "virDomainFDAssociate()" to pass FD to a pre-opened server socket to qemu instead of trying to create it by qemu. Add schema, enable the parser, add formatter and implemet the actual passing for the qemu backup code. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- docs/formatbackup.rst | 21 +++++++++++++++++++++ src/conf/backup_conf.c | 3 ++- src/conf/schemas/domainbackup.rng | 6 ++++++ src/qemu/qemu_backup.c | 27 +++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 1 deletion(-) diff --git a/docs/formatbackup.rst b/docs/formatbackup.rst index 02847fd5d4..155a45a22f 100644 --- a/docs/formatbackup.rst +++ b/docs/formatbackup.rst @@ -1,3 +1,5 @@ + .. role:: since + Backup XML format =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D @@ -42,6 +44,25 @@ were supplied). The following child elements and attribu= tes are supported: necessary to set up an NBD server that exposes the content of each disk= at the time the backup is started. + In addition to the above the NBD server used for backups allows using + ``transport=3D'fd' fdgroup=3D'NAME'`` where ``NAME`` is the name used w= ith + ``virDomainFDAssociate()`` to pass a pre-opened server socket file desc= riptor + to qemu. :since:`Since 11.3.0` + + Example code to pass a socket with libvirt-python bindings:: + + import socket + import libvirt + + s =3D socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s.bind("/path/to/socket") + + fdlist =3D [ s.fileno() ] + + conn =3D libvirt.open() + dom =3D conn.lookupByName("VMNAME") + dom.FDAssociate("NAME", fdlist) + Note that for the QEMU hypervisor the TLS environment in controlled usi= ng ``backup_tls_x509_cert_dir``, ``backup_tls_x509_verify``, and ``backup_tls_x509_secret_uuid`` properties in ``/etc/libvirt/qemu.conf`= `. diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c index 1bdfbfa3d6..b20292af3d 100644 --- a/src/conf/backup_conf.c +++ b/src/conf/backup_conf.c @@ -228,7 +228,7 @@ virDomainBackupDefParseXML(xmlXPathContextPtr ctxt, def->server =3D g_new0(virStorageNetHostDef, 1); - if (virDomainStorageNetworkParseHost(node, def->server, false) < 0) + if (virDomainStorageNetworkParseHost(node, def->server, true) < 0) return NULL; if (def->server->transport =3D=3D VIR_STORAGE_NET_HOST_TRANS_RDMA)= { @@ -388,6 +388,7 @@ virDomainBackupDefFormat(virBuffer *buf, if (def->server->port) virBufferAsprintf(&serverAttrBuf, " port=3D'%u'", def->server-= >port); virBufferEscapeString(&serverAttrBuf, " socket=3D'%s'", def->serve= r->socket); + virBufferEscapeString(&serverAttrBuf, " fdgroup=3D'%s'", def->serv= er->fdgroup); } virXMLFormatElement(&childBuf, "server", &serverAttrBuf, NULL); diff --git a/src/conf/schemas/domainbackup.rng b/src/conf/schemas/domainbac= kup.rng index 80ba155aad..91cf2a7bbd 100644 --- a/src/conf/schemas/domainbackup.rng +++ b/src/conf/schemas/domainbackup.rng @@ -90,6 +90,12 @@ + + + fd + + + diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 2935153cdf..f6ee31dc2a 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -761,6 +761,7 @@ qemuBackupBegin(virDomainObj *vm, bool reuse =3D (flags & VIR_DOMAIN_BACKUP_BEGIN_REUSE_EXTERNAL); int rc =3D 0; int ret =3D -1; + g_autoptr(qemuFDPassDirect) fdpass =3D NULL; virCheckFlags(VIR_DOMAIN_BACKUP_BEGIN_REUSE_EXTERNAL, -1); @@ -847,6 +848,29 @@ qemuBackupBegin(virDomainObj *vm, priv->backup =3D g_steal_pointer(&def); + if (pull && priv->backup->server->fdgroup) { + virStorageSourceFDTuple *fdt =3D NULL; + VIR_AUTOCLOSE fdcopy =3D -1; + + if (!(fdt =3D virHashLookup(priv->fds, priv->backup->server->fdgro= up))) { + virReportError(VIR_ERR_INVALID_ARG, + _("file descriptor group '%1$s' was not associa= ted with the domain"), + priv->backup->server->fdgroup); + goto endjob; + } + + if (fdt->nfds !=3D 1) { + virReportError(VIR_ERR_INVALID_ARG, + _("file descriptor group '%1$s' must contain on= ly 1 file descriptor for NBD server"), + priv->backup->server->fdgroup); + goto endjob; + } + + priv->backup->server->qemu_fdname =3D g_strdup("libvirt-backup-nbd= "); + fdcopy =3D dup(fdt->fds[0]); + fdpass =3D qemuFDPassDirectNew(priv->backup->server->qemu_fdname, = &fdcopy); + } + if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_BACKUP) < 0) goto endjob; @@ -857,6 +881,9 @@ qemuBackupBegin(virDomainObj *vm, if (rc =3D=3D 0 && tlsProps) rc =3D qemuMonitorAddObject(priv->mon, &tlsProps, &tlsAlias); + if (rc =3D=3D 0 && fdpass) + rc =3D qemuFDPassDirectTransferMonitor(fdpass, priv->mon); + if (rc =3D=3D 0) { if ((rc =3D qemuMonitorNBDServerStart(priv->mon, priv->backup-= >server, tlsAlias)) =3D=3D 0) nbd_running =3D true; --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166546; cv=none; d=zohomail.com; s=zohoarc; b=a8L0Nv8BCxXf4JWM50pypDxHO//tIc+eH4GJEAk+u3ezEjcoAIGsdld3nBetiZSB9t4G+oSg3rK+35C2/KGb76E9gOu+Pe2rdWa0wIWvXoJFDM6gseaXM0LFdJijtopjg9g3qw/f+jf8PGVBm+3kNbzfpWh36fGgZa/TwujCCuQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166546; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=/pgmRUkRMLItUjvdgxV3YcyEPNDla8Icsjs/aDualMo=; b=cstrM1xm4urv4M4ICV+EX2Ry802AuuytpLiS8Dxye5/cFVJ7/oFSYbQM5RnuVXhm5dJPzPqUrarlw0K4eKaBhmzrIFOk0P2ULPBTz0C2odrhXLPDJ9Bu71nv/kHMMCE7XdkC64MRRptGfF3Gv1WkDez+yshKLnFZMXUGZ42Asic= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166546986694.842099104653; Fri, 28 Mar 2025 05:55:46 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 159701276; Fri, 28 Mar 2025 08:55:46 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 8DDFE1373; Fri, 28 Mar 2025 08:53:10 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 92EEF1298; Fri, 28 Mar 2025 08:53:03 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 4BC6D1290 for ; Fri, 28 Mar 2025 08:52:51 -0400 (EDT) Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-509-W6maXIL1NBWTKBbNojXE2Q-1; Fri, 28 Mar 2025 08:52:49 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E4321196DF01 for ; Fri, 28 Mar 2025 12:52:48 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E14C41828AA5; Fri, 28 Mar 2025 12:52:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166371; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Jq570umbxYYyO38nQT1QoXvc6vGUxdJQ62cXRt0Wwg8=; b=iMthlIkW6dV45BQeCH3TOBAq/43im5h+SmdnfR/D+1czrBJV0yDqEaxZuCnxQPTqLoyK4z hhI2Wxk6jPMfBFTw9wNspUM4OgfCG+ng9wGtl50WQRAhsJqcqOntr9F/vNcePXCXwwXyRL Li5wrRlO0l5v5T1wKDYnZBBLBiBbK2s= X-MC-Unique: W6maXIL1NBWTKBbNojXE2Q-1 X-Mimecast-MFC-AGG-ID: W6maXIL1NBWTKBbNojXE2Q_1743166369 To: devel@lists.libvirt.org Subject: [PATCH 7/8] tests: domainbackupxml2xml: Add test case for pull-mode backup with NBD transport='fd' Date: Fri, 28 Mar 2025 13:52:33 +0100 Message-ID: <320dbc6fcb3f345164dfc22cb44d2038fb3bf2c9.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: GFXabd7WzH7RBohejdWMrB4jkt6xvRdoLadvlm6VoBc_1743166369 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: A7RAMZAGYLSK6WP55INKIRRWAXKLCDGK X-Message-ID-Hash: A7RAMZAGYLSK6WP55INKIRRWAXKLCDGK X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166548075019100 Content-Type: text/plain; charset="utf-8" From: Peter Krempa Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- .../domainbackupxml2xmlin/backup-pull-fd.xml | 22 ++++++++++++++++++ .../domainbackupxml2xmlout/backup-pull-fd.xml | 23 +++++++++++++++++++ tests/genericxml2xmltest.c | 1 + 3 files changed, 46 insertions(+) create mode 100644 tests/domainbackupxml2xmlin/backup-pull-fd.xml create mode 100644 tests/domainbackupxml2xmlout/backup-pull-fd.xml diff --git a/tests/domainbackupxml2xmlin/backup-pull-fd.xml b/tests/domainb= ackupxml2xmlin/backup-pull-fd.xml new file mode 100644 index 0000000000..02ae20d665 --- /dev/null +++ b/tests/domainbackupxml2xmlin/backup-pull-fd.xml @@ -0,0 +1,22 @@ + + 1525889631 + + + + + + + + + + + + + + + + + + + + diff --git a/tests/domainbackupxml2xmlout/backup-pull-fd.xml b/tests/domain= backupxml2xmlout/backup-pull-fd.xml new file mode 100644 index 0000000000..16b9b0be50 --- /dev/null +++ b/tests/domainbackupxml2xmlout/backup-pull-fd.xml @@ -0,0 +1,23 @@ + + 1525889631 + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/genericxml2xmltest.c b/tests/genericxml2xmltest.c index b46b9515c3..dd26a8589d 100644 --- a/tests/genericxml2xmltest.c +++ b/tests/genericxml2xmltest.c @@ -245,6 +245,7 @@ mymain(void) DO_TEST_BACKUP("empty"); DO_TEST_BACKUP("backup-pull"); DO_TEST_BACKUP("backup-pull-unix"); + DO_TEST_BACKUP("backup-pull-fd"); DO_TEST_BACKUP("backup-pull-seclabel"); DO_TEST_BACKUP("backup-pull-encrypted"); DO_TEST_BACKUP("backup-push"); --=20 2.49.0 From nobody Tue Dec 16 03:19:50 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1743166561; cv=none; d=zohomail.com; s=zohoarc; b=NOJdbJy2JELyz289Bd+l/Q3vZ62St+4QXynHRxFtxG9YJAAHm/nQ9lGIiQl9PFe1qd1mltHkfu3VSGz3XztjJ83s2qDNF4kNp/yh/Frl13DJSQPk3Q8DGHH0UGYI5839LH5mwnoMtnLKpNXphZYXkm9/wALZ+SBNSWRULMIcD4I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743166561; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=cux3F0blSBj+ZsrMhqQTaXxJJhXosm1QS+QW90rPh3g=; b=UmVtX53nnO5cviXuBPCiBjAgDIYc5Nfer7Hq80cQV8XPPe+LaQdID4AhErbk69+yKg/2og9h322nypm00CNzrofK1aANjMkf0256y0H46thCZJmAFyN+hghy4qPkimzPbQm610hRAGfq+8+Po4gT+gqxs4S9cqcw4wMJNTfOzlo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1743166561853264.8610900710461; Fri, 28 Mar 2025 05:56:01 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id EB09E1223; Fri, 28 Mar 2025 08:56:00 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id F05581378; Fri, 28 Mar 2025 08:53:13 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id CFE6B1253; Fri, 28 Mar 2025 08:53:10 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id DB26112FB for ; Fri, 28 Mar 2025 08:52:52 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-53-DjrVwkLMO1KEaTMwtpszvA-1; Fri, 28 Mar 2025 08:52:51 -0400 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 76B9B180087D for ; Fri, 28 Mar 2025 12:52:50 +0000 (UTC) Received: from speedmetal.lan (unknown [10.44.22.8]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 663311828AAA; Fri, 28 Mar 2025 12:52:49 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743166372; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZiVnAvV0Qh+cl8XlOKv79HdIGyZYRsdbsGOyjDHrhHU=; b=aTkNcDOyhRRcSbTV1B7nFl0SGXPICbjqXu6EgojouTHqfD++QJ5Tc69yvsV8sgwmTE61oJ K+WCfcmreaPOmNaNOcs9UQhpCMTvCsd4gkFsrcAJxNkNTyVluDvM/qKPQ5qnJDEeKzmjRK a9uNsd2Bi1+XyJ/To4/RllvfCj4890A= X-MC-Unique: DjrVwkLMO1KEaTMwtpszvA-1 X-Mimecast-MFC-AGG-ID: DjrVwkLMO1KEaTMwtpszvA_1743166370 To: devel@lists.libvirt.org Subject: [PATCH 8/8] qemu: monitor: Improve field annotations in QEMU_CHECK_MONITOR Date: Fri, 28 Mar 2025 13:52:34 +0100 Message-ID: <7ca7babfcd4806f362a28ffeac3a55670f3845eb.1743166287.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 2Duv2fkOW3ylB9ZH52SsCjBPrnPfd9mg_GeYxojksM0_1743166370 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: K7FKUE75IDWZAQC42G5MSHVJ356RUMZV X-Message-ID-Hash: K7FKUE75IDWZAQC42G5MSHVJ356RUMZV X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Peter Krempa X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: Peter Krempa via Devel Reply-To: Peter Krempa X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1743166564050019100 Content-Type: text/plain; charset="utf-8" From: Peter Krempa The macro checking monitor object state also logs information such as the monitor object pointer and the number of the monitor FD. Name the field 'monfd' instead of 'fd' as it's confusing when debugging FD pasing via monitor. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_monitor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 6249dc8299..fc215def13 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -80,7 +80,7 @@ VIR_LOG_INIT("qemu.qemu_monitor"); _("monitor must not be NULL")); \ exit; \ } \ - VIR_DEBUG("mon:%p vm:%p fd:%d", mon, mon->vm, mon->fd); \ + VIR_DEBUG("mon:%p vm:%p monfd:%d", mon, mon->vm, mon->fd); \ } while (0) /* Check monitor and return NULL on error */ --=20 2.49.0