From nobody Mon Sep 8 17:06:08 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=1756386652; cv=pass; d=zohomail.com; s=zohoarc; b=S2LKiB2YMwD4lK1ZXCcNaZHvLoAXbDUlfF7wOgYIpVRmlHi00FevzQkr+MhX/usTuQhVbY9hpKvjJkaUfe2bvv4YrNpBjdlJtF3m3227A4yQUUHcrJgY4a5JT5dEOqMwoFMMilb3OSJUgRsGA8eGC07SBhVYkPDC9QwhfklHMpk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756386652; 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=U1he/1elppxhOFuq2fUlwjdsbjXLwt5B8yAUm3knE3hGLFrTM7+dFshGZxwiJojnCnpYLqroUAVjLbqi2cVUvAFH7pKPWyjLBgJ2+mPlCjVA7fC35j5/CywvY9YdbV+XIwfskXMGEnkg3iemgAvE5wGmQYtbdi++0GkdXYIsp3k= 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 1756386652771831.2658290170857; Thu, 28 Aug 2025 06:10:52 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2C56244120; Thu, 28 Aug 2025 09:10:52 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id F20C6442B1; Thu, 28 Aug 2025 08:56:06 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 5F63B44094; Thu, 28 Aug 2025 08:55:14 -0400 (EDT) Received: from BEUP281CU002.outbound.protection.outlook.com (mail-germanynorthazon11020113.outbound.protection.outlook.com [52.101.169.113]) (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 C51704408B for ; Thu, 28 Aug 2025 08:55:08 -0400 (EDT) Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) by BEVP281MB3430.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:91::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9073.16; Thu, 28 Aug 2025 12:55:04 +0000 Received: from BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401]) by BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM ([fe80::7272:f32d:eb8d:e401%5]) with mapi id 15.20.9052.021; Thu, 28 Aug 2025 12:55:04 +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=hgMHW/Veimdo4xg6ZiIq22FT0qh0h4YjarHtRdMxapipG5n5sVPXYSzvn8y0p6TCnJ83Ix0Suf3NBSdwNjGiNdTRUEH1MnSsad9jr9WuEYmX71WTkwqz0yPeyLtR3X5DzeEmvoIjzViuistdOEMy14Djfj6ATl+invyMd2Wo3ymF290AdSZwjtUiznhefoJAaXOHbnDzejZrMgLTzxtOcqog9UpuqkyoabsgisfKqA8FdBzuPk5ZFy5YozLevI0Hs+iMYCAXBOGyYhZDW11iaMj0B0zxW7A3pw4QFWjTSdstPmsec3NBux1DLUDXs2fpuPeOQGNE3HRhFmCGfGwPCw== 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=aBoIX122FtVw5tMtkBvjqGsB3Df2tarni3emPWcKYRNovp8ygNsb5DlwTggu7N+rSwcemZak5ZfvJE1f4o9LUP8op8BRKcrxBTUts8P9eXS4uLo1ZKkhVxSSdAOAz/yp8XSqKLP3A0uB2l8wrriAAxVgffjbWHo/KucrKTtRd6+lCHp9okg8gjv8NcFHl8CiVBQsi8JC2ET950fAx1d0eIkAv2ARpKVeE2kItPecyUjKUfnt3wNz0TGdeAs+OA2DW8VGdq6vQ9/SdPmdFsrVBZR3lmF0+2xvpTKv9n4pPyGL3Sex2DHaogKKYZ1fu+Ekten3/wL7zIkVCoXSOms/vw== 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=i8eKaoV5HtmqYUg7B7YGFb+0sAipcX0Q74EtA97t11okRLPixgFSgpf3F9PcVkhChLPr8bFrxpqW3uvfjXJJSrlFl9E/uJUv+GNFfCC6hI4KSHPEfxdSji6d7CyNk57a7RKSn2ZoEfguE7B3lQF/dIM+z0AlpCHWEl3yt+u7ENn9p6WhStjKyx+YQk82eSG7YqaD1Voq79Yo8Sy/LFOGFqzG/osH+onBxjEyyvZ7mNj1rBG1UR5hfFZDN52VlZad3tAdesiiVwxdGqvjYF4MpALP/voNNcxno714uDFUhCVVCOGL57HoMhljFKTHCg6vU0ZPuE+FtYEqhFPw0bRS8A== 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 07/13] ch: add virCHMonitorPut function Date: Thu, 28 Aug 2025 14:54:47 +0200 Message-ID: <20250828125453.202358-8-stefan.kober@cyberus-technology.de> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250828125453.202358-1-stefan.kober@cyberus-technology.de> References: <20250828125453.202358-1-stefan.kober@cyberus-technology.de> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: FR4P281CA0249.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:f5::19) To BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:46::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BEZP281MB1973:EE_|BEVP281MB3430:EE_ X-MS-Office365-Filtering-Correlation-Id: e8e0ea40-604b-493f-dac3-08dde6321a83 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|10070799003|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HnDHjjpFBy6sFuSPYRYD4RZ4nYxs1e7XSJLvQBV2+XlsYJSMNRe9J0RLPAzO?= =?us-ascii?Q?+lBX1eVGGUzp6eaOYSRX2tzn+hJZ1xZZCR23A0GCcdDOvMXWWY6poApdUMSc?= =?us-ascii?Q?+kfr/OFPcjIv0hq2mNiMPFx4RIS5OSh4sSL94Fjpb+vYghbwXyxyeZ9G5OBh?= =?us-ascii?Q?PS3+6r9r4U5cR8rbs1kodxAF3CQ/j3QbGrFdvjfmmA4uzt0vbfTrZckRna/U?= =?us-ascii?Q?XdAaogGt15GY6aR7c0Mkcje3T3tqug2oKcq89Ipbnvsm5sW0XTt4DhPQxc9u?= =?us-ascii?Q?eJI8ZlOq39NNFtaTKxP6aAiMzW5QZ9nVyOfpWE1+5SC3zk9fL2zhjTIbEgwb?= =?us-ascii?Q?k1kft8cS8g0OWPBxg0Kq8x+/gqOARaR63C2dTIk8IPyZYEdwVDEXtzSV9m3q?= =?us-ascii?Q?Stj7X5dLZdzA1RS8In+mOOBeMjZ9+OXVBYsM71hRYFEFMaNwrTP63efjGodq?= =?us-ascii?Q?Y8nGpwWrCg7twJ+QoaElTF8gx+a+iqxh4oz6CdFYsui++F7S1RfBHLYyDRHA?= =?us-ascii?Q?T71ow3SVwXwel6+7LQ4ctgYIK79CzTac/cK/pqavn8Rtg7cpRxzoQ0LF3J1p?= =?us-ascii?Q?CDgTx0rcizZIyY119QeklmujApTf5+fc0eBDnYiqJ2uK2f0L78kEPG1GPkWl?= =?us-ascii?Q?VaTHzIMJY2vC/o+xYALPIufvaJEpSRyJKUJb7uHkQbmuhFklW9CfJJU3ynI3?= =?us-ascii?Q?15SIAknaR56m5qn2DLr+mrqqBwt2/xd5jYni6inVezRzg9heYl+mlXSYVrNR?= =?us-ascii?Q?+hno5rK3/v8xCPdW2EtNA6QBA6e1/QQ/Arb5kIMeKUm341j0zXcnae4jzyNT?= =?us-ascii?Q?hJTXf7CbefHUrUBFPDDOpoX54frR38cKJVqQE1Btay2sF6qlPZ3CEySOj0O/?= =?us-ascii?Q?hNZqKOoxO9IHnfhb/sH4lTII/c5OZxSQMsH7HQsOw9zDWYZo4yHnEy+YGnVy?= =?us-ascii?Q?6EPNxhJtHiiar1xgJgU5NxEGcuW2EAUWRVlFDEOrdWBkY1A8TjrrTrz0a6v+?= =?us-ascii?Q?8+Rt26OVrT1/co2IqAxkwSHxDfc6iX+5JYYXknQpqZ06o9CDnDDXa9B6L6YF?= =?us-ascii?Q?HyNO/f7wv4aQtI/v7HMAYZKUYzEYGBxAQHdRJoqgjlnWWcxkPn7zo80EJVcE?= =?us-ascii?Q?wfV1+4dfUXlXmJaRyS7Uhksz/DaXxz1noDmCI3HbUA/DNLapg5bdVqgTQQUn?= =?us-ascii?Q?9AxgsEEdW7UbVFMwiIUdCexKIIodQWRZbsp/YKrDUC/9fnG5KQM98UGnVACG?= =?us-ascii?Q?b4bT4miMOvOLyRdyG/Kai83JPa9Ro4JSvfiEd08KLO9Xjk2A24xKHl7P9R33?= =?us-ascii?Q?1x9sFNUgBII0A0Jwut1j/+6z7DwupKSFCQ/GH0eqV3SzF9bOHDVqgQLjv7mh?= =?us-ascii?Q?QDFeO7OEAg04lY4BP6Rv7sIyz1iHDCxWYv2V8dUflMxh6iLkf2IyNxfdTODC?= =?us-ascii?Q?9BVrSIryZnE=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)(366016)(376014)(10070799003)(1800799024);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5qZtv/gm6nDqBOq0nV8SkTRvn0754T3+li8BA4Kan0SGuz0PA13zyQ0aPRnN?= =?us-ascii?Q?yemzEs4NO4A47r1VigYn2/HqWWinkN1ZnARcv4RGErIsoAPnlK6jiWASXI96?= =?us-ascii?Q?9NWlxoJcGB/Y64td8sS0ssxem5slgpA0Ft9eN4WAB77enjWUqE7nAvuxN+GB?= =?us-ascii?Q?3VOezxLbsJUV8+J5boHYjBnhK21F98TbwR4UNgkrKMdzWcB4PagciiGY+KqS?= =?us-ascii?Q?AMA5T/e8gnw0k9aDyuUEzZyaacepf42Jab4Oa7C8qwAAiRz97lKH8wdTu+iA?= =?us-ascii?Q?bWiFiIxoIQIQJ4lo07uApVrRKcBsL1xh7RcevTZU4xSvRREqloCP+ym7vBLJ?= =?us-ascii?Q?M+L9daHkYrosBUV/XfWksbrFaWPa59iBnc4QRrNaSYhzhQI12vACEPQ/Hjns?= =?us-ascii?Q?jcMp5OBQwAdDgqvbf7zxKiyWEcLRK3QSuOn3cA9FiJ27Q/1csbINeG3NtOiS?= =?us-ascii?Q?aS49WFULCDKcOGgdxPSJ46OGrYTXp7RCDN0K2VEM+fdstrF0yuXow49s7YqV?= =?us-ascii?Q?ViCf2kt6kvUUDS+RfWW1A8z0jx8FP5vAlj4uKEIGnGkDV16DH0APhCuZuiAP?= =?us-ascii?Q?ypdp+KjhAcp1D3SGnyK1112XPHxbYDEuLjF7xHqcqgDNOCnOg+SAGVJOiSD6?= =?us-ascii?Q?6EeSWq3fSb0AhCsDuMGYyitUhi6OmcvrbkdLvGfSWa+NI/o3vlAkVxoMlpgQ?= =?us-ascii?Q?OZzCsyoLvBEHlUGubqQpv3OmY9AWNOH5GpRBusUqwahMoOH/QBjnQcZEjlhL?= =?us-ascii?Q?oZyXq+qKnFHrfFEhxJvTKDOhU5wWsoQ39QJ+NrgJiVcKDvQijE8S4sL2FepU?= =?us-ascii?Q?n9guX8CvFveUNwJjHOtksYW5JhzrVyrETq9p39xigq+tIhs1rJOQqWN2306y?= =?us-ascii?Q?+q4COJDr4StLtuz499ueJtffVoG/KfhbE7nFmNX5lYAxhL3fAbmlC0GV33wO?= =?us-ascii?Q?Hy9mD5QgH4H/omwd9vHgAyXn4etLdr0KpVxJkbM/GkLLj+HZyRPWUhP5vkAv?= =?us-ascii?Q?li4EU9KNIjwrMOJ/qomm6EQEmajUzVkhigLgodaPoaC8e8NOe9pFybCPfotx?= =?us-ascii?Q?jnuyu4pboNMIzijeWDor3jBOogZzlxRLays2jI0uqvO/JgapaYIk1ibHAArI?= =?us-ascii?Q?mNm3ba5A/AUUp0HD23Ov+i0w8BOA1Y7O5dS248GnVN5b41oiQPItGA7iBaBp?= =?us-ascii?Q?1vNo6xKLW2umqsCttAun1S2zyYcvW1xQNRB4ttpYQKFUVYZ568HhSKNSL0gc?= =?us-ascii?Q?EtBPOlZalx34FFogr+H23Qy0ilIfBHKER2EOnHtqqmb1iogmEmLE8liP0RpD?= =?us-ascii?Q?c1KhSbt/grlNBkhvjNufJW8MDqljc2bKry0qmK6GxujntLLCo38bvsX5suW0?= =?us-ascii?Q?e1YOd7D1Q8+MuAjmzrgut6axzrET+782TB5K1ktdHh7VvsKkRNGvqJPncDCb?= =?us-ascii?Q?/JGAd5BFNwuEP/yrSM+WKDDE2kEsmoHmbaKHR6i1+fQR4UiacKusLPZXfDl/?= =?us-ascii?Q?mGIzgq1WdjEilRZZMAhIa0/dIOVksIJZTZDroiQuy6XqeFo4kclT2IE/yxtK?= =?us-ascii?Q?MtLN9KauMaxItMLVma2fNe9zxOJX7SaVsWJIQTQMI1SOK+lflMHrMD/WU5k4?= =?us-ascii?Q?JYS1y94Y73uSbwD8AuLj6etlqgZYFcJkvQU+wGvSymSDHFHlybsD3JDxqOd3?= =?us-ascii?Q?PijeOB0iTBs5e0IVAvMHw+15EPA=3D?= X-OriginatorOrg: cyberus-technology.de X-MS-Exchange-CrossTenant-Network-Message-Id: e8e0ea40-604b-493f-dac3-08dde6321a83 X-MS-Exchange-CrossTenant-AuthSource: BEZP281MB1973.DEUP281.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2025 12:55:02.6282 (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: yGKSk6aHD+pr193CjZb0Yh98TbLFoeQVjWBqFNSoeJJMzHXO2vHhRR7B/F8iSITE2uPjhQAR8zsCjJT1ci4iCF6UbbnSz0XPh9WYJI5GIsYu3uGNGhuM1ewNHtivowma X-MS-Exchange-Transport-CrossTenantHeadersStamped: BEVP281MB3430 Message-ID-Hash: B5HQHZEEQRDTLFGVITVR7Z4NYSMKGAHO X-Message-ID-Hash: B5HQHZEEQRDTLFGVITVR7Z4NYSMKGAHO 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: 1756386655203124100 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