From nobody Mon Sep 8 17:06:05 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=cyberus-technology.de); dmarc=pass(p=none dis=none) header.from=cyberus-technology.de ARC-Seal: i=2; a=rsa-sha256; t=1756988416; cv=pass; d=zohomail.com; s=zohoarc; b=CGDakuEJUwYjLNFO1Q+QAWwmFBjYK7Hp8KVUZgKpjxZ6d9V+9TqZKxbzA6ZRC2LwSwHg5vjp6C8aD4BALehRxpBEmTXgi4C80gd7ZEpJkx2eYhNV7WwTydNCSIFwl/p6ZJxSCrfYR3dzteqbGyuOFCgeRvI/5LKp81goXv/lXdM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756988416; 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=4m8OLGdFkTiAeawOTI0d+RRfUQGqto5gSMuoQFlNU5I=; b=Q63TTaYLiSrR2taYeQIJIfvumFPXTtI/FbToi/tpXj6Vm9O/sBYpDII/OXyTNPI9mefTKkM9zVL+mP32wTRaoMLbqCRYf/DJ/W6iM1y7luFr7aXaWEuUSGKfs9oUDFKpTbFP2C03NsyUImD8UiwOcyqn9XddxlnmJIhAS4iVfbo= 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=cyberus-technology.de); 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 1756988416701255.49323827420835; Thu, 4 Sep 2025 05:20:16 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E1AD74406F; Thu, 4 Sep 2025 08:20:15 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 5A8874448F; Thu, 4 Sep 2025 08:12:03 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2976D44226; Thu, 4 Sep 2025 08:10:54 -0400 (EDT) Received: from FR6P281CU001.outbound.protection.outlook.com (mail-germanywestcentralazon11020106.outbound.protection.outlook.com [52.101.171.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 922BF441FF for ; Thu, 4 Sep 2025 08:10:52 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BE1P281MB2898.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:6e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.27; Thu, 4 Sep 2025 12:10:46 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%3]) with mapi id 15.20.9094.017; Thu, 4 Sep 2025 12:10:46 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=ARC_SIGNED,ARC_VALID, 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_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bdJnmi4Ab8fDUfvGDpF7FQHJl1gu557mTAUpHbq1f/zaIe7/EeLrsfqRPsZmW/gxF6CCupVH89bV630r3SgrSng8tIWWXzwfLxAa5xG854mESe8+A73zZ+R3Rl4vmc7CrRn2b2PXI/jQ5+tR7rLKlcbjK9TwIw6P5nSLq8WTQO1ddOr4QgQrJKqRdgj8nkPGOuFve9SPAv9aVo5g5iDjTo3bjkq8EJwBbtqjfhfek54uQgbm9HKPA4o2xVc0smZKaVm48nxzV7UzGrpLMRTMR0KEX2oZMFklfhQtALahOoUShJxXWJIL0G7OMxvHMpw14cG3/wZB5ecefmYscvrowQ== 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=4m8OLGdFkTiAeawOTI0d+RRfUQGqto5gSMuoQFlNU5I=; b=xIjLw/+rvJorlxJ3l90KbYiUGSrIIlhx4U7h1NCsBWwNJCkiZ7yZk35sdujsJJQY3YqoL6lHmN8h++rtMABZ09yKmMDZ9k9h7bvUSSTQi5uIdUUXwPDXd53pb6DJXVmrj+uGcvtWap/Yf9A2njDr4vDhy7ZNx6KHX+Tzb9HwHd2o1NaVGMlLgPRHlIE979Nmjdd7ATCeOhkVm1t5wxbc1W0CGuZ46pBlnP2IFBW0FmvIq1GOPGDj3E7vpXz5WYFLNWBYdhbakP/Zny5Y3ENGLLgw6Dnj6Mry1FLHg283gGogc8sfK66mVwU+Ylw23RXz63SzsDSmjAXRDQfVPCkDBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cyberus-technology.de; dmarc=pass action=none header.from=cyberus-technology.de; dkim=pass header.d=cyberus-technology.de; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cyberus-technology.de; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4m8OLGdFkTiAeawOTI0d+RRfUQGqto5gSMuoQFlNU5I=; b=nr2xxjCGai94OH3+JvlDED8AFBq77woNm6BHA6IP2kxNKuSlpIz3iKjF87r5sFRuURJi0is1kgK5S/2aLRA45H8IaTyfmHuJTpISf0XDA3DW+Gh4XXW6ebWWPq3Mk908xia9iMwW0ahChalDvGvx51VBBcgWa4EVQGtgYSvvFhSEYCZit6vu3ew3KJedJhNUxaWHM9am1kLnA6+VpTGXXYZz2E+wdXNDwdz9WpmQMoHYHW7cR/zWLP52gRyrbD1p0MwmdMc7Ix3bedPEkMLD+LhznGtjLuuOdh6HUK/VhgMXHFhGCKk+/7fTv/oGvHBqGyd/1Cf/9D1GTbIetLL9zQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cyberus-technology.de; From: Stefan Kober To: devel@lists.libvirt.org Subject: [PATCH v3 05/13] ch: add/use virCHMonitorPut function Date: Thu, 4 Sep 2025 14:10:27 +0200 Message-ID: <20250904121035.1349575-6-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250904121035.1349575-1-stefan.kober@cyberus-technology.de> References: <20250904121035.1349575-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0282.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:e6::7) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BE1P281MB2898:EE_ X-MS-Office365-Filtering-Correlation-Id: fce3f58a-85cf-4ba3-36a5-08ddebac139b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|10070799003|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tioDGoJFccO1qEMSsWUQ7J3tfkmN40a8vuQAcammHlyp5ArTrvom6IOVDzhM?= =?us-ascii?Q?TM1mr6ym6ndd3ycBWV8gTYgWZZpe9vEawXgMKgydMwCA9MLDmihC6EU6vwCK?= =?us-ascii?Q?S9kZLE3HCC2u5JYMhk4aXjmvboI31axS9MZnDLAo0eudKhP+jfEb/w4u0iC0?= =?us-ascii?Q?m3Q0gYicwenkfclBLAl46n1LtpERlQ2XaNuMxJWa46YW2M8vXdp92CLW5iH8?= =?us-ascii?Q?cMV5Ib4U15ka8Y7FJX/7+LLGp2ASadhRC8kqbY4KiSyhLbI0XXdVfp3DjCBb?= =?us-ascii?Q?UM9tQ++PHRPS0x7YZxiY1PFmWwyyJgmbqw185oX8IY3E9MGpjS01qGboh/Xh?= =?us-ascii?Q?iIR8aAgcIb/UxaHmWiK3rKHSA0SygrTOaw4OErbu8bnrjrAUOeMM5+AS0A9Q?= =?us-ascii?Q?H+pe5hvGm9W0cH3RdEPI50JiaBx/rtLog6wytXQjtG48aK91qL7283f7uW4Y?= =?us-ascii?Q?4rV5f1wg3Qre6om/bJzXAOkVfRmo2fMnhNYEnSsjVFKEJK4tV3/tqQGUDRl2?= =?us-ascii?Q?PL0Nv43yNWCvPVwv9BEEYi8TIFCwFLVUd2CLlfiEZDaIDz+9ZJUCzLXhIdGv?= =?us-ascii?Q?4NT7yGuA692MmKIisW6em/cc4F6APC7CNe13OQukBNTq7FMU+UIJWxh4Ubeb?= =?us-ascii?Q?WI9XaHDtZYUKnQVBNJjYzE2iLwdTn5ksZfxh/7KQd8B6syFPKSg6r2s5G7Mc?= =?us-ascii?Q?tIQJQCUWgZpIf7uA6L/trghRorMkAf1X3wJV0ExQH04tuQRdUcOFzOh+rPqf?= =?us-ascii?Q?6Nwq/MJ0cfI1CXIdn3l6kNK7wL6yZGdI8WMxKHZ5rYWzpNflIIiR1YlC2tNn?= =?us-ascii?Q?TCcN1e/3HFWf9t/T27yDnt70P1boy3bfGCnFwqn0zpbEYm/OYKozo4epa0vW?= =?us-ascii?Q?Ldx9pOERfJlWqat/X8tbrr4WSOWBPfZ4pHnhs2RrhDmN7FV+nxuDNeo4gfML?= =?us-ascii?Q?8nFb3qNHbbbVQP4TTRUDF4loaS28CRPBvsobCmEf6rOOKAVvo6Wvn2ys2rwA?= =?us-ascii?Q?UCsq7DKE3kxuzraUQdm5x0mdNBNeTG5zCSxTG+t2P661zSNbetrK8LARLkaV?= =?us-ascii?Q?XnR5r2lbRTP3WxOo9rEmifqZJv9LdREA808QjHdPOsa9vK/uM+ttPb7TIEP4?= =?us-ascii?Q?nVfo007Pg7Ry8l8VKrFzz8lSKyDSi9+A1WgGsOdWHxhEa5wWHSUvS1tIcRXN?= =?us-ascii?Q?4tLGkZx/8Iy9QxkpBYPmIuR3kYwa50Rt2Nwbzgqva4d1tXO8cJ4TqvqZOPDd?= =?us-ascii?Q?yS8E7Lsw3baWKRzy7jpr6B31NNczzHbgP59Y8Jedu/XG4ZU3kEDTFeciuvon?= =?us-ascii?Q?sy2reTlvxc0NqGjcx1cFt7mYunq3u7k/j34EL1AVJDQuincGNxvi0IglQEh9?= =?us-ascii?Q?56jvNTUvb9tLOsI/+Gc/E1hIZ0n91RFQZIurYLnE8WChOV1YHe9prAdW+1p9?= =?us-ascii?Q?J9l1jwvw7ek=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(10070799003)(366016)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gxGWgMcmhAR6f/ZwR/6twxgK74bMAMnJvg3mZ1gMQ60l7+1XXMzScAk2g5Zr?= =?us-ascii?Q?QkhB1vaJTHEN+ErP6oV8WNQUbQE9iGh+mmWeOcGZ85rEO0VP4ObAN0RypaOs?= =?us-ascii?Q?nQ+142f7Upn13iRq4WiMRB2qt2bR/LJ4W02AcrdEJt6QQsTYmF97yuKCvb4J?= =?us-ascii?Q?aAE1F4c2HigL0v81Fp+s0soDF/fqBKX6Ygy49WidbdfVd0iZ43mW9caMZ9RA?= =?us-ascii?Q?VpBCwhompZPu9sOROYMuCGo9iSgmDCEq9buYw9OmjUPDtUvD/Ro1Wjr/it83?= =?us-ascii?Q?Oc4wGACWg4BGoqcdHC3OvRUIEi76/nOfLUzR+sTYyZKmV4OfdwcFRw01lj8j?= =?us-ascii?Q?nYd+viYBHX9IIe+ZHSlrKEd47HqCI0yJj5kklCCuM1qErtp7NEHXIeVr3FU9?= =?us-ascii?Q?Bm/mkjnH79S5SM8UQaHn7IRY6Zq70ezJyoy/SCuDhj/kcbncmn5J0oTqHLWW?= =?us-ascii?Q?kXkecDGjlPUh+WF/cijVtWGYsu4j/tnTDm/Ri1cDs/tqlKWe7WTL2xhNvws8?= =?us-ascii?Q?Xgfe5Kzg4WDGKQYPpBbj247blQMbX4wYsjWCPvObT4eiurKIu4hwLdXASUb9?= =?us-ascii?Q?oAwGiXY+B7FdCkC6nptq7nArbDeFB+BeN1xNZnNipnkIpFMxZEmwqaZK97Bx?= =?us-ascii?Q?I2d7y1W8RMeH3dsleErMCCM4DVRWv4WP0M6EtgwKDWIJq6Oi+U8xVyFpK9Wm?= =?us-ascii?Q?BtRXbKmEGe9bfi4/moc8AL6PBXs6JE5SrbkYrzhgAgeksEWXoKLcpY2T99Fk?= =?us-ascii?Q?TG21daLO3R/rm9oXAQwm+a6Fb7VgtooErRlkllKFxffFF19DsTDDF9043mWa?= =?us-ascii?Q?mLu/es3oBkgaDIXt2sTDj6r2xdiXyU+mOGjfVCFNHCeFQre3tHadAYauASBS?= =?us-ascii?Q?9+aj1WrVMwKjJGDbIKmX4K8x08WSTb74D3HXpn7jU7I5ivgRpanHlJQ9RSq3?= =?us-ascii?Q?UKuE02oqxkev5KeHuqyYpF2XCqQ5GKFq4/+/ZioO4VY1FhZcbwULYogWJwhD?= =?us-ascii?Q?Pnng/+Fb8YIEyu3GoylLcPkip+zgCdlHmrXNh623+TbIaxRIHgYQnQyDdaUp?= =?us-ascii?Q?aXo/GXnxo1O01BRlXoXVv7xjhC/z6OjV+cf/nV0HlhmfulVTT3jQFZkWh0zi?= =?us-ascii?Q?gfdgIrucZITlg00drtQipsGU/oNvQwmGajbvJafo46XsGBN2RqmzUza1pIpG?= =?us-ascii?Q?fZTs7+NS8medUfFx1cihIwgcLz7sLRT8U7/I1S/CbqEqrYU8Qt86qPyI+ekL?= =?us-ascii?Q?+nFNtIJL1HiAb1lzmJ+8PqnxW4nznh5t0Tac8V1EgQkrExGPeFNIY1RciKFe?= =?us-ascii?Q?UHflkNrcz4N9iVWqCSVJJRE8nNtCggBZ45qj3bRcm9q9+Xe77Us6Kiszkz4I?= =?us-ascii?Q?n8hTGBE13C+PISKIQblhjwnSyIEr3qrpecxnRB9iZyQlJOaecHZThX/stHFF?= =?us-ascii?Q?ENNCbfr1IuZh98rQ5GZu2h0RGHHG4fI70wjdFcJXP1UPN1oYUjBYcwx8pMjj?= =?us-ascii?Q?O4qksB9DCHUllgatZksNpCE3CjuN/1PLHbaby9D6FKmx9auZT8huuv9vDhQL?= =?us-ascii?Q?cUibOU1N1YoPdBUm5M031OOLo4U/EXJ4j7NsLppl3FBiG2tCuUbrUeNeA19e?= =?us-ascii?Q?E8R6nZ/A4f1lN51WGNZHPbQANZSXlyEpFJLYmwV1Y4Zn?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: fce3f58a-85cf-4ba3-36a5-08ddebac139b X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2025 12:10:45.4940 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f4e0f4e0-9d68-4bd6-a95b-0cba36dbac2e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dUszpGmQ7QmKUJF4jUja00LKZ+RXyBKxStvDpSsGK9kEO6wNclTmcgf1STG6GbIj802zAD4t3EVtRDbcrx/VAs3Q7nnsWuCie1aBD36K5LpVC6CracSXulmw0KUWbqlM X-MS-Exchange-Transport-CrossTenantHeadersStamped: BE1P281MB2898 Message-ID-Hash: EHYGEWDUYA6EZUJZS6PA6BCFKNOLFODG X-Message-ID-Hash: EHYGEWDUYA6EZUJZS6PA6BCFKNOLFODG X-MailFrom: stefan.kober@cyberus-technology.de 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: Stefan Kober 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 @cyberus-technology.de) X-ZM-MESSAGEID: 1756988419939124100 Content-Type: text/plain; charset="utf-8" This allows users to call API endpoints that require passing data in a generic way. Previously, only virCHMonitorPutNoContent was offered. On-behalf-of: SAP stefan.kober@sap.com Signed-off-by: Stefan Kober --- src/ch/ch_monitor.c | 49 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c index f65cca648b..2ebeb46ad4 100644 --- a/src/ch/ch_monitor.c +++ b/src/ch/ch_monitor.c @@ -62,6 +62,10 @@ VIR_ONCE_GLOBAL_INIT(virCHMonitor); int virCHMonitorShutdownVMM(virCHMonitor *mon); int virCHMonitorPutNoContent(virCHMonitor *mon, const char *endpoint, domainLogContext *logCtxt); +int +virCHMonitorPut(virCHMonitor *mon, const char *endpoint, + virJSONValue *payload, domainLogContext *logCtxt, + virJSONValue** answer); =20 static int virCHMonitorBuildCPUJson(virJSONValue *content, virDomainDef *vmdef) @@ -868,11 +872,15 @@ curl_callback(void *contents, size_t size, size_t nme= mb, void *userp) } =20 int -virCHMonitorPutNoContent(virCHMonitor *mon, const char *endpoint, - domainLogContext *logCtxt) +virCHMonitorPut(virCHMonitor *mon, + const char *endpoint, + virJSONValue *payload, + domainLogContext *logCtxt, + virJSONValue **answer) { VIR_LOCK_GUARD lock =3D virObjectLockGuard(mon); g_autofree char *url =3D NULL; + g_autofree char *payload_str =3D NULL; int responseCode =3D 0; int ret =3D -1; struct curl_data data =3D {0}; @@ -890,28 +898,55 @@ virCHMonitorPutNoContent(virCHMonitor *mon, const cha= r *endpoint, curl_easy_setopt(mon->handle, CURLOPT_INFILESIZE, 0L); =20 headers =3D curl_slist_append(headers, "Accept: application/json"); + curl_easy_setopt(mon->handle, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(mon->handle, CURLOPT_WRITEFUNCTION, curl_callback); curl_easy_setopt(mon->handle, CURLOPT_WRITEDATA, (void *)&data); =20 + if (payload) { + payload_str =3D virJSONValueToString(payload, false); + curl_easy_setopt(mon->handle, CURLOPT_POSTFIELDS, payload_str); + curl_easy_setopt(mon->handle, CURLOPT_CUSTOMREQUEST, "PUT"); + headers =3D curl_slist_append(headers, "Content-Type: application/= json"); + } + responseCode =3D virCHMonitorCurlPerform(mon->handle); =20 + data.content =3D g_realloc(data.content, data.size + 1); + data.content[data.size] =3D 0; + if (logCtxt && data.size) { /* Do this to append a NULL char at the end of data */ - data.content =3D g_realloc(data.content, data.size + 1); - data.content[data.size] =3D 0; domainLogContextWrite(logCtxt, "HTTP response code from CH: %d\n",= responseCode); domainLogContextWrite(logCtxt, "Response =3D %s\n", data.content); } =20 - if (responseCode =3D=3D 200 || responseCode =3D=3D 204) - ret =3D 0; + if (responseCode !=3D 200 && responseCode !=3D 204) { + ret =3D -1; + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Invalid HTTP response code from CH: %1$d"), + responseCode); + goto cleanup; + } =20 - curl_slist_free_all(headers); + if (answer) + *answer =3D virJSONValueFromString(data.content); + + ret =3D 0; =20 + cleanup: + curl_slist_free_all(headers); + g_free(data.content); return ret; } =20 +int +virCHMonitorPutNoContent(virCHMonitor *mon, const char *endpoint, + domainLogContext *logCtxt) +{ + return virCHMonitorPut(mon, endpoint, NULL, logCtxt, NULL); +} + static int virCHMonitorGet(virCHMonitor *mon, const char *endpoint, virJSONValue **re= sponse) { --=20 2.50.1