From nobody Fri Dec 12 14:08:54 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 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=1761752138; cv=pass; d=zohomail.com; s=zohoarc; b=aG19sIuyx7tkPKRJvaouYRsVZBVzvYMI6rQ7DbyoFmYUOpT09UecziUo2ihYgVmIy/KNvQQ6M9iyDZghc4BG4LPbUbkQ0lY2Q/yontR+TFissJOBQgLQF6kYwFTqoIQCR+DFewXG32dCe8yO5dRiOELvbuiZoaEvLBcFIqi0ids= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761752138; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=WPkLqUMkAnZGaxOHTHxb4fp0gGMQwjSvipQAqKWjh8M=; b=ADHTU1oRAssanH3s1oMAjOfLqZ8yJ2QWDO06uMGzdGiplKtjbocSPWcCQe9OSE0PimSYryZ5x3y3To2E7ZWmP2gAhqZdnx6nHdHqkvMJDq4u3daAYRxaeLfXeAEIiF8eqeWyY3D8JaqMnu7Y3JQWofhQckdkfCaUKAkKCZ2sZHo= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 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 [8.43.85.245]) by mx.zohomail.com with SMTPS id 1761752138914512.1403455591943; Wed, 29 Oct 2025 08:35:38 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 6B48F41887; Wed, 29 Oct 2025 11:35:35 -0400 (EDT) Received: from [172.19.199.29] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 8132941C7C; Wed, 29 Oct 2025 11:31:11 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 3365A418A9; Wed, 29 Oct 2025 11:30: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 77F80418AA for ; Wed, 29 Oct 2025 11:30:53 -0400 (EDT) Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59TFHjUf3855902; Wed, 29 Oct 2025 08:30:53 -0700 Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11021100.outbound.protection.outlook.com [52.101.62.100]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4a349na8q1-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 29 Oct 2025 08:30:52 -0700 (PDT) Received: from CH3PR02MB9089.namprd02.prod.outlook.com (2603:10b6:610:153::15) by CH8PR02MB10923.namprd02.prod.outlook.com (2603:10b6:610:2bd::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.12; Wed, 29 Oct 2025 15:30:51 +0000 Received: from CH3PR02MB9089.namprd02.prod.outlook.com ([fe80::2120:40ba:4960:5bc0]) by CH3PR02MB9089.namprd02.prod.outlook.com ([fe80::2120:40ba:4960:5bc0%6]) with mapi id 15.20.9253.017; Wed, 29 Oct 2025 15:30:51 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=WPkLqUMkAnZGaxOHTHxb4fp0gGMQwjSvipQAqKWjh 8M=; b=v4Drs+9D65vBa3cHnM+8vdMqTpfKfg+khuiEhI6l+JD6vfG9Qdr7tqOD6 tBgQ37u42rxv/0hLCvqGMIqM2LdAqTHLtJn7flJb1LWY/8/BrRHUWno/XTmn6qt/ wGPn8HXRMZPvOXtpfqEa1crsU3lbQyq9lPtFomPs1Tl/z0Fc4ykpfXUFug+MqLv3 7nmFoX0gMC1Vxz5ZOgK9f4reUSgV0mTMSaVPI1J/XOn7eQtVJ5GWkYBrwlKeubqd x60mZmlAlqxJCWYIdNGnixwgBeBgPTUgB4zSm5Hnu/T+Uwf5Kj2/Mann4ZyTlOSk FDvA/SplmSyvJynPtdOMOHDJZOiwg== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dODHQ8E9K0LtjWS+2qwvSu1K5BOBIXmRm59IMOOKRHm4s7s7n2F8WJhlEl7KKlGhVxaSduxdzV6u+V3KS6FrIjObh/BPHGPjahMMLqRWOeXgCfVfHxfazG/xJ+0bG6pV0afKCmmh/t8uXGT01KULq91miN+5JCLlUaaPrlK6TuvfbkQHyeeu5uKq9rABB17RyL+xo0sTxCh6MfsqChLyXvhAXLBF7D9Pg61gLIACidVt5U1tJTo2gfatbrWDSqKPpluwUMan0XoNmOfLCIZeWDQTvBuNHx/B65tDBUnWyvsdENuE+MpUHMkUlpV0GJQsnrtpNsaVSeowBMQCCatteA== 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=WPkLqUMkAnZGaxOHTHxb4fp0gGMQwjSvipQAqKWjh8M=; b=AYZ8kNK2UvBYlDwhEqOlb33CNPPpfYQ8bw+xhqeqXPXirHJPTAd/o2nMokfR9d+pzlA3K45OLq52miMURrLdOFUvW+wyXtMhcam4weXkZ3dOd+ifVM1bKHdfZO6DYYJ0VywAsV3u+eNzGFPRYIgqZlPwnj923bXfB+PVMiq3ee46pElg/kV+9Dd9x1H/boHciWOVaFlRf7yKC0s+pGyCbgjTT48CYAcq5s4g9P7f4LLkqJet0TI1SnLDny39CikKcrE/c9EMHYnNjCJFIjNWx6JmpgMjYcbV/LSLrF9VfbsWE6i77UK9dUIWEnSNjU4+Jzd5g9CytylnAvBwEALwyQ== 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=WPkLqUMkAnZGaxOHTHxb4fp0gGMQwjSvipQAqKWjh8M=; b=JzStDrFNK8KMpuDbQVCHx+KL86uxuhy+69Uwy76HNHXwHS/uQz5cJ5IZr8+JnMlAr3QUtgxUoq2kBTkZrMHcE7JNTcKfvgS99O1HVgMXmKetSuPkOn5UwBQTrjG7ai+7Bhasv9CP0eK/U6mqZ6c/TPtfMtfFM2ZEw9lkLHnf/3vhSQRtL9KI/NFtYqOm9Usio2qoH71OU/Qww/KpEBuAqa70R+LmDZCAXEXxIyd0K5pTv5wo5lTSvAcrJa0ZBPv7FSGx9p9IOCi/5BPUb3uV2rR9U/9eA4LnRaTjrEcBqBvJlVnHkhsYc3hki299WHNguwzmQPACTYLIdQXEicV0YQ== From: Sergey Dyasli To: devel@lists.libvirt.org Subject: [PATCH v2 1/2] remote: allow passing argv to the ext transport Date: Wed, 29 Oct 2025 15:30:24 +0000 Message-ID: <20251029153038.659576-2-sergey.dyasli@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20251029153038.659576-1-sergey.dyasli@nutanix.com> References: <20251029153038.659576-1-sergey.dyasli@nutanix.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR10CA0020.namprd10.prod.outlook.com (2603:10b6:510:23d::18) To CH3PR02MB9089.namprd02.prod.outlook.com (2603:10b6:610:153::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR02MB9089:EE_|CH8PR02MB10923:EE_ X-MS-Office365-Filtering-Correlation-Id: 2bbe2731-26ec-4275-21b5-08de17002418 x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Nyt1SldmeU10Zkd0THF2QXJtRTZwYTNDdUFmZzFNcGlvYjNCSmtzZ0wwVUFY?= =?utf-8?B?QkZlZzRKZ2gra1JGejY0WCtCUlBray9PTjh1UFJpNGU4dWdBNmtLS1YxM0ll?= =?utf-8?B?bW5vVzRNQkhPS2xoUlZDMUE0cGxwU0R2am93SDBJVWF3Qks3OEJiTHc1OXV4?= =?utf-8?B?ZllhR0xiWlRsM3BYUXhHdW1MdlZTWDJQSHFFU2pVQ0VEdnFQU0lzYUh0MzRr?= =?utf-8?B?WkoxRWhXbzhhTkVFY1NVRnRSVXp5aHlNT1M3ZUlscWdFWHdFMjQ5M3JENHIw?= =?utf-8?B?Nzh1cnRPbVNTYjVpWGgrd2dQQnlJR2pHTGJvKzhKQW96L1ZUd3NpdmVybWFJ?= =?utf-8?B?VG1PMGtVTWhxcFhpb2Z5RVF1RGxEOG9GcWZZVnk0UEtiQlRKQzUzU3I0MGJ5?= =?utf-8?B?UjIyd3hvUEVsMzVNejNOMk1icjdkOEk2Q3k5WWxQL05ucHVIUUhtZnRGYmpE?= =?utf-8?B?Zm9IVmtxKzlMOFBsNjErRUpZb0hzM243ZGxQVmt5MUFDVFZ1eDBhZ0Nlb2li?= =?utf-8?B?cUZNRDZBcnRtYmU0V2tSU1VBdWd1Zm5sWVE5T3lYazRGSHlFTkpvT2dUWERq?= =?utf-8?B?SjRrZkREenBCZHdrTDMzRnRBSzZORXJEKyt5WldIS3dlSVAyZ2p6bEpMSHNJ?= =?utf-8?B?N2V6R1JpTGJNanlyZ2NOSTVpNGhORDYya0Z1QndPK1g4M3A0NW5KUXZ4cVJ0?= =?utf-8?B?YkFib0Vva0VZMHpMLzlnZEorVGl6VGZBSjliMWVvaHEzVWkzRXU1dUJ4N2JZ?= =?utf-8?B?U21BazVaK2JDL3BiSW5rV3MxQmxFdUpxaUUxcFpxSWhYRW5GeVp4dXBtV2lr?= =?utf-8?B?akJ2YUVhVkZ5dU9WUExCQkdhejhFNll3bTRjSVk4TEdFQWRhQ0gxc2pDcGk2?= =?utf-8?B?cnRLRkRPVElKbnNYdk96cEx1VkxrRVNkNS9YamNlcWduVDBhQlpPSmZ5eENm?= =?utf-8?B?WkhOM2pmdzR3UGNWZzlkM2c3WXZDMTJnbWZLSWZ2Sis4aTBqWVpHQzNYaTdZ?= =?utf-8?B?d0ZsQ0JZQ3RQdlA3V3hLY1dHa2F5MmNXcGgyNGQzQjR5MzRNUkUwTUF5YXc1?= =?utf-8?B?c3VPZFFJZzdZdHk1aFZwUlQzTFRKT1pBUkJLZ0NISE5iOGFCSjRMa1FiSTJx?= =?utf-8?B?UzdudlhUZVA2cUNwbkFZQmFtUjNYVnpQSkNwTDdsTjlJZDlOb3NRVDNwbVFZ?= =?utf-8?B?d2dXbHhqTUo0aXVaTmJjSE8zWmxNQnhxYXJSTUh2ZTF3U0w0WGtBT1BBRlNj?= =?utf-8?B?TlRuVTduOHh6QTNwRjlxdm1vL09xVEU1MFpuZWN5MlpWRitGVTIyRjFOTWpD?= =?utf-8?B?V0JoNXluV0ZVa01OQTRZYW1IQU9WNEdkOFNQODNhMjNmSlJ1ZE15bUtyYXNi?= =?utf-8?B?U0dySFFtTmhIajVhRTVicDNZR21DWmdPQy9VRE40NDdIZCtjZ0JFQ0R4cUVk?= =?utf-8?B?Mm0wRVUrZkdmUWx6WWVyVlZFaU9uM3RYYlVUNmZvOUkvcUFXSFZPbjFLTTBM?= =?utf-8?B?SWZkaUFxblI5OHJ1U3lJY3NINWt2c1l5akx1VDNOY3hFSEdTbERWS0k1ZDFl?= =?utf-8?B?N1lESXBhZmVWQ3Z0V083MCtpL2VoTkZRaVBBR2hPS2dtY1JyWWt1cFQwQ3RT?= =?utf-8?B?T3p1dzJsNmtHbStxUUZqTEhPUzQ0a0tHa1pmVjNvVTVYL1M1djZJQWJBOTll?= =?utf-8?B?NmM0ZkNZNDlnTEVjSGloUW5xZVMzeEJuVDA1ZmVkVTBRWXVJVjZzdUIyU2xx?= =?utf-8?B?K2FmMWl6RzQrR3dEYUpMb1Nwa25seHdTWVpUTFQwTHFXYjMrV1ZtbmEwYW5D?= =?utf-8?B?cFAvbDIva3lEbi9YRVIvTkVYK1dDM3RBQnA2TVFkK1pJYmFaYWlneCtPUUNY?= =?utf-8?B?SVczNU4zWlI5djFOVFVXbUNQVUVIdEowbDc5WWhOcFNsMzJRWWVyZWpVV2Fl?= =?utf-8?B?WG1yR3RJeElmbndRa0lEbHN4dE4rTjRWcGZMSTNhVGYvM1VaL1NJQWc2VlZw?= =?utf-8?B?VDNZRWl2TWpHejI1VWtiWWV5a1o5aVNUMHVsckcvS2ZETTNJeFRUQkdpZ3c2?= =?utf-8?Q?8DIopM?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR02MB9089.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SEMxc3k0c3YyZzgyM0hmajNqdFVXTmpkRE9CbE1lUHZ1bng2M2UreXhMSkty?= =?utf-8?B?Mmt1SncvRXhsdGJOR0VYVmc4YkNyRDlpa0hvdVpNNzV5ZUlNL0x0QldYbll3?= =?utf-8?B?RkczRFBrcVZkSEx4MHdDaVB4UlB3aEIveXgwYzlaZ2VJKzBSR1IvdUYweFJH?= =?utf-8?B?NzllY1plRzVQZTR2NHFlaVlXWFIzRVlpaWxOR0xmVTJVTE9pNDdlYkVmWGJr?= =?utf-8?B?RTc5emRQQWIySk9YZmlwRWdNMzF5bkJ3dTIrbnJuRlc0d21XNk53WWhDaUY3?= =?utf-8?B?ZEp5aFBoUCtkL3Fuc0lXcm1RVG9hYTFHWi80WVJYSnYxQzVDUDNXSkJaNU9u?= =?utf-8?B?MzZmR0xZakRwc3QvbU5icmcxNm9SakRpNWYvc0tMekptbEpTTVJtWVdTUWUv?= =?utf-8?B?bUpDSzQrdmZwUUd4YitRa2tJMC9oSG0wcGgyT252cURoSitXMEVxZ0lBQlFa?= =?utf-8?B?bU8zbWwzVVdxSThUZnorMG9KQ2hLWkw2aHQ5NUxhbE9kWDRvaFJXd3I2b2Zi?= =?utf-8?B?T0IrU1Y2eUx4cUorcmRXblZtVm1vRkMxdjFyVmFBc0xNTzQvbGZVNXY3TXpN?= =?utf-8?B?aHpUMHBKMEVVaGpUcStpQnMxbVNJQXVTaFNMWjhkbXM4M2syMUxxUktDZUo5?= =?utf-8?B?a3VSNVhhZzZrM2JYbmUzNzhscS9NK2w2T2QvcGtkSk1RczN5NXdwWVoxbzk1?= =?utf-8?B?VEtLNlk0dDRmNkxKaWJZQTZReS9EcVJ1Nld0Q2FBRFRyQlhIUjRYME4zeExn?= =?utf-8?B?UmczSnBmMkFtQnRYeTZFbFRjV1RUUS9OTmR6Vkw2K2RSMis5cFBtQkZrdXIx?= =?utf-8?B?K3FxZ2pzTWtpQ0hVQjgvRGFvYmEyR2lNRlRGa3lTd1JFMUpwRHNHc2xtd0Qv?= =?utf-8?B?d0hBU1lWdTFTdTFhbkNpbXFDS2NWdWQ5YkhnQkIvRzZPUlQzOFBSVG14VTFo?= =?utf-8?B?U3lPMnY2SXAwa3Q2NUFMMFN1cGQ3Y0o5NW0vNVZxdTdZQ2xtb0h6bmlKWUpr?= =?utf-8?B?ZEc3bXBJVG1wWXltZEhwV29rc0N5S3d5dnN3ZXFsaGVhRlVsTjFqQU9aemNr?= =?utf-8?B?SytySkhqU1lONXpHSjAyZ3d6WWhydVBZWHYrUTRwZXVUMnJScmdCNEpOOG0w?= =?utf-8?B?RHJCUFA2RTVTV2pqS0E4Y2NlYkNMZFlpckMzNGF2WEhsRUhzZU16ekhBZG1R?= =?utf-8?B?VEtTRVRkTTVVZGhwTEVibXlkUXdJODZacDd0ZmNYVUN0Y01FZjYyc1U1NkR3?= =?utf-8?B?c2lGTkRwcVpFOVZwdmY2RkV3SXU5bzh4TU1PVzBpdGF1VG9oU09PVXoyNUZ4?= =?utf-8?B?RE1aZ3BLbEU0dXJyMnFvTzI3V1JMOWxPVUF0b09qNjZXckhXNWI2alBaS2hM?= =?utf-8?B?ZWg0Qy9KSDI4QVlDTWhwM202Vnp3MSswWEZCMmZoRlFMMmkrdjJGWXA1eWQz?= =?utf-8?B?ZzdhMFhkZm5odlM5T1UrSHdaUFF1TWJrOEErK1V3SkpOYzdsSVpVZSt0b2RS?= =?utf-8?B?N3JBVUJ2dUVPM01vMW56WUlSd2ZhRlNlTjVBM21oOGNPZGJMaHozZnQ3RDll?= =?utf-8?B?TXVjeXdyYURQSVZ2cTZULzZqYWhzSDhNUWpzeVFxejU2YVExZzI4VW5VM1FI?= =?utf-8?B?Z3owbmQ3RU5NaTRyWTJSd1ppUFd6RHM2cDZQOVY4RUtaR3J6MWczUjFuRENE?= =?utf-8?B?R1BTOCtDRVhUaGcra0xERTBHTlNpTDQydGkrNFVCY2d2TTY3MDJCdTlCNW1j?= =?utf-8?B?T0F6aTJaSUxvTDBqTWc3QU12bmQ2c1djTVg1UUJWMWJJZ1I3TE9jMHUvL3ll?= =?utf-8?B?MWdDYitIL1o3RXdaZmdhU09vbFp3eEkyaTFRMTN0cTd6UHc1MDE1cVFWNXM0?= =?utf-8?B?S3F4TXVSOEU1NC94dldzeHFpay80bmRLeFdSaUt0VmlvdlpkR2dOcVMzWTZV?= =?utf-8?B?bmhOR21Zbi9vU0xYMEZGbFA0UjRYRmVzNGtkYUFRYjBqeXRXN3RsMW5Eb0Mz?= =?utf-8?B?WGhXRzMwNDh2NXhHSVFKVXMrM1F4Vm5LSUlRbXpvc2h6WGNHZkFaR1RiT3Z4?= =?utf-8?B?RlZjUkhjWSthby9rNlo2dXhnMTdVYjdMNnV0M3FQNHhDTFNkVGVNbi90ZnRo?= =?utf-8?B?dno0SmhwQ1FLNmtwcFdvMDFVNktPRktqU29KeVhxR0dkVHdDR2NiU3RNS0tD?= =?utf-8?B?MEE9PQ==?= X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2bbe2731-26ec-4275-21b5-08de17002418 X-MS-Exchange-CrossTenant-AuthSource: CH3PR02MB9089.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2025 15:30:50.8159 (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: jtqkKr/ZbJFYnpwPiii6PLH2wgJCj4CnpfuGcO1PE8Bg70Mx6WGHcyhp92ActtgdKF7vtOE0l36as2CbprZw+uE8xLSlZSv8Z4+OR6wR1kM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR02MB10923 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDEyMSBTYWx0ZWRfX3l3lgWh2rwWY 2GB93Okgv+bUWvqP+5BqTN/5K2oggwuovqUkAlUmgLHLEOT9j2mGXNUFZUiB4w1goQRlq+dM0uD ReEr+OB2GmcLvDze/p17ftONtV62StwYelzQlR2HyFEwKhO/6NXGcC6OyHr/CRdJM7rdwBc+I9t oHBx+ACmW40gUl2hYS7hP+V8qG7gME5Uy04LeFNBwOba9Tz4EfCHWe2SWOLgEyBqh/+qVKSJfvf LWi9iICCCSv3TgLR+DBguS+mq7ZfkBkDF2tD9XkS5+4sidpIypbPzhAYj3d6IkyVc34luQc0GFT 2zGlOqB3QrtHRchg4YF7ilFy0JDjtRU3XNPNnXPZt/8wCE/M9mTn9NGaB5RIj4kHyl4hosjiYBJ qfjvSJZUYBzxn5Wf8MOS7U79wRtKkg== X-Proofpoint-ORIG-GUID: TYtWLt9qS1-j-nSTVjHd970dQi1tmpgz X-Authority-Analysis: v=2.4 cv=W4Y1lBWk c=1 sm=1 tr=0 ts=6902332c cx=c_pps a=qXr7QywujOwG71/BKD+DQg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=20KFwNOVAAAA:8 a=64Cc0HZtAAAA:8 a=sFIU9dLyF53VTBBmGNMA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: TYtWLt9qS1-j-nSTVjHd970dQi1tmpgz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-10-29_06,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: PGEEIN6WADS7AWEPFSXCCXQITCWKOT6I X-Message-ID-Hash: PGEEIN6WADS7AWEPFSXCCXQITCWKOT6I X-MailFrom: sergey.dyasli@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 CC: Sergey Dyasli 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: 1761752145026158500 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 --- v1 --> v2: - Renamed the parameters to argv which are gathered into an array now --- 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 ec71eaed8762..70ec3dee4443 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.7 From nobody Fri Dec 12 14:08:54 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=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 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=1761752036; cv=pass; d=zohomail.com; s=zohoarc; b=evTPW8ppwPu3jSVIP1yryRooTIG8le+bo3ZnZrlNOoPEhEFUQNcvmPviia8SwGeigyrVIK/T+ov/Netb0dnLzArbOxCdBbUs9jY5EyOCCAopgY5B/WtdTZoEP5iXV60tRl23WAbdjYzmBQ5ZCDWiZHJNzM/IpBmv+TAO57elX6g= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761752036; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=WWgJwKTHH7l+hImyCw6pHau4VohkSqML+aYY+RGi/zc=; b=NqqIfWBHqIGyaZdnFh46nbQp8yLVoDXLLVhyg3PicyA4X/gC0cA2itRCIw7MqS9kUwEX1PAwybYh/xvmmX0B5zs3JQsMj+VA80pDzzodww8ZZeHOamnXvFvaWSgqSDxEZkI1NHl0QVPCuu3Y8WRzgLWjipLgeRfS3FgB1hMSUgE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 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 [8.43.85.245]) by mx.zohomail.com with SMTPS id 1761752036832643.8481164419126; Wed, 29 Oct 2025 08:33:56 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 3ED3541887; Wed, 29 Oct 2025 11:33:55 -0400 (EDT) Received: from [172.19.199.29] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 15C3841B8D; Wed, 29 Oct 2025 11:31:08 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8702F3F316; Wed, 29 Oct 2025 11:30:56 -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 1E5C2418AE for ; Wed, 29 Oct 2025 11:30:54 -0400 (EDT) Received: from pps.filterd (m0127843.ppops.net [127.0.0.1]) by mx0b-002c1b01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 59TFHjUh3855902; Wed, 29 Oct 2025 08:30:53 -0700 Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11021100.outbound.protection.outlook.com [52.101.62.100]) by mx0b-002c1b01.pphosted.com (PPS) with ESMTPS id 4a349na8q1-2 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 29 Oct 2025 08:30:53 -0700 (PDT) Received: from CH3PR02MB9089.namprd02.prod.outlook.com (2603:10b6:610:153::15) by CH8PR02MB10923.namprd02.prod.outlook.com (2603:10b6:610:2bd::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9275.12; Wed, 29 Oct 2025 15:30:52 +0000 Received: from CH3PR02MB9089.namprd02.prod.outlook.com ([fe80::2120:40ba:4960:5bc0]) by CH3PR02MB9089.namprd02.prod.outlook.com ([fe80::2120:40ba:4960:5bc0%6]) with mapi id 15.20.9253.017; Wed, 29 Oct 2025 15:30:52 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nutanix.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= proofpoint20171006; bh=WWgJwKTHH7l+hImyCw6pHau4VohkSqML+aYY+RGi/ zc=; b=cz0bYhIYXNeOYlitl7HGjBPytuB4TVV8qDitpUS1PhxllpDXrqYv510X+ xleJ87RulDSdz74laq5Wh6QczaVi5A1lYlkkS70uEb1GFASMYXP0cCRiFDv3U+xy I5ZuLSeqX2jX2zRMuL/vcjXQK1pfqJbJEi/cyfopLeAbkdaKvQVQ7DetAKrKxhmq Y22b5HgUvioDcc1NThhoxGOAckiIYXibP7Aaix0QHqLu+IYHwaJecIRDjtdamf7u 4cQEHJ483bGb9Bqge/tMuoHXdgGKSOqbewFhJ3tHSsbj6UAbsIsNiqy8C1B/Wink hds16gXlHSiCeP62CMLkNUu2T8tlw== ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=drBS5/waBPv0hC2YkfZxXDwszqK2l7f8AZLS/hel9rvRGQQpP/Y5KWQY0HJcvpGDoihkxCOs52efrwD69wh3xDdcxohOu8/kc9opA3GueeGpWN0ooQv+ek6IWkdCnQeDtTctDhc2WarjJXQdm4E+/3vF0vcdTfy9XqlFz6Bn4oAXfvDQSnd4CrB3QA0ziz+Vz2bOtb2IpGmxuTuZf1S9kzAQ97J3jo2ZpjgzzLvuVtqhxGeqRpYH2qpyVVS1jXKwLy6+56YKWIvRxCnQEeVixpl0d0JdKM89J0k8RhL1YHo8hfG5Zk0LYrmf6e7i/IjRt31CQxqDcYhZSWZ/bgmhnw== 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=WWgJwKTHH7l+hImyCw6pHau4VohkSqML+aYY+RGi/zc=; b=VmcJxjXP79MTzCUU5PW8cJM8U6hpz2t6dwD2vZSGGbFokor1ltBsg/T4bkVv+JoHl6OYTRnfrPTduMNfWBrgGohFpj18l0/mAB+QKrSgsYoWVs7aN3iwz5xXr5DTrlfcM713RiZfz1gTGWrRfWXb6I2awxP0mtP+5spFYqJIcycOLvDybK13mexVRgHsFu7Q4sKNZRGi3gYWbmqzidkTz5CPuHNYzTsbBE48nwtF3XV+YdsYApXthSk/X4F/003caHpxJbRTchUvsfyR+cCX7A7ZwVoZsmWQk8uozIb/BrVry8lkkkPo7I3JGslnrgG5/dlsT+L6pWchNixWuZd04w== 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=WWgJwKTHH7l+hImyCw6pHau4VohkSqML+aYY+RGi/zc=; b=yuH5HlkZr/e4uNu3xlnx3CKv2SKGgD4EorcuQ20qF8OT6IWP82b1KB1pBwc6hPyAhTHvc0hTdMelEpl8zl/Y6va2jY4qUHRDs7/E+7K0Xr24WlK6jmzcrzUSxJ1fnWj7zvV88+xGptS1cmCDMEDAYsvBKs2Er4d2c3o/wu8QQDuvzlUrTyEPTrIcpxWOHQB0Irbu1D6JIBC65pjlmXVHjuQwdAmXp2vY052dSWOUShAP0+3H3b4xqW1Vs2ALbsalttGDyx5ktleVGqHONe9CcxpBlORPbEVgi9PEbE8eUGgRWgJBxwQg7UhLL0Fl835oNgIYNM0VjFW+RkV5F7uE4w== From: Sergey Dyasli To: devel@lists.libvirt.org Subject: [PATCH v2 2/2] remote: allow migrations with the ext transport Date: Wed, 29 Oct 2025 15:30:25 +0000 Message-ID: <20251029153038.659576-3-sergey.dyasli@nutanix.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: <20251029153038.659576-1-sergey.dyasli@nutanix.com> References: <20251029153038.659576-1-sergey.dyasli@nutanix.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PH7PR10CA0020.namprd10.prod.outlook.com (2603:10b6:510:23d::18) To CH3PR02MB9089.namprd02.prod.outlook.com (2603:10b6:610:153::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR02MB9089:EE_|CH8PR02MB10923:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e369da3-db54-4ece-6e35-08de170024cd x-proofpoint-crosstenant: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|52116014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6+4Uhbyg/awGh64sg/7GMOvTeUshJwk8ui4xV7kIe+TrT2I1MQy3Os+Fcb1F?= =?us-ascii?Q?8ZZvSOrFPgaN1kxh4hP7o8TngVIEqqk1ibAXTDBACigh3PF+9pp767vNGL0f?= =?us-ascii?Q?v2blnIra3IYquT2tmyl3c1EHrx2FzkR9AcTnzXQeyGuVdoBN7Af/dI2EzZNu?= =?us-ascii?Q?Lvxx/T1PLwVOlGpvOxPxjp4iEFg/FLp7P8xwgnWXKGvzLcnEk/8dDJzBCFpN?= =?us-ascii?Q?x/PTH4Bpt4UicU4nLsgLMkiYj2YhrWwIS2yMui0052x4H3X5FH9hreatPLRn?= =?us-ascii?Q?IKycGv3ebuCis4M69eb4Q2QwNrx/3rwSNE1ctbd+AWMSWrgz130GndTyzUL/?= =?us-ascii?Q?dkGjYxQu+Z9TEgMyFCrS4+/nexNmuVaqPegwNsYnmOAVnOKkwXpbOzy+U1tB?= =?us-ascii?Q?ES2x0eHWcHu6GIZ2fSkkv2s5wGYIWQEEoYuj4zYZY/KBnFAXjZpN1c1x4MMI?= =?us-ascii?Q?QT+p7ORJuc6uoZ+Nl4MMd3Qz3xNPYwtm2vcHP7W33uVhBeyF0SxPNMF2mc+s?= =?us-ascii?Q?ZCJ4FTFsryOdFvu+f81K8zA1xhcmolWrmC2vmuPB4LNMuwYdRDKg2lTdl6KO?= =?us-ascii?Q?9VNlniEDRsMC2LdkPyH/9Fef40vkUFDfpTzdqZn5uzgSCO5irp3uRcFqMuhR?= =?us-ascii?Q?Q1edh/pFzRgRaYJPeHZ6hBujeMikgYq2TGFgTvvSmIsG6wHsXGJc2yhLH3XF?= =?us-ascii?Q?3lMOVx7Hboc1TGTc4mlqzsbAWGKULeTy741yb82btmO+bO4CwUNmwf8iBWDW?= =?us-ascii?Q?OHN8gCVVKdffzGG0o0h1iRq+p7phRXH85l/n6q14vzEsKjesngez9BohmVwt?= =?us-ascii?Q?4KB+cANo8Q+Gt5LGHW8NszB1RufUXarYMZTkiteGAuP7lN9DXOllfKtkrH5U?= =?us-ascii?Q?O07E6d4dKe05AnA+JDwej2xxVuoRgfx7Zxm9rVdVJBlcVuaXbJotC3lEvruK?= =?us-ascii?Q?khGNrdntf0lzefxW9LU5TdoWtVA5WcfVLC77fsnaqNVq6gT1xXQom5S92zO/?= =?us-ascii?Q?4dLPYRFQEsWW5MM22gNgYsCuYcQ0l4nKri9y6+1YC4BhZQEY5Z/RzrqSLxqD?= =?us-ascii?Q?bS0r8aZz1LHNEK6CCb5DFszATShry3zbE3+mcKvs+mvYikJ76Hh/lbt8cqgf?= =?us-ascii?Q?TNaQaJwE6J+Nj6asIhPTQk3ahhho29YJon5pJy6HmUOJJO9HyMqPasfJkXww?= =?us-ascii?Q?sfa+k1C4F5uT4bM3KW3Ec/at03zqDdB1dhyekoJd2dEuoU6ISnITncyHUeQo?= =?us-ascii?Q?Gh64su3zHs0wEfzrJa4PuX+jQSOGKz5DPuucCmYIwuUMkOo8OZfhsNT2B6c2?= =?us-ascii?Q?1funycBFga3sKkG1nDE/IJp/II9+LjLmolb7/UP0se3eA3TFRMagtDywdHmS?= =?us-ascii?Q?kcQvgkRPygLKGCER7T5DAxVRlzC6XdnQhN3Adi8dIGMrKAgKhsY5DJsajcLN?= =?us-ascii?Q?olYdfqQZURYdfJxB3fYQ/QHppEwU5cp9PDsto7AWf5DsRJTw3wyicKMsnNlc?= =?us-ascii?Q?+SnCBteADYHTebY5Ouzo2sNJZhaK9eAN883E?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR02MB9089.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(366016)(1800799024)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dUXgxzYZ+vT2+Sdbr7ypVPWS/2A+a5ItPT6Sal6F6I22TYw0yMVGfsYYal0j?= =?us-ascii?Q?cWfwjbDEDwDNkTUT6B/BhJ7ingFISvLUt0c90GPKifkuB0YT9aL2BAiqsz+m?= =?us-ascii?Q?ZR6Kt37Sh57rSwvc4pFrune1KEaUjBkMR+4lNd5ldmnr+T28dNItCf+tutDP?= =?us-ascii?Q?LVi3O1eaCw1+aXfNBotfcdgeBKqV2CmttPBqJd77KfFvABJR+5/aFUnuX0T1?= =?us-ascii?Q?DDqfzCy5+Vbw5mX1Y9BHTUrqUcXbwrLjgA+jQaUKuYD5Jq7vsJGp/AXnF2Zq?= =?us-ascii?Q?s/pW7ZsbGYZcGJ6/7b1a/4FJ1SXpu0Ra3/f7gYzAcnLEzbGbWBlOX7AMtk/V?= =?us-ascii?Q?K4Gk5tQW0VOm64rsCLq8BlRjlJVerrmfvoeYZ4fZYIOCEERjPRYo2f//WJC8?= =?us-ascii?Q?7/i4BhRGBvf4NZiOeLvKDEw0DeqUPK/tcBsNEmh6P7nVRIL7RDbdqQKMr1Mm?= =?us-ascii?Q?JPJPStHwMb7xZ34Th87jaaqOKKNdBA5Ew7X3KnD3rIl8NH8Os+69HdsGebl+?= =?us-ascii?Q?0PZVr6gRAR2/ihJBQ5Jqb427odNkQGyrrCbGzSmPJ1cZVmvJbGGZ8y+bR3ui?= =?us-ascii?Q?pPRWPUxqpcUWcB1kqnB8bkH7C9FGr8yPFDDU0SJoFqAe1Ctn9MeXxC3anB6M?= =?us-ascii?Q?uK/1oxbdEUZXyUr7VSqF2FU/9X+lTePfvOHXCxhvOeJUurhkzRQRHTWE580M?= =?us-ascii?Q?248SHrNlVmbxu5bp3NJQpeZMHiaxlU4XSyQqkvTFVv9wyfTOHqdIgzqXBLM7?= =?us-ascii?Q?SprWo0sAmMZqkDQL/V/tqXubhbW7PM5MACMSy4gFyjB0LRRDoCkKD2h8PxUb?= =?us-ascii?Q?pWml8TjBSVeou5VBX/srBdhoioYt9G75a0V+FJZiUBFodNNfrzFrQsOd/HYS?= =?us-ascii?Q?oZ6baeJIIWLdpxcHzq2cXaCobhSVTngSU2c7zsm2suCJTqaIZzcSw/0S9SKm?= =?us-ascii?Q?ISveIjhsbbyHys/Jt0PcZOIaqxOV1XdXrDA6ClfuDStWyWYOxAOuTK3wlXbD?= =?us-ascii?Q?BlwslIM7/0yKgax5xzDQAxwFjQiIqyIAMhDRk9URrOWHyk3HHUmGUaCg9Si1?= =?us-ascii?Q?RDrH/zAX2bbfOnP1qSSBzsN9x9qDk+5PrsO2UtkSlvv+1GzupGdtssbw9E5P?= =?us-ascii?Q?3wOGNub4QTnnRulnhvgWEw7ZTStd2JqzeRfqbA3u6RbtLQuVO3WDGQuSVRo8?= =?us-ascii?Q?Gs886poGN25IBk2tdSOrpnN+iYuF+sVFnnEJd74bqK8BGZyHKuia9vUXDVRb?= =?us-ascii?Q?NcgxL4oXogA5dnGQIsiIfQnW9BFhWS2jw8X8eRpuGIkHjvAhxxCquYcL/IKB?= =?us-ascii?Q?mXcx7TbmfExycY0WY61E2574J9srr33Q99livu7GboDtLUnwL1Dpustr01De?= =?us-ascii?Q?mc5VW61anV17pnevBdEsBT72Y1m0s3HqAHVDWURcpbs+vaGZfXUC8B+/4rcn?= =?us-ascii?Q?ocWxww+oEdBQj2cZVQ/OW4EljygHMxsfVZE+ij8WPks40kyFBNzjDPHlyhXA?= =?us-ascii?Q?yiLHqn2+9L85eU3vT4tBfXyzGOaeXGDGw3eVW+P5xoLGriMQ/FP2x18l2c8J?= =?us-ascii?Q?zehxZTDZUC0u2m5UEVkkBu6PYsAvZFSz78/TVgUb1Hm5rGoGcI65BRJ4SoEq?= =?us-ascii?Q?NQ=3D=3D?= X-OriginatorOrg: nutanix.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e369da3-db54-4ece-6e35-08de170024cd X-MS-Exchange-CrossTenant-AuthSource: CH3PR02MB9089.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2025 15:30:52.0488 (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: GQHnMpBQ8H2yQdM+raQh7f11/3NuWeq/k+BRcpbN0Er2LY4HgThWmxIstfhxZiB4AvB6DjAkxTUaEErDEuu7+/nIz7C3LImuErYZaVHNYrU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH8PR02MB10923 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDI5MDEyMSBTYWx0ZWRfXxGp41wSoALRB yzMfVRGlLVu/Z0FOBSVndGStiklsS8N1h3rUi6Ia4sIZIQZigBtYsMlEInjq92wHvp6umPqLGah hihqCfnVLFA75htOYv/Y3epa4nF74lh/miuipEZNImKW+X/QfgOORkvJZUuc+HNNCc1OJu4bwxA v62vcfikS+s9WeSv5W8vmKbFboKgAVOlDIM6TcS8TidwQS/GWBfn5IeUX1SyR2by4uZeInpvnfv tfOGEeU/wPkyzylziOLvSWIaNhS2AR4mtlGYKmclKi7m/JJP6pkQQ6DlLbE23AlEAQgGmi1JwbT foq4P1G7EKYfCBDawh2/CMUefpVGYeZnl2OWKGdvUsQa3+CtqZmNvTQtw/txqRAnnRQm1gohxwt JYYUTKqx+HLSFxLMy/S3QfGKUBEuDg== X-Proofpoint-ORIG-GUID: g6ZHnkAj-l2AhoPyqJhWl2EZqXUPGjZe X-Authority-Analysis: v=2.4 cv=W4Y1lBWk c=1 sm=1 tr=0 ts=6902332d cx=c_pps a=qXr7QywujOwG71/BKD+DQg==:117 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=x6icFKpwvdMA:10 a=0kUYKlekyDsA:10 a=VkNPw1HP01LnGYTKEx00:22 a=64Cc0HZtAAAA:8 a=z_aJARHGtFTnMUhy8HQA:9 X-Proofpoint-GUID: g6ZHnkAj-l2AhoPyqJhWl2EZqXUPGjZe X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-10-29_06,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Reason: safe Message-ID-Hash: KUDGTCHVJNNN3NVASBKWKYR7KBH3FQYE X-Message-ID-Hash: KUDGTCHVJNNN3NVASBKWKYR7KBH3FQYE X-MailFrom: sergey.dyasli@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 CC: Sergey Dyasli 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: 1761752040150154100 Content-Type: text/plain; charset="utf-8" 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 --- v1 -> v2: - no changes --- 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 ca110bdf8585..9d82b711a17c 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 70ec3dee4443..768cbe67f761 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 64995da3420d..2e8c0acfb213 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 ad00570b7f0d..172314bd1084 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.7