From nobody Sun Apr 19 12:43:19 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1776439306; cv=pass; d=zohomail.com; s=zohoarc; b=MW0Z+Wpj+sDgc+oFR1rYgKPF2/ngIrdezy2Izk0dBlFVSRnNRX7zZ23LGZ4ycjn0V+vkHMVyastzjC11tvqJP119pmtxl/Ctcb7PhVwrrYr0CtoXaf+naICP1p6JqXDvG80nmmhJ+x73wql9FfwkEZry4M7WjC4wzn2QJoAXncA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776439306; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=eeBqC6ovvoFUJyoKdp1onFrBmtZF8L7Pim0Hn13fRLg=; b=RXL+LSO6ztrNSTXKddOqViwbsAXCuzLLdKq9Giqdu5znezWI3hPSV8cXFh3CPT5eNE5BPmWk0q5QyG/gP9tR2K3ppmoKiSfDOgLro0alGfiPz/nuxbbik2e3iFqyxIEiT2w5slxdrdC19zKOFW96Gz3vtjIi0kzc7cqniGgDTwI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1776439306019295.68630633893474; Fri, 17 Apr 2026 08:21:46 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 588E43F304; Fri, 17 Apr 2026 11:21:45 -0400 (EDT) Received: from [172.19.199.6] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 5EEC441A7E; Fri, 17 Apr 2026 11:18:18 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id C61A93F83C; Fri, 17 Apr 2026 11:17:57 -0400 (EDT) Received: from mx0b-002c1b01.pphosted.com (mx0b-002c1b01.pphosted.com [148.163.155.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 3813F418FC for ; Fri, 17 Apr 2026 11:15:35 -0400 (EDT) Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63H6OQX94049298 for ; Fri, 17 Apr 2026 07:45:23 -0700 Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11022115.outbound.protection.outlook.com [52.101.48.115]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4djv44bmc9-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Fri, 17 Apr 2026 07:45:23 -0700 (PDT) Received: from PH0PR02MB7159.namprd02.prod.outlook.com (2603:10b6:510:16::8) by MN2PR02MB6782.namprd02.prod.outlook.com (2603:10b6:208:1d5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr 2026 14:45:21 +0000 Received: from PH0PR02MB7159.namprd02.prod.outlook.com ([fe80::8e97:bc32:822c:b250]) by PH0PR02MB7159.namprd02.prod.outlook.com ([fe80::8e97:bc32:822c:b250%6]) with mapi id 15.20.9818.023; Fri, 17 Apr 2026 14:45:21 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=eeBqC6ovvoFUJyoKdp1onFrBmtZF8L7Pim0Hn13fR Lg=; b=jAtU+xEvu4Kxiw9jbNNBjcMSHJG2UZ58/BTbdOgOay9yiVLIOLnVrdPXp 1iGd2e/8+Sq4aPM5eervD0nHoTtC4n4PCwMg/SXVPQN1KJCkPpH56Uo9FTEsI/qt V35qvWJ6EKBYTW5xE1Q5WsltvsH/xmc7eEVHurAsHRuRtMHuBqx0lRrMQGd8+os1 r2Fxw13BbswwbhO/+LyNfwXKTv2/eJPI7Qu+wG+X5t+W/1cFNsnNs0xmBI90fJJb 0AzyNRGms3B2Y3VpeA4z7NfWpXRcWpL/f4UPF1pU2vrc6VWOpsM82xlo6JerFgO3 an77GNTI26iLuLuB6d45APv6n6JXw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RXnhW5T/ChgN77LTk9wIdVR3xarFBIdmCs4duLQWPLPazGxm3toMjQv0jJpe0p0TpNNkVFmOH6g+lE8x/yfrdaMvdVjcmMcaEH/dbOgNaZMIdPqdWO34fJeT5I0KgTkFmy0+y9zsZsVHjCXHUY8GVhQ5/SMWrzD2F5qwKTdsrKWW0C0P6PKgUX+659MaK+qnKzVthQMqmRITyGk+31ryATS4hqbzeTYwMJsudttN9TuQQJzhr+q7PGtD/YWzgV49nVULlZ6yWR2QncerPumsKxvvDaB08VLv/r/voQIZBhMS/cohx2KkWjRU3OHQJ2k57zAHUn1GyQOsnIYy4jx2ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eeBqC6ovvoFUJyoKdp1onFrBmtZF8L7Pim0Hn13fRLg=; b=O8BoqAFY09I3D24i10zVPyEdRnCHkXYWbIKvXCS8ERtHYErYBHBIFonJH6nYXLVUsDzTdh/k/EYIXrOAb1oy0FKEIFTC7b7P/IioBAD7eaO4ikPspRKDxPzvDDd5BJb9ZEE+B9jt1Me1YqLdof5ZZU3kr+JqiSCmKUibnXwL43rZTj0c+2ukvm9qMex8PmLrVuPttrH6H0X1wqw3ZkD+OylvZarpqSVpwgMD+qyMrZf77OVwsFxFB8J8T4ZIizXnNB76w4tnq6FXsRrDv0FVd5SY8F5ZtZDaWhr4OIGALJZbkoZBbxS7/OEBb0rBlZTj9RGoJ09cLHr62dvv8s8UyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eeBqC6ovvoFUJyoKdp1onFrBmtZF8L7Pim0Hn13fRLg=; b=ijWMyV+jhHQ9iRInYw/kZREIJ99eYzdUZLaknp//rrt/uhyEDrmC5LA6u/RNG9fC3JbHmhk+DRrP0A1dYP+xC86O+wOZ3eGFgYFrzF0bvybg7XR7IUEtBgHTOk3fNkfiimeBWfmmnyt8FVROyC5lvtmYhpKYO+1tNgbYuLnn1LTqyYZAXcENucYE/6qktBd9jgHRX2/5ujEVaLNvFUzKbryPqDGKpHp6CurAhGUnImDBJSkGcUP1rUEEptsfKpaZ2t7/Tj6HLrZVaBZue3KyVZ4IU8qzFe+V88Nf75KX2WWbWnNlYIDdJCYX3o304rDQyqquS6ISFxFanKbSPfGyIw== From: Mark Cave-Ayland To: devel@lists.libvirt.org Subject: [PATCH v3 1/2] remote: allow passing argv to the ext transport Date: Fri, 17 Apr 2026 15:45:09 +0100 Message-ID: <20260417144514.372827-2-mark.caveayland@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260417144514.372827-1-mark.caveayland@nutanix.com> References: <20260417144514.372827-1-mark.caveayland@nutanix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:930:b::17) To PH0PR02MB7159.namprd02.prod.outlook.com (2603:10b6:510:16::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR02MB7159:EE_|MN2PR02MB6782:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ab17441-8d19-4774-6177-08de9c8ff361 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: P+Z9uvMTXjbNP+AVN34hHaLkEYKhD44zr+6ZWFkW3rDxMzuXUBkRGgp73YR+4LhRM45Ick80PuEXQdx57vfUOM+NXwb3GBGo+sfTTGh+EZA3CTx024aJWH4oUN/aa0CZsItaUq6oNq85IpnAYp+GvqbhjX4fpEYtznupi+IiL5pSNQPiCdIMRc3kvah+lK7jVMfw+Rmr/rOvEnrl9/VbY8ZWNshNnygvpNSS33F1b/U2vvA4XrK501FbkbRAgkUtUMg0TsrypMB6lOWN2v3y/UnWAfRZOsZO8p1QUBPsEvijBHk4eUNHKrdG6SVRXAA7IKbHyvqW3PICzUCV1OpS9YL/wwkVqNoEzSy/+HfevYQvdLC9l2D+HvFfsRQEgCZOepgVriaAavKGpvBWV7HC9nWuFQhv4wz+tovrNNLzUihysLxmH1NRSgS7wfukiBmws/YhEqoIO9bCkw4IlNvaGQoluksiV19LnD2olD6NLfdaomTaQCVVmHDcIEj6aiU1psaaxu2+dISkzHwijM5DRMQFD007Ezr+J+vtp6+fN1+k3cwqE2l2lqGV3pJlFO02GbmrTxVL0ThrAEUsYhejHhBs7WSmjvsQMhLCYTNdVWP6v4hkf8vuqHLlVmuvkgDdInkWuxBh2gev8WhVn7QQ5KElhp9EN4l81PnUVggbDqss1pivvp0sXUTRGpc5jFCmsJ9ygD/GpgIEbtey9syhRi1y3NDg+cGmITGdlokAf70= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR02MB7159.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QkI5bnZ3QnhjZXpIMi9LM2FHMGJqNjAxVFcwdCtqdGk0ZFdOOSt2OUlvYlkx?= =?utf-8?B?MUtPQ1pMNE1EeXpXS2dESm4yKzRQZ3FGUiszVm5DREU4TEZ5TzJ4cjVyU1do?= =?utf-8?B?MGM5VTNQMFhZR0lIaUdiQWpDTXE1M3ZOL1JCR3l1SmtDRVk4djhwWDZodGtl?= =?utf-8?B?TlZsdXpJa2pPRWdhQVJLZm9aL0xudGZoVlhST204MTFtOFZESXpBZjdzb2tZ?= =?utf-8?B?L2c1QktJOEdHdm1HcEU3ZmI1ZnNBSjloQXllbFkrRWxkZzlxMk1laGUwQW9r?= =?utf-8?B?amlJTWpmTkRKVlN3Ris4Tk16SjdTeU5TNm1rQ2Z6b2FSU1ZmRmQ0ajQ1dGZr?= =?utf-8?B?V05sOFFEaFVYenRhdVZpVUpYdnVucnFiM0d0T0R1OUZTeVRHTDVFL1FUMXlY?= =?utf-8?B?OEEwRnV4WExMMC9aY2J6VldxMm1nWXc2dklLTGlvSWtET1RJSytGZW91Mmls?= =?utf-8?B?czFlYk9GZFJWeWN5VnhxNWtONGdIeCs0MHN6eFNXSWF4Ykc5SFdtVlk0T3lH?= =?utf-8?B?MTJ0MXVHOGhSRytiTUUzZmpWc0lhcFBEdzVMOUNXeUt1TzQrR21tQnJxa0Y3?= =?utf-8?B?L3pCczVSVnFkdmNsNTVDTWlJNy9ncWFDSWV6SkpVbEVieWlTMDMzRzd4UTNN?= =?utf-8?B?dnRSYnhEK0VnWUZ1WURGUFV5ZGpHYzgzcWRnN3VuckRlNithL3Z3YlZHZmlw?= =?utf-8?B?Rk1MUEZOUkRJcml0Q2FyVkNWWUV4R2t4Y2c4RVdDbXV6b1lrdWY2c2cxcTV4?= =?utf-8?B?QUtvNWQ4T3JDTWxBWndVN1pYU2dIN0N0ckpPaE90ZmpBU1R0bUZObktod3Az?= =?utf-8?B?Q2NmL09ELzVoU0NrTTlpNk02U05YOHd4YU12ZXcxS3Nla1RzUzhEb1JtYzdW?= =?utf-8?B?T1VuM2IwZHZIUDM1UjBUVUVaTUNmSDBDVGJMVnpkcmZpakNtMVJaRHlTZThO?= =?utf-8?B?cGNSSEZiTVpXR1VLa00raHNrQnBwSnZDbkJwL2gwKzREakVoaUhrSEU3RnUw?= =?utf-8?B?U0JQcSs0VERmaUdaaFV1S1crMlFya2dYaGtGamxaRTczcjRNUGYzeFE3QTRV?= =?utf-8?B?c21BZEVZZ29zYkROL2xhODZmSFJWSHdNNU9PVTlmSDh3RUhuVS85ZTlQRXJJ?= =?utf-8?B?SGZ3cWhZTlYzb2daQ29zQkNjTURxcXY4cHdXZUJtZFErcnEyREdnTTVRZWRG?= =?utf-8?B?cllNemtEbHFwRkhHSVd5ZWNsM1ZSUGFHMXRsSnZqM1IzQzZzYjU3Rkwyc0Y5?= =?utf-8?B?aWZzZUNPb09nZjVLRWg1bU5yZlBOSTI1b3lqbkpwclZHeEZYRTFZTEdCaWpD?= =?utf-8?B?dFhYd1dMVEdiZ1VDVWVTUnY1enZocG9qZ2xLR3k3N3M2SnV1K1p1cWtMbzh5?= =?utf-8?B?aGViVXF2eE1hV2dGT2FFb2l3V2IwQVFSTVdBU2dqWHpDRnJiRWxndlk0RXJp?= =?utf-8?B?YnBMVGlNRS9WQUM3ai9odlRSMGhnSXRZV0xLK1o2cHlRakkwQTkrQjFVQk9k?= =?utf-8?B?NjVINnR5K0lOOFJwRXVBbHlpaVBNeUVvQVZCdlNOWXVBcFc3NkIwR3lpSW94?= =?utf-8?B?dHM1cEtKSm1OdVA3Q1JIcHNzckVuS0pVM0QvcDQ1amh0QmlpVEtid3ZybEFm?= =?utf-8?B?YjMvdVhxWXZtNXpGcTdWQnJVVjRTcTBxOUhPeXhNYVdHQktQUmZOdmJqWEVs?= =?utf-8?B?dno1bWxvY1VMWGp6VXVvSmZlNUUvU092Vk1RZlYyOGNJNkNEb09NNWZUdWk5?= =?utf-8?B?cmpzMW40bkNXeTUwdEZuNVhjaU9qR0hBS2pjeXVndFZ3VnpxbDZieFN4ZTNy?= =?utf-8?B?ODVPb2IzZ1pRd3paN3BXYzZUVGF6T0xaVkorMUFLR3lvb3F1S2RSY3VzUWNv?= =?utf-8?B?cHZsY1l2TUtYZ0MwR0ZXS0taQVNTeDRNUDExeFNUWGVqZkdnTGxNZ29Vdmti?= =?utf-8?B?VVhXc3djOVh1dngvLzhxN2R4OXVBbUtaQ0ZYUTNNWTdtTFJGVFJjbEdPS2JU?= =?utf-8?B?Y0xBcjNHUVdwUjFwMU9wUGpOZHhqZDJPVGl5eWlXa1RyaEZiMHl5ZVNnSGp4?= =?utf-8?B?dG9aRUxXSEtjSzFpQTJ3MFhReTh3Vmc4SnBFdUJ2Nlc0OEJvYXJoVThudkIy?= =?utf-8?B?QzlqSHBFMnJxWVVtcktOTjNJS1pJR1UxQktHY3RtRmlKU0lvb2w4cFMxbktr?= =?utf-8?B?SmFtOGN3Tk1VeVdjdWN5QXFqaXhodzQrSXlnSTdSL2wybHRVTzArMGVONjBm?= =?utf-8?B?a2tNZi9QTmgvaUcvZS9OeXRZYitRQWJlQ2NtWUtOWGozRmFuWG1PdDhlVEZV?= =?utf-8?B?aXBvTkdRU1NBM2pqL3ZGSVJpeHRwSS9OL2VoRUZ3VEx4WSthc0c5N0NyTldF?= =?utf-8?Q?suJkvgE08ZZbovm0=3D?= X-Exchange-RoutingPolicyChecked: liRNGBgWufQqWQvByOPHmTmonnVA0j4CyrfEGGvu1HNnyU7lnggx4axoTLpkLxHLOdPBLmIE7U6NWXdHAyhalt3RyItkwCQkRjNaSi6lBwnehva34DZ1+hSapDFzOpxwBRqtYy+MHxtf9s2PXb83IDg7uXjVGgS31bpWgy3NPd9pm8ccDGV0mfXUOm3Vp8XavOBvzkR5k/iICymlt7DVbLXq5e4gb61I8Jid8hCAA1VXaGMVosjnqA5TWecDFgw3WN1aBdL9tkpHzE4FU9a8yiSHx4ZfBh8oqdbWq5k1f+D3xKMM8YKLhC4oSNLf/rUb/8u/sWsIKCCkAEu/ul5wKQ== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6ab17441-8d19-4774-6177-08de9c8ff361 X-MS-Exchange-CrossTenant-AuthSource: PH0PR02MB7159.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2026 14:45:21.2731 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Em5ta6N09GPnIKGO94nqNCkPwEgmDDt93HBxs1z2dsJ46GhonvEK3ZMe0xY1t+/DP2e0XpL4m1MWht1ZrCYR4l4bbg7dlDaZMV4pDm2pr6w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6782 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE3MDE0OCBTYWx0ZWRfX1JhUEGPOUgub F8KxXNtOc6blTMUFDc7tOkue1AK4paB/D+8qTJTw1ynqtaFGipRIZNN/6QdjrVQ5YkTZGLyoVzA pXGvKXATnk9R+SEEGIiAZICTdTHDrUh6slqh7A6A0Ss9Seu9LIRu4MJHQLbxGvI++ROrYYYwfDg gkHtuUV2FPl7VwPFaDKdBTTRoTlbPuT482kD/Uptq+b1YT8d0woHZgqJT9fRtFMQ5Jl/D2ZDf49 SeFMQTK1iJXltKFVq/8t11PvukDRxZseVAgQM3hAq22eoACdwaZREVFrur/f+PllNiWNtY2Ts1E B3Opsq5YRdkfpoqmeMV0REy1QddOB+8CqeEq/j8mpAnBe8y2uFwMuKQZCX57Lr3xYPLQ60sa03l N9EDhgU3ZddLT/DFo9WvfUPzlMkivJdsnKmOoccCi9jFq2m/vnDodp7OpC0YXvchVnvLFtoK2BW iib+3aHFjJGNfT2TA4A== X-Authority-Analysis: v=2.4 cv=Lc8MLDfi c=1 sm=1 tr=0 ts=69e24783 cx=c_pps a=p38iFvuc/7KNR/RXw9CScQ==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=VUi8bpU7OL1Oj2-RSIOF:22 a=64Cc0HZtAAAA:8 a=20KFwNOVAAAA:8 a=sFIU9dLyF53VTBBmGNMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: YMwAk6AXWJ1L89CYy0XgNppc4rIksSRo X-Proofpoint-ORIG-GUID: YMwAk6AXWJ1L89CYy0XgNppc4rIksSRo X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-17_01,2026-04-17_04,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: TTICQ2OSSO5JHNNSFEIPGEVRKJO5YVL6 X-Message-ID-Hash: TTICQ2OSSO5JHNNSFEIPGEVRKJO5YVL6 X-MailFrom: mark.caveayland@nutanix.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1776439308050154100 From: Sergey Dyasli Allow passing arguments to the ext program via the query parameters. The name of each argument is "argv" and it can be repeated multiple times to pass several arguments. URI example: qemu+ext:///system?command=3D/bin/prog&argv=3D192.168.0.10&argv=3D8080 Suggested-by: Daniel P. Berrang=C3=A9 Signed-off-by: Sergey Dyasli Signed-off-by: Mark Cave-Ayland --- src/remote/remote_driver.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index ec71eaed87..5c574eff37 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -805,6 +805,7 @@ static int doRemoteOpenExtractURIArgs(virConnectPtr conn, char **name, char **command, + GPtrArray **extArgs, char **sockname, char **authtype, char **sshauth, @@ -829,6 +830,13 @@ doRemoteOpenExtractURIArgs(virConnectPtr conn, =20 EXTRACT_URI_ARG_STR("name", *name); EXTRACT_URI_ARG_STR("command", *command); + if (STRCASEEQ(var->name, "argv")) { + if (!*extArgs) + *extArgs =3D g_ptr_array_new_with_free_func(g_free); + g_ptr_array_add(*extArgs, g_strdup(var->value)); + var->ignore =3D 1; + continue; + } EXTRACT_URI_ARG_STR("socket", *sockname); EXTRACT_URI_ARG_STR("auth", *authtype); EXTRACT_URI_ARG_STR("sshauth", *sshauth); @@ -895,6 +903,7 @@ doRemoteOpen(virConnectPtr conn, g_autofree char *tls_priority =3D NULL; g_autofree char *name =3D NULL; g_autofree char *command =3D NULL; + g_autoptr(GPtrArray) extArgs =3D NULL; g_autofree char *sockname =3D NULL; g_autofree char *netcat =3D NULL; g_autofree char *port =3D NULL; @@ -945,6 +954,7 @@ doRemoteOpen(virConnectPtr conn, if (doRemoteOpenExtractURIArgs(conn, &name, &command, + &extArgs, &sockname, &authtype, &sshauth, @@ -1195,7 +1205,18 @@ doRemoteOpen(virConnectPtr conn, break; =20 case REMOTE_DRIVER_TRANSPORT_EXT: { - char const *cmd_argv[] =3D { command, NULL }; + size_t nExtArgs =3D extArgs ? extArgs->len : 0; + g_autofree const char **cmd_argv =3D NULL; + size_t idx; + + if (!(cmd_argv =3D g_new0(const char *, nExtArgs + 2))) + goto error; + + cmd_argv[0] =3D command; + + for (idx =3D 0; idx < nExtArgs; idx++) + cmd_argv[idx + 1] =3D g_ptr_array_index(extArgs, idx); + if (!(priv->client =3D virNetClientNewExternal(cmd_argv))) goto error; =20 --=20 2.43.0 From nobody Sun Apr 19 12:43:19 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass(p=none dis=none) header.from=nutanix.com ARC-Seal: i=2; a=rsa-sha256; t=1776439175; cv=pass; d=zohomail.com; s=zohoarc; b=VELfaet5XAAbndXFc9AEa0M2Jw51tzSrlNbILanQFgktsEj3fvULU4DDu3gijTDU3w577k6N+UNC61aWbI+1La0LIsmYZjUqZtogsWa7h2/uK5ZnSTSo7V6CHGwBaE0Sm0jh6mO4VgivplR4fGmn5rnO2FRANT8CnWdbLEyYqmE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776439175; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc; bh=C+nt/aMsfYfEz2b/YbxE0M9rADXrEKmQSCMjl/pT28g=; b=ZbrgVeJXiwIiSZltUexMvfFG0yrkJXh0EVt1mW7rGQ/xqNoZczTIWJ9De+7f3P/aHGr7tzvxPTVKfdYsPqc46Q01t9BoONpxRRRwo5fV82opyU8CwgVU7VN9zRhz43M/4RKtbNfx+PyYLiOmbhtDHb921/eG30ndONAaF5UfeGE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=pass (i=1 dmarc=pass fromdomain=nutanix.com); dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1776439175097334.2373629800194; Fri, 17 Apr 2026 08:19:35 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E305341817; Fri, 17 Apr 2026 11:19:33 -0400 (EDT) Received: from [172.19.199.6] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 064CA4192A; Fri, 17 Apr 2026 11:18:07 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 9AF233F8B1; Fri, 17 Apr 2026 11:17:55 -0400 (EDT) Received: from mx0b-002c1b01.pphosted.com (mx0b-002c1b01.pphosted.com [148.163.155.12]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 523FB41895 for ; Fri, 17 Apr 2026 11:11:35 -0400 (EDT) Received: from pps.filterd (m0127842.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63HDTBZ52050569 for ; Fri, 17 Apr 2026 07:45:26 -0700 Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11022100.outbound.protection.outlook.com [52.101.48.100]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4djv44bmcd-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for ; Fri, 17 Apr 2026 07:45:26 -0700 (PDT) Received: from PH0PR02MB7159.namprd02.prod.outlook.com (2603:10b6:510:16::8) by MN2PR02MB6782.namprd02.prod.outlook.com (2603:10b6:208:1d5::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.25; Fri, 17 Apr 2026 14:45:25 +0000 Received: from PH0PR02MB7159.namprd02.prod.outlook.com ([fe80::8e97:bc32:822c:b250]) by PH0PR02MB7159.namprd02.prod.outlook.com ([fe80::8e97:bc32:822c:b250%6]) with mapi id 15.20.9818.023; Fri, 17 Apr 2026 14:45:24 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 X-Greylist: delayed 1574 seconds by postgrey-1.37 at lists.libvirt.org; Fri, 17 Apr 2026 11:11:35 EDT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=C+nt/aMsfYfEz2b/YbxE0M9rADXrEKmQSCMjl/pT2 8g=; b=igDs+8MK2f3aRekxW1dUOXrGpXdJcIqLXwKeQyBqzlpLTj2WTxt/hc7v3 VLpy63T0CDYstcTLk6reLvvhFNYv9H9ybaKiHW+IcY+Pe//138wBGU1VUL+5fVBz Bt5rugPpAFwRVk044+GIsasmNqqJyhtleDynEGR1u8tXOdUGuTytoPBYASOtoRtL KorSdfJbzxuarLgS1xhfOV+PA6FkXo6kiODX6rMrEP0l1O8DWKjv9aGhEQXxRKDW Dug9LJS3DuHmVn6H/0q7cztk4dD0b5YEAVbiRT2EK7mDyDv/0zUjDjFHFAf7wuwA 57DV1twJKZc34AUsVPX2e7+H2CqUQ== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VuUHnunnICWrS01B85Qf8TJD1QXJbHl1Zw0hvIC2zxy1o6CT+qMx83f0L64OuJYPTfIP8NG93WHzC3ZP3GI5QQY+pU3AcYOnNLhDRHSji8fDdJ2E+gguEVjJd7XsRgeyKCGj1AORV7HkLCMI4ebR/KO5jj91RHeKcuIL9GHlxQawHxUcVo3oMMtLhvttSbSPWSatq2zw9t802A4VtxVN46mZVu0SdJnmKhIdTUhqHIIt6TSv3+X+IR1qDT4mY/Tr5TYFdKtE48HrIoGUutBX/UMLkOBrY6+qAx+b7r0i7IP7/hPJKrvUiciSvGT9+8ERxbyw2uzYa1RES8tfafN5EA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=C+nt/aMsfYfEz2b/YbxE0M9rADXrEKmQSCMjl/pT28g=; b=ZuJ2F6cR6iNgDywgW3lrHjPPu7UH+Ees71yotXJwYsMOlXDb/xqehuPkFRgXVVLoas7kXvlLcxsziMQ0OWx2UKbJBtJfaKPWzAQdZOK7FbZLiB53mcJNLzsgWZL3+l+ck/kP1TJobwHX6I1m9yLhBvr7X2Cx0QyTB7To9I3QPA8XzLmqHhH7eFSanbgVU3Ih1PWyKi7aONj7qF/8ZD1BTWN4PsrnZFaAhbdOuCvKFCrbg04yR/Zgqnh1imQPsvWUxMoTT4/l1R5FAb1gcyvUL5+zN+RA0Ovd79rz4cU6BSj7q2YsrM+USTEXkqxAAxtmlIP5ivFZDCADCWj5vdThZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nutanix.com; dmarc=pass action=none header.from=nutanix.com; dkim=pass header.d=nutanix.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C+nt/aMsfYfEz2b/YbxE0M9rADXrEKmQSCMjl/pT28g=; b=rdjqVtlzfNy/AKGF50afA30bISAfk0tz5BHcYVNK9GKj3KjTxgB0bUnqtCakmUoSUFj9fjwIml3td/TvZI08NBezMbzP6Fz4zZ8GcWqOxiiccUeCst51BJcIkJwb4DI99gEbvCXUjOpvhn6gSA9nKn0EbXoVBXl/3mduJSxS5Q8i65J4KL9hGtPGAJDZXsAqL1IY0vVJepoP4w5osC8MOijogBpfwr/JJyO5RKUAJmCsBseP6y6to/L3MMu1aXHQD0jU85bsGJ9+Rva0fSCqnaF3V2RsmKLzYannSxDAsYThFlZ7n+6cQ2KAHO3v8Zmlzt6D7fzR2a8FdTMCNDJp7A== From: Mark Cave-Ayland To: devel@lists.libvirt.org Subject: [PATCH v3 2/2] remote: allow migrations with the ext transport Date: Fri, 17 Apr 2026 15:45:10 +0100 Message-ID: <20260417144514.372827-3-mark.caveayland@nutanix.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260417144514.372827-1-mark.caveayland@nutanix.com> References: <20260417144514.372827-1-mark.caveayland@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: CY5P221CA0129.NAMP221.PROD.OUTLOOK.COM (2603:10b6:930:1f::14) To PH0PR02MB7159.namprd02.prod.outlook.com (2603:10b6:510:16::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR02MB7159:EE_|MN2PR02MB6782:EE_ X-MS-Office365-Filtering-Correlation-Id: 073e4d49-37d0-4b51-9472-08de9c8ff58b x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: gp8f43XE0bEbqmhPGG8TdUjXccyJ+/WaHOd0izXbmF4l7CPBhrhpBtYRMxg1lgOJ1yCK8iZJWwbZFEBOPDJeoyDtsSC2NjitEol/Of+nl1StjKhMwC8eLTIRHIrSxqfcfyTDteTHMN9e3pGqap00b+lYM8ZDL91oBhLL3dgOyqlWb0M2wPDYc59TfrZy1mn4LbUkC6cXD5g6wfsdZ8stiG4tyM90fbOk7761OmKLrMtS9H3TxLJuBdlShz40XbDDCPfj0KLqcw8EIGosrEnN2OW+n3y3JcnKdVqmejo0f3lCKKwEk6i/YY0wRQgGpnx2fAGs/Y1mRFz0pw5+ox68EaX+Jn1EMEsQ2OepmL+yRWXR1o5sqjGtNkZwaN4o4zcdkmG76mcPlBk4W6rGeeZT5G6PKF/nT+FAtHlLX57h9kciCJIIjYaJbwZuUTHTDeaDU/bG8Nl1iwHk7k1IJ5VvoVFKGlg/VIx4RlrsBUi/qBTqhM+rLxP9Lkt50KDJRbWHQ0Ql5hHUZ60JURrv+vmk4VQfbY4MaEQWtfVgEPQU0nO7vaj2cdlJW+RFgHXe9afsWvs3uEZNNM3P0FAppSXq8ajtkM7XsZZRGwXVc26KGeRGhHje/wR+AYlhBakeF46/Z2LLjDudVIdjAveg28V41XKYgZB9tThXbnt4aCr2ZUdnrkGRxbRs0bH6NSQ+EGiSB3HwngKDw2EnJCpCes4PO8/izD/gCSpBQcl3eI86pQQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR02MB7159.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hltiBHuDVFuJX7oAseFqA62KwDwJWrge/+cpawR1/AhRaksyN4OdkV2RjLqX?= =?us-ascii?Q?unHPBaCdbeKBM+bSF2a69GIwlbp+Ab+5gIw0aKOWHOnOY8Hxe87p7h5p+i1Y?= =?us-ascii?Q?ZT0ZbEUI4XhLNCsUeLmvhYuBAnKn/KgAjDxx2S8SVXeNi/qRXFzsDioccmq1?= =?us-ascii?Q?lSD+d/hMUrrFHAGIZFZ4oo4ShlEJv2X//riLY9eQljxZsigoJv5NuNonI9Nh?= =?us-ascii?Q?0cmzdHYL61CWednfM9m5JFQroUe535b4VM+76CUh2qByG3YzgFYM5+Omg64t?= =?us-ascii?Q?E38bAwEWBTiknv+DYwXn8+1eqvXoZ1sFctqHcoGLbeaiYoXA13gpN9Xsodgr?= =?us-ascii?Q?nmFEeo60IItM6XLlc0P3REb7V5PHBuDI2sfZCJmlXeb3idVUeRI4UiuYeFY6?= =?us-ascii?Q?8LCfEM/j6SEqe4nW78YJylauP1pxkXfyCf9IVk1NPnHfLuwb1aua994Zuhqq?= =?us-ascii?Q?0ko8dFRoFfltn/a36Jn8Tglea/CcqDHJyaIPOPIvG5+XUu2iU06oGTOxe63H?= =?us-ascii?Q?GY3ikZfYaL1RQSmv+brBQgV2+Q5R70vyDfOWKToT8Qw8TQTRGkBqIdeLtvdA?= =?us-ascii?Q?1PbIL5LdxCCr/HBN3TPv7rQveGFcv5H2KEfKt5TP1ccoLZS4vD8vCk5u05Bl?= =?us-ascii?Q?Tu20iI2QTfUmbLxBHo11LReG3pTZJbvbY7yx5yT3eGcq0LQGTnM+qq1NnxsS?= =?us-ascii?Q?NvjXuRLazXIcH5AmGGYvFrNkbqEs6FPuUsMcfT8U0XLWJH/7Ufniw6VQwkYv?= =?us-ascii?Q?3eMBMm4HzYD+RIZ5XpGwZb888/LRQVtUs/ZBq765CC3FoXuiiNTE3V+USvT1?= =?us-ascii?Q?qvTl0vh6LAd+atWSWW2MDtpclK5JGoORIp4eFoMz5NtXuwJpUJbpRRXC8lzB?= =?us-ascii?Q?v7nkntawaLMWbbT7TTcYOejpc5TBDsdJYRVWp1yZyvZt0K3FvZRlNr/qbiDw?= =?us-ascii?Q?BT08vPitOAPt3HLqdSL8vLtCoQOrlpAkYhGPqlIxqvmY7ZCCxei8fiUBKhV9?= =?us-ascii?Q?2zT+vOHH/pKVggQA3OEfV5/iKhbCtS7+rKFUkW/l5WLRF1OCKEB28MlV6Qwc?= =?us-ascii?Q?3B80z06GGKDWJW+AxzzDbQCVFtOTwzvTmU3FBWjSHG5dkWH8Jt3QRCn34ISb?= =?us-ascii?Q?kmf2s3JlhLxQXrrLj0HkiqJH7T3pIIKtSc/oNQpYsZFh3fKN4hhJkNMsGt5d?= =?us-ascii?Q?iHwcESeIdmZ5ZjHPb+G5iDpH/xDFeTANVw85LUdPqwEaO4NDVudMkvNY8ykP?= =?us-ascii?Q?8M7WMhbL3wKAQE3nnmR1P7TaRbDCmqp+I+Vd5i3yuM0easwyPYD8vu9dAZES?= =?us-ascii?Q?bYrdgKKHk4/zFSWXbV0ad5vZN3fjbYY9eeaNGp7HCCIs5FytUHvheR1Dh3g8?= =?us-ascii?Q?BiiMT+CbPfsG99/3icuasKYuE3a4V9NQppS++km4vpmJL6boKyFpRqxnRi4h?= =?us-ascii?Q?kLBgFVJ5mpYEbdLqCivHHLOh58jkw76+tSZQ464iIBK7+FBC5pGm1yz18uDU?= =?us-ascii?Q?tUL3FiBmtmcBgGyHN8p0SudmUDb+3p+CK+2kcCnKIAo8xH1Q3yoznQHG86/5?= =?us-ascii?Q?yNUp6d+S7sedu2EWdxg5uajP3lYwdqWX4W7zY6E6Gd2TAMXuFNA+XfNWoFdX?= =?us-ascii?Q?j2fa/FKwfA9ZOkQ7MDU6FGasZO4qm4iM2W677/sv1gQImJirb3wEpZP4d5cN?= =?us-ascii?Q?rgtKa81TqBlvOX7shK6USb1Vn9AnaeUKEo40CCqHwUG5aAlY8+RWXcQzF5ab?= =?us-ascii?Q?psjNhdT3DCPh4lqs5qSMH3xivoZgCTM=3D?= X-Exchange-RoutingPolicyChecked: md/0TV5Df0XA14m2z4Lqfj74r6kTWjb5qFmTRRLWfXpckGfu2EG4dR6D+s3sXtsLbk2/nfBhSTs4raGYpyVt9022yb4Vy5LnE5JT0aI0brEdFgd2e356EggsiOPBgnjPSg3joUdfy41PAiTV98udQly5T4XO8I6nF0bib5vJvK1VQG5NvGmRSwEnxOalXWezEdRua+L7FMmX8yM0HRNhuXl3ZkFnO0R9UcLY8sMwmrk6/vY5xyKuVupgCT1bUYVHdWKE8SsZirNARvRvX19927PIAzgMWcIvEwVDdJTnNRRavznhPCRy+gTL0lL5xTvPcIk8gU020w7ZIXkw6W05hw== X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 073e4d49-37d0-4b51-9472-08de9c8ff58b X-MS-Exchange-CrossTenant-AuthSource: PH0PR02MB7159.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Apr 2026 14:45:24.9560 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: bb047546-786f-4de1-bd75-24e5b6f79043 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8MxPxQnZ/vszQo/p2xQybDbJYG9xitPoXnC53yUhkIPNdMmycmZ9ete6kqse12QgauyUdSnfdfb+kR9cVVSNYGKCW8JCQkb/CHxH0n3jOsc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR02MB6782 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDE3MDE0OCBTYWx0ZWRfX1hK3NJpuzNsG LVNpXsWXOotCmiarmzyHgsAOjLNR6YEywYbtH0a2Xax87fIiswZyAvDMoVAKRfVhiEddj+qcyXD 9hl7WJAreg7p35ddBjQT9VHpl7Nr8WORPFOBHVdRFlPVs+R29dhY7goEKjsgWUVPmVs2j27UPH6 rieHrjG7cSfSfk8w5CgwkyIiJpqJ8VxiGzt9TWKP9Iuy/5zZVRA4bXSh2UZbjf3eLKpqvBCdbPW woG+uaZMZL5UjLnDV4tXd/UcHq2ORVX7Tp1VI1o1F4kL0vlmh9Df8r3p0lK0aVkBMqfOiLyzVux LwgunCKdgmLkuYHaZdyhpDuAtb6xvCQYvxQ/P2s+xMKnzGQU7Vuq4g6XooPyfuDDVUcxLO7AkJs kaxA8OahjK0kFJeIbY0W8hp4CwEIiXPBG+uR6AeLMFmiuJhssUlelbnrsFyFsWijh3oZbF4MYhb qaNVqdcCW4vD3VCwdvg== X-Authority-Analysis: v=2.4 cv=Lc8MLDfi c=1 sm=1 tr=0 ts=69e24786 cx=c_pps a=Cp5ldMHt6+7N9HJPz7VB8w==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=A5OVakUREuEA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VofLwUrZ8Iiv6rRUPXIb:22 a=VUi8bpU7OL1Oj2-RSIOF:22 a=64Cc0HZtAAAA:8 a=20KFwNOVAAAA:8 a=z_aJARHGtFTnMUhy8HQA:9 X-Proofpoint-GUID: 3_0GXynDDHgdYfUtMuafq9EEsd7SB42l X-Proofpoint-ORIG-GUID: 3_0GXynDDHgdYfUtMuafq9EEsd7SB42l X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-17_01,2026-04-17_04,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: 5DLZ7HAGRTHGXHDU3HNVLJJPPT5PRJ7Y X-Message-ID-Hash: 5DLZ7HAGRTHGXHDU3HNVLJJPPT5PRJ7Y X-MailFrom: mark.caveayland@nutanix.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @nutanix.com) X-ZM-MESSAGEID: 1776439176696158500 Content-Type: text/plain; charset="utf-8" From: Sergey Dyasli Add virURICheckExtCommand() in a similar fashion to the existing virURICheckUnixSocket() and use it for (1) the same host migration check and (2) in remoteConnectOpen(). This allows to migrate VMs using the ext transport, as the external command can act as a proxy to the remote libvirt. Signed-off-by: Sergey Dyasli Signed-off-by: Mark Cave-Ayland Reviewed-by: Michal Privoznik --- src/libvirt-domain.c | 8 +++++--- src/remote/remote_driver.c | 7 ++++--- src/util/viruri.c | 32 ++++++++++++++++++++++++++++++++ src/util/viruri.h | 2 ++ 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/src/libvirt-domain.c b/src/libvirt-domain.c index db9eea5774..b7e1036ba4 100644 --- a/src/libvirt-domain.c +++ b/src/libvirt-domain.c @@ -3605,11 +3605,13 @@ virDomainMigrateCheckNotLocal(const char *dconnuri) return -1; =20 /* - * If someone migrates explicitly to a unix socket, then they have to = know - * what they are doing and it most probably was not a mistake. + * If someone migrates explicitly to a unix socket or an ext command, = then + * they have to know what they are doing and it most probably was not + * a mistake. */ if ((tempuri->server && STRPREFIX(tempuri->server, "localhost")) || - (!tempuri->server && !virURICheckUnixSocket(tempuri))) { + (!tempuri->server && !virURICheckUnixSocket(tempuri) && + !virURICheckExtCommand(tempuri))) { virReportInvalidArg(dconnuri, "%s", _("Attempt to migrate guest to the same host")= ); return -1; diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 5c574eff37..33b9dec196 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -1377,15 +1377,16 @@ remoteConnectOpen(virConnectPtr conn, return VIR_DRV_OPEN_DECLINED; =20 /* Handle deferring to local drivers if we are dealing with a defa= ult - * local URI. (Unknown local socket paths may be proxied to a remo= te - * host so they are treated as remote too). + * local URI. (Unknown local socket paths and commands may be prox= ied + * to a remote host so they are treated as remote too). * * Deferring to a local driver is needed if: * - the driver is registered in the current daemon * - if we are running monolithic libvirtd, in which case we consi= der * even un-registered drivers as local */ - if (!conn->uri->server && !virURICheckUnixSocket(conn->uri)) { + if (!conn->uri->server && !virURICheckUnixSocket(conn->uri) && + !virURICheckExtCommand(conn->uri)) { if (virHasDriverForURIScheme(driver)) return VIR_DRV_OPEN_DECLINED; =20 diff --git a/src/util/viruri.c b/src/util/viruri.c index 64995da342..2e8c0acfb2 100644 --- a/src/util/viruri.c +++ b/src/util/viruri.c @@ -421,6 +421,38 @@ virURICheckUnixSocket(virURI *uri) } =20 =20 +/** + * virURICheckExtCommand: + * @uri: URI to check + * + * Check if the URI looks like it refers to a user specified command. In s= uch + * scenario the command might do proxying to a remote server even though t= he URI + * looks like it is only local. + * + * The "command" parameter is looked for in case insensitive manner, by de= sign. + * + * Returns: true if the URI might be proxied to a remote server + */ +bool +virURICheckExtCommand(virURI *uri) +{ + size_t i =3D 0; + + if (!uri->scheme) + return false; + + if (STRNEQ_NULLABLE(strchr(uri->scheme, '+'), "+ext")) + return false; + + for (i =3D 0; i < uri->paramsCount; i++) { + if (STRCASEEQ(uri->params[i].name, "command")) + return true; + } + + return false; +} + + void virURIParamsSetIgnore(virURI *uri, bool ignore, diff --git a/src/util/viruri.h b/src/util/viruri.h index ad00570b7f..172314bd10 100644 --- a/src/util/viruri.h +++ b/src/util/viruri.h @@ -61,6 +61,8 @@ const char *virURIGetParam(virURI *uri, const char *name); =20 bool virURICheckUnixSocket(virURI *uri); =20 +bool virURICheckExtCommand(virURI *uri); + void virURIParamsSetIgnore(virURI *uri, bool ignore, const char *names[]); =20 #define VIR_URI_SERVER(uri) ((uri) && (uri)->server ? (uri)->server : "loc= alhost") --=20 2.43.0