From nobody Mon Sep 8 17:07:22 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=1756814359; cv=pass; d=zohomail.com; s=zohoarc; b=H4YM/Zh1cJh2KfxaKmJwEVGF4/cLRYLJ2BmfclAIr91s63myx2OXCgl3+3kukbg9rXZDn9lBbpSBtehPDfC6q1q3I/xBoegmo18BeP550wBFXs/nmGDzGi+Cq0q9vd37B6ExVf3Jvun4VjEMpfAOuGrRk9yiwKb+rQUfi25qFDw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756814359; 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=r0p4v6wEVDJNDdkBVnt6JxzPrzWKUZkexqOGXGyZbTI=; b=Y2bffpLOy9BAPUxJd6C6lezb+umlXNwR3IoiAuZT5ONW184X5O7Aq/YYUUDWHOUXWKqRfv7fp0I180B3HV6Rl1gMLWX7dn7wXUtMewsq39UR4QDPajJ4lHnFn7VdLsa7EyFf68CtB/KS79zMihpUJq9BTgni3KVq9O93u/dQ8SE= 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 1756814359422435.0362595418127; Tue, 2 Sep 2025 04:59:19 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 5C0B943FCD; Tue, 2 Sep 2025 07:59:17 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 372B44430F; Tue, 2 Sep 2025 07:56:08 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id A2E6544123; Tue, 2 Sep 2025 07:55:44 -0400 (EDT) Received: from FR4P281CU032.outbound.protection.outlook.com (mail-germanywestcentralazon11022133.outbound.protection.outlook.com [40.107.149.133]) (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 9BFF344123 for ; Tue, 2 Sep 2025 07:55:43 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEYP281MB5646.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:e4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.27; Tue, 2 Sep 2025 11:55:38 +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.9073.026; Tue, 2 Sep 2025 11:55:38 +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=BCsDll8oosXRndqjL4r0/43px7SsHLWMXclA+pL7tuFtPwoVXnjvAdy9UPSN+ofPi4+SQVVNzwZ9u+wMy7CHz2HsWBBmgfFsw90hen2VlHP/KEvenl4UU6Rmbm+vH/I0YxNUKgEbwnYmUXPdHSEi8rmla73QYAvaMefh6pxNa6fUiB1SNUFhwQ1n1IW6AoOEHPwhQQTdsGYKLUkc+ZCfxIyGSApgJ4OsateK3fsbto3TP1Zb/3OQc8q/jEe+1C5GN/3Y6WayWACDOT6ppnoFSAinbR6wJIstY0O4xjKNszjWTr12Wf4Vw/ZBJX4t+biNbPUvQ4Zsd8w59GsWdd3b/Q== 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=r0p4v6wEVDJNDdkBVnt6JxzPrzWKUZkexqOGXGyZbTI=; b=pr0m6CoEaH6aUd//EnhlppbdKBAWKyKqUBJyjj/1SNRNBA+TvdQhGN3NKB3FuY+vffdaocnYH1m5DUulk7wene8jxnA231f2zoqk4XOtRJGz4yhLIV494NZxL14aXAqsAt9yF3WdVm72HAqMiCbf0JB/E16pWjDnsHZmKczIOYf6uz48Wg9t7OkBdsj/4MPhap5eEoWLkCmCYcsGH8sWq0BjFcRCcn6gerqlGhL84Lr1SKqDzpa5x1pk5tjo+a5EQAGFNSy9DhMu+mFT9tfKRcrb1LbJN6ME/DyLcec2S1VaDn8x5ckDkyvfLIn+/UctSMrQvRaex5XK6+lcuKlALA== 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=r0p4v6wEVDJNDdkBVnt6JxzPrzWKUZkexqOGXGyZbTI=; b=ZyDo16Y6gBrQWJ7YrjOZQ2axWpGJPbW0pWn8nHc74bg39LUQ3iEPL2Vb25VudCfo3pQUOGDwWAkoZCcEeBMIG+0oq7JPeQPuR/VhBjS9qZrSr9OVZAU1PzMBIudE+pW9dDGgP441UKSjDTd6qeAUZvD3FPxSL/eDTRzRGBvAt8iEbF2YaHGq7avjvPeKbfx0uh23Skt4eV4hyijoyo8ue1zTMUSWnp+mcC6eMG0tSfYRkUIFR0E97N/z2TrZc/bC44vXAQ88//1P17mEwuU/p5cb9GsVf5IXp1G+Q5nb4FH8v5esKT5SesPJrgngYJEzIvN4ZQl1BoFo64Yr3qyx2Q== 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 v2 07/13] ch: add virCHMonitorPut function Date: Tue, 2 Sep 2025 13:55:22 +0200 Message-ID: <20250902115528.557133-8-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250902115528.557133-1-stefan.kober@cyberus-technology.de> References: <20250902115528.557133-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR5P281CA0052.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f0::11) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEYP281MB5646:EE_ X-MS-Office365-Filtering-Correlation-Id: 65a86f90-a7a1-4a9f-aee2-08ddea17a23d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|10070799003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6m9bTmm4QNs9utyCZy4ak6qQoaJ1NihAUBcmPA11xt5FOb19LBhT+xjdTlIU?= =?us-ascii?Q?R9fcFpZxf7RUMW7GpZuxc6pr++sioxP6eKAA1hDVXKzHIcf62C8cDeeiNc+e?= =?us-ascii?Q?0onjk0pWUAHh+iDaFmYqF/R9ypigl5HPal9LvkK9+PuMaWtVghKff/9k/PET?= =?us-ascii?Q?Bxzz747qjRHFOetqT1GL/Qt+kQcaNSRPMCcnJP9LE/JQYRx+gcTjkTr7yPm6?= =?us-ascii?Q?KbPX/4b6y6cuqvPv5sfNRzBOeAfVYq5j2TGNg5cnG4y77PBn+MkjWmmz+jGu?= =?us-ascii?Q?m7/XGhTxLwPJj6bytDpmH1ItjJfM5zGOuKnRNwtxcHv6XG1FLO+ZphdH13zQ?= =?us-ascii?Q?+SYpI2RQMeF+pCsiQCs1u2msxrHsyYXr/+KJLWWt4IiW8GvlachP8sq8hxPi?= =?us-ascii?Q?RDfHHvr1xgvVnNH/AT+MZu09qoGQhDLdrbtBxdYws3Fkxl/uvTTE7R1YKaQn?= =?us-ascii?Q?HUUe8g8uBE++QsMNdCJ9Ie6mxvQjYQ8OMpcdeLSXGX2huPrdxRAqipLjLeIA?= =?us-ascii?Q?l5fK7emWZO4oZ0vAaTnGQ+cRBFQpCY/4xbC8LytYJThvK0wKb4Qj5aKm9DsE?= =?us-ascii?Q?xSv+n2JZVbCcKcFP3zatr0ZJhk1KTWXICoaL8zlzNcgwMPh29nb6u31USh+O?= =?us-ascii?Q?U/tG33VM+TxV7FUcnu24tEysY2tmtz0WYBb3d0yCMNhM3ZUQg0fAL93qVU/c?= =?us-ascii?Q?dhOEA1zdabOjnQDW6HbhLF747GihVT147ULBOi/RAgef+14ge7XRiLdxkapV?= =?us-ascii?Q?MUmn9CsUPGqlUNF79phSeX+Ig+cFxFjYxjrKrq9k7FyMR5ooCR+nFkh8xVVC?= =?us-ascii?Q?WJTGQn3DZ+sJg1bkNACmK61O93DXOVY0SwXp4VJ0oUEZaaYF7X+Z2P2JtD0D?= =?us-ascii?Q?PRSxrbbwXaiyNKJJvzAx5hN3e/H3kxBILu/NTYI1EjqTb2ziSexpAVlHwXun?= =?us-ascii?Q?3QjnX+EG4mvqIAk4s+/FtTZBNz1P6O/EeWn29i/ri4J8dl4SAIdyboiByBUt?= =?us-ascii?Q?7uTaaZ0nUCKyMpyjbB9IHqOKBkmfPiRqbJmRSd4k4HDkTgA72/Hxn/Uticgp?= =?us-ascii?Q?t5M9uj8Z+WpxEkgiC4cThaIvk3qZHJKAC7dfz3FQRVQzTTWLIMB8L79I3Gci?= =?us-ascii?Q?eYKAMMQ3eOi/Z+TYZsLW6wvBLjuyn8lZylx2FVJxqBHH3Pd1aOJj9JHJKfuI?= =?us-ascii?Q?uB3JekLt17Q5mt3nPttz3yHBlvwqlBOC5mrunnifJEP7XrbnD766DUcoIdXh?= =?us-ascii?Q?VVbpPGFKmoxF4PMsQdIBQ9gdfjHK5bOVVfcp89HvlNxSGIczRo5wd/5k5UyE?= =?us-ascii?Q?HieNUvsMgOaaoktikAvKwxzrH5ORs2ZvMkIndjAXcyEa+oGtJM0ARiQM8Mog?= =?us-ascii?Q?HceQ0lUpmCScjJyHWODc1bqRByPup3AlH1qafT6SCQ85wWtK3TNe/l0cZ8NM?= =?us-ascii?Q?JoUZC084fA4=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)(366016)(1800799024)(10070799003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oD7LJV6mWyTtoB/R4NVdIBJFW1uOtjCCutpZRiBVX4QpX7l6NbPZhdtyfSCW?= =?us-ascii?Q?QaXrZQmJxfshFX0sNm/avtdyFntvtkS7348xzVe/SsabNs39k7kkCdLJ9cts?= =?us-ascii?Q?VYB4KC0qnBgcCpe63fJYg84HABmlPZkeApS9uvD5v6d7SeE+8xhonyUwD+uC?= =?us-ascii?Q?ZOMLvBeBfvp8v91vMcG483L+s9cPUb8DTgtcPhqZ0XfUWt7ex4GOdcSnCmWp?= =?us-ascii?Q?ZJ7QytAla20TwkmQ2X1bL4uOf2ATbbycV8IveKU7p+pXMRanPn7r/URYRoJf?= =?us-ascii?Q?B2HqGUXx8404secFoiOWUX/uo31h9oyEus5Lpnc+oRBM8QEO3jA4ghx+ifYW?= =?us-ascii?Q?4SG2p7kb11/WF7UxMvsgUNkLoG7Ki7oQpjmKodFdL/z+svSqLxaZvrNIyqeL?= =?us-ascii?Q?tUacBN3EJYDWzuMSWvtE6VJRjx1iEYpiCGsOpf0cmEforGvVq3tq9p9V8pjo?= =?us-ascii?Q?WCtpSlLIdZV0+wePM3FjfPiHBTRBO1KZwYWIzKTu/+puwXTC7QRnlFdjS1F7?= =?us-ascii?Q?1fPWZc/68DrOjqRmGRWWX8OXpghPdIx4ltNwXXCGCmGCZ8/ESyiQvaL6Gnbx?= =?us-ascii?Q?aEs3lkbW45ehQ/XGd07yd+jhfcD1N9oqjXIQane93dVxRa6Xf1ei/ZGhGZjk?= =?us-ascii?Q?vaywOA3XXnfFBYEZq/pVXf0gbdxjoHtB3jzzb6pjUe9ZkQh0lcIpGSYWHMe+?= =?us-ascii?Q?lpw5a9RfJ1TTpetI/6IVRlyktcXi++kQPOfZfpjaW6SxRyYDNtkIoEYaUH9/?= =?us-ascii?Q?G8ljUkiuT+FtX9OJVPpgUk0gY0WITVI4t87t4QIZwwahw+CPUCI9BJssgLey?= =?us-ascii?Q?opFR5TQ/2yhvHsSCzXZAK++MXz4XmGsKw+hYiZEvdk8bcYNeo3PPoqwdIQNV?= =?us-ascii?Q?IjomdmDQlUx3PMBiJU3n8iQgAFkd3FDcJBmRBXSXY7dQS5evD1uAUj51APGV?= =?us-ascii?Q?fY3t9bAVHXor5EhkYAxHfJDJIpmlixyW/YgtaoJQA9k/2DqMdMweW85bexwA?= =?us-ascii?Q?IbtkNhDpvTFsnvUXDSNPFwBlEE/+qknTO1N23vR/v0HDlwgNlCL3zjAYyTC0?= =?us-ascii?Q?fWw5XOdIVtmg+JBa2RGX8XUawgSf1zPIytnLH0qLvnwrRJMW1rG4gDl40b1U?= =?us-ascii?Q?96Ql2T2hBmNPgobIjbozmH6rtrua3gC89uEZD8TrCShN3p3LDD5wRFo2s1hL?= =?us-ascii?Q?HMt8lNormRSzbZvzrYyaZgf2p3z3u8qfOnQi1vlufBgrseXRRUj88wkqTglm?= =?us-ascii?Q?mOHrzn55Cm/81d35/GhWTnMKIFQvoYEMc3yW8rCx0xSfimwxkn7X1fsWtc7B?= =?us-ascii?Q?zimf92/SINHre39/PgLSUvJc6q21O+Cbgf5W36K8nWeskDZig6jbAMwFn3aQ?= =?us-ascii?Q?uoGQrR5XrujAXGle2N/YOn2SMwcSOSoqgzAeP1u3aGsLUzAUgVIJ1VHExUbB?= =?us-ascii?Q?ZSF7pxPIVIcDTTUOZeoAlBD2iwoqayN+IydEoq9lejJrtAdSleUlIoR3RvQN?= =?us-ascii?Q?vc7YKSCxxWGfM949AfVggvtpfvD3VRWxOn8WCNHIKcwjTlReUul5vea4Hzb1?= =?us-ascii?Q?zwfJ62NngTn1E3HDysGZ2tt5rE3ai0Nj5yulYuz+7i8lPa74iJzUIpnxJHdE?= =?us-ascii?Q?+2dt8IB23vfRrwPEl1wn3uuZH21hBWLGQqOeSROk01G4?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: 65a86f90-a7a1-4a9f-aee2-08ddea17a23d X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Sep 2025 11:55:38.5049 (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: AVcIFU+wQhPEidlKxTiadNdnIgZgDZcuPF1pkHJHaZiRYr6yohPCeZaqUnAdEveE10f5sRvsLPTVN9Ee2bCp79BqUMbk236tseGynk5bgz5EmlRKRGcjF8LQf1sENCoU X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEYP281MB5646 Message-ID-Hash: HK735AOQLZSIZRSODSWXZVJKO4XAT5MT X-Message-ID-Hash: HK735AOQLZSIZRSODSWXZVJKO4XAT5MT 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: 1756814362185124100 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 | 61 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c index d369236183..63c8425b4b 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, + const char *payload, domainLogContext *logCtxt, + virJSONValue** answer); =20 static int virCHMonitorBuildCPUJson(virJSONValue *content, virDomainDef *vmdef) @@ -866,6 +870,63 @@ curl_callback(void *contents, size_t size, size_t nmem= b, void *userp) return content_size; } =20 +int +virCHMonitorPut(virCHMonitor *mon, const char *endpoint, + const char *payload, domainLogContext *logCtxt, + virJSONValue** answer) +{ + VIR_LOCK_GUARD lock =3D virObjectLockGuard(mon); + g_autofree char *url =3D NULL; + int responseCode =3D 0; + struct curl_data data =3D {0}; + struct curl_slist *headers =3D NULL; + + url =3D g_strdup_printf("%s/%s", URL_ROOT, endpoint); + + /* reset all options of a libcurl session handle at first */ + curl_easy_reset(mon->handle); + + curl_easy_setopt(mon->handle, CURLOPT_UNIX_SOCKET_PATH, mon->socketpat= h); + curl_easy_setopt(mon->handle, CURLOPT_URL, url); + curl_easy_setopt(mon->handle, CURLOPT_UPLOAD, 1L); + curl_easy_setopt(mon->handle, CURLOPT_HTTPHEADER, NULL); + curl_easy_setopt(mon->handle, CURLOPT_INFILESIZE, 0L); + + headers =3D curl_slist_append(headers, "Content-Type: 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); + + if (payload) { + curl_easy_setopt(mon->handle, CURLOPT_POSTFIELDS, payload); + curl_easy_setopt(mon->handle, CURLOPT_CUSTOMREQUEST, "PUT"); + headers =3D curl_slist_append(headers, "Accept: application/json"); + } + + responseCode =3D virCHMonitorCurlPerform(mon->handle); + + 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 */ + domainLogContextWrite(logCtxt, "HTTP response code from CH: %d\n",= responseCode); + domainLogContextWrite(logCtxt, "Response =3D %s\n", data.content); + } + + curl_slist_free_all(headers); + + if (responseCode !=3D 200 && responseCode !=3D 204) { + return -1; + } + + if (answer) + *answer =3D virJSONValueFromString(data.content); + + return 0; +} + int virCHMonitorPutNoContent(virCHMonitor *mon, const char *endpoint, domainLogContext *logCtxt) --=20 2.50.1