From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id E36FE940F6B for ; Mon, 4 Mar 2024 01:58:57 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=v0/y5Whir7qvQroV+L7Q4y9vZfI4+V59wCaHelGppFQ=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1709517536; v=1; b=Nzn4SETToDRMB1o/KiYrdCTl9WYRSnXIR0stHsJOOIVegXZLKzklP7pTYClgphQPtN+KTv9h kdeqzFjMAPnQzNhl2OKD62PaT/71MyrnhIkAMrlPbaWVOSzOdTMDf+ZGajO0peK7LX3TYStccyp 684irDhEkzwzpdJOT19fHhz8= X-Received: by 127.0.0.2 with SMTP id Ggo4YY7687511xtq0pHzCILd; Sun, 03 Mar 2024 17:58:56 -0800 X-Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.40]) by mx.groups.io with SMTP id smtpd.web11.88793.1709517535836058222 for ; Sun, 03 Mar 2024 17:58:56 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d+qxaLtk+R/wEQR30H2Kb+Suz1EaDVNVqPqKnQCpUTI+o2o3XcPYKLHb2nO9Bm8Q/IqHBmWMt24O5laN163kZ7n/C4STXl9uRFbBPb0i5zQpV52VSucI0lVn352aM0TRDbJDKqKxqCTf7+R2TVF2doD8VIb6Fb38swdjz+deMYEyNyIO6FQuJQ6vUeLB2SN6XYaSy7Ygh/JJ8VaFtvRHxVXT6miVi7NitgETfrI+LZWAQEh1tav1jyhBPbAyKQP2SVTrApgDd/OzTTVefmEbHEKjXPmgoPPorruvxR51+5PZcGTS1naLoFq233R9y1W2rhcb0+qxkYfp8isUgq+how== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=9HgEC55okaMHpyIMVFvRw4bI7ZkSyqTy3gxFJ9QKN8I=; b=G0qhaVKOjvWMghXdJX5EarpBQygN0pmp4GrgQ4PFovGh2xGgjLCRQAY7zqSGzPkc0nKARvvoJqOPqL85Lc+fFNh7LFY0NvYWpnziRhsDh6HyStCcYAnN+kMaadmR0epMkD9Ye3Dv4OmuFGUBYvmaCSyF3LNOLCcyI1IwlBT2SJTdT9Yla0Dihmsb5lvouoi+c8SRKSL8xBnvdpvJ/l1KVDj1hH/8nJXtEpmkgMugDHRP+AZGePY5NvAJu4dYNpNAn+nXRJO3Bd9/KQhRA20WCyo9+h9D0pUrk2UnUB8hdwTbFOJvW5zVSfmgAaYC8Ofx6+FxGf63G0W/7lcpc7cjTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM3PR12MB9433.namprd12.prod.outlook.com (2603:10b6:0:47::11) by SN7PR12MB8147.namprd12.prod.outlook.com (2603:10b6:806:32e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.38; Mon, 4 Mar 2024 01:58:53 +0000 X-Received: from DM3PR12MB9433.namprd12.prod.outlook.com ([fe80::943e:4534:7864:59ef]) by DM3PR12MB9433.namprd12.prod.outlook.com ([fe80::943e:4534:7864:59ef%4]) with mapi id 15.20.7339.035; Mon, 4 Mar 2024 01:58:53 +0000 From: "Chang, Abner via groups.io" To: Nickle Wang , "devel@edk2.groups.io" CC: Igor Kulchytskyy Subject: Re: [edk2-devel] [edk2-redfish-client][PATCH 07/13] RedfishClientPkg/BiosDxe: ues RedfishHttpLib Thread-Topic: [edk2-redfish-client][PATCH 07/13] RedfishClientPkg/BiosDxe: ues RedfishHttpLib Thread-Index: AQHaauz7kts82MdcqECPi32oPQEUf7Em2Sbw Date: Mon, 4 Mar 2024 01:58:52 +0000 Message-ID: References: <20240229085434.112448-1-nicklew@nvidia.com> In-Reply-To: <20240229085434.112448-1-nicklew@nvidia.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=f814a37e-dbfa-40a6-a3d6-398ead047cd4;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=0;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2024-03-04T01:58:49Z;MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM3PR12MB9433:EE_|SN7PR12MB8147:EE_ x-ms-office365-filtering-correlation-id: 4fc8c91d-379c-42d5-bcd1-08dc3beea4a1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: b6jpjf0VfNPHo5syIthTqfsceX4mHaEFbHm9Hzswg/W0ARoLN63z+0XGAlmAtoEoU3bxyhVfQchLmtK+6lKdp5VpXu9g8LtZ82W91ea/5bitR1Mx1yVWzljlVaKnFm8iKNYCvjytYR3S54IJzsx0HlGTWRYWxcjsllYyW2vlXdDS88fwWbG0bqyDOvoaQK1ks/dfW1GVz1sMCMsUNrzEpezJH5fgpqzdo/soz7mfisBsCzh/23qCVD2vYxrhzJcUf0VLEUj6lGU/eBYFxDcWTMfuOpLhc3C8kR+5SL9SYfJZ4urvyakRghPVMx5tnzkf9h1OnaH6AEJQSuRr5CocVYDpKCNzqSfQw6YwVJ2W2ITKitVLIOgj/6BaRAv2qr0hxXD6O0hlUkgG82qH8uguKYw/ooc28QIs/aFEGdaEFx6WTeGha+htvMLWZozlrIh3cjw+oo8bYJHDG7EqGjTXwdealK/8BgeVnhmtVBN2j99z3AgR7Geovvyx3dw+7UuYAn4G+mtNfCZ1/twPCY1nGW9r223xhZaaUxAFPv0Rre3NnAClkLvT8Z0SGnCbCzNAP3cbI6epLpH5OUvMQFsqRoYULUYvPze75JxOHCipD+cYAeklbJdH/va4c95SRwm6bItYF7almbUupXlIIAl3DWcp/LyK8jlxfVbtAOngfZbObijEKZZBwF+7UtbsfZQI7MkTFuEvSVMQyqet0a1gyQEpPhCI/F1V7BAa5Menhfk= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?rBSLHKFmbCWmrzHlHMqhEH2yZyaOVkHYkL4Ya4akU4OaX1nJGVZKqiFH54A/?= =?us-ascii?Q?HfjkJRHw1RGWrGTIeUjdLPV1tREMfRJQ5uWnVvc/hUYebVVPZd++l5yh4W7w?= =?us-ascii?Q?RSfqsn4EcofXjHbkXC7tcf65dBatWiA4ezfVrKKZK5QZxcYUfL++BLGqj3IA?= =?us-ascii?Q?VR9NgHXG5pVug5aBovA5JzzJzEehFvUNx+ZL4yR+zBh3mfGuegTdemO1tmKa?= =?us-ascii?Q?hPzZCdGJMJlbcmLs1Zh3V1ELRmras6cgW/MKE5rPXV8974RZFOehcbwSSXZ3?= =?us-ascii?Q?E926O1i/ilWxNjS86MfaLzQfIAbzoiwR/7+zINSLccFcOXODdcXFj8pDxhNM?= =?us-ascii?Q?rSp7e5hNfp+s+E7mXbxZkwkLt4+0NLq43DLjdRIO56chuXAEPhZ/7AZ5GLwK?= =?us-ascii?Q?iYlDqNxDmTy5XNFbAepT9jvaLzvwi9jjvr+8glnn3CDwCCdfmaTqZiN8Rl/D?= =?us-ascii?Q?ul6Gbwkx7MMXMCaDeuJeBhS760Rver+bzx+1dJMbeLIKZKKQe5zrsUtHc8zT?= =?us-ascii?Q?plr7FFuEz90ArnTu9YaFBqrR08jPa14quujBtq78j66Nm91z5ot2qCKNE+HR?= =?us-ascii?Q?NbCCoUtxDJF/RRQCXQjwRMyTaYPxGwCwQ15Nqh1Tdgd1sLWKjiqTld3kp0tn?= =?us-ascii?Q?aXKvSBrJj4tmkeymPcfyAenj2MImp5mQHGIv27QkxyzH5A8JRl4GxwoB4MQv?= =?us-ascii?Q?4w6Dk4AYsEn+2DMHc6aQzyrpLQKwSfoM7wYuCt70CnVb6DyUeqH7yBjXLZl7?= =?us-ascii?Q?1H+rTXdM5AlxWL9mzrjTpLIZd5CWAuE1uwAit2oaA0GD0qU8wBkH3S/QKQA2?= =?us-ascii?Q?Hzh+vcOVkm8sKV/z6259UGdKbmPu/OkrKAYLABwshQP1BRhg4anegs4kgrDC?= =?us-ascii?Q?2dOrbq2lJYShJJLEzcH61AaUyPuTOe8br4bqUnYPxeeAPrHSGARXf2z7LJJh?= =?us-ascii?Q?mydd9QxGB2Kyr0cAQBhmHGRCBL5TIL5iHosP7IPBtk34EQTNpKIFomFx+5KQ?= =?us-ascii?Q?euk8laZ4DR5As7MhwNe8xpQ+RPHH+4n9o198grLfBl8+joETjKPrnyWXP8Gw?= =?us-ascii?Q?T7vFglJH5JEBNFFxPGDO78vmiUhMOAt8PtOypeZOSe2DLUxWpYbB21uJVipB?= =?us-ascii?Q?WnBBwEpaZEfu5MLMeCE66x0BbQOEE1cjdbuDvpbD04Cutka2i5hP2xeRAMZy?= =?us-ascii?Q?Oqapp5XmOcCwyiXcKHZmgDUvXyUgylS+udczpEOLPODa15VfMByhsDi7+YxE?= =?us-ascii?Q?ctzeWd106lqPDsQzZSjGiZMGyantBU1PzIVYbFbnv/Nq9Ho/gBd8n8/+hA74?= =?us-ascii?Q?vX3o1rMLQcByCM8jBYZTh/Yyfr/zzgikfRGRu5LKaBozykvs1PRQ4RPmwacA?= =?us-ascii?Q?WQRXLI6F5r6cl4sx5D+1eDC+UZHafrT6F0vHqdSvUASOskPiNK3pNBcQp4CM?= =?us-ascii?Q?GQHnnM4F6TChFWbmbGwI0tMMVApTupXSD23DYIZT7Wiavhb46Lki1meTdRsM?= =?us-ascii?Q?xDhemQlapJVQCwUJYEs1Uy5uRf3Is0B7oQYgfJ4lXwaNn+zM7LWHJyyDxYBu?= =?us-ascii?Q?ZJ28YxxTEhCr5a4kWus=3D?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM3PR12MB9433.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4fc8c91d-379c-42d5-bcd1-08dc3beea4a1 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2024 01:58:52.9962 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5cmXdLZ8MrSES7x3Mw2/+ipnniTdl9t34uSmJ7WoY4O0eykK+tcBdtCb+y42UJHzYaJZ15CGTLO5fiWgD6t2hA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8147 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,abner.chang@amd.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: bHOrQwSSxCDWDxU5QghFOyVox7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=Nzn4SETT; dmarc=pass (policy=none) header.from=groups.io; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io [AMD Official Use Only - General] Reviewed-by: Abner Chang > -----Original Message----- > From: Nickle Wang > Sent: Thursday, February 29, 2024 4:55 PM > To: devel@edk2.groups.io > Cc: Chang, Abner ; Igor Kulchytskyy > > Subject: [edk2-redfish-client][PATCH 07/13] RedfishClientPkg/BiosDxe: ues > RedfishHttpLib > > Caution: This message originated from an External Source. Use proper caut= ion > when opening attachments, clicking links, or responding. > > > Use EDK2 RedfishHttpLib to replace RedfishHttpCacheLib and RedfishLib > > Signed-off-by: Nickle Wang > Cc: Abner Chang > Cc: Igor Kulchytskyy > --- > .../Features/Bios/v1_0_9/Dxe/BiosDxe.inf | 3 +- > .../Features/Bios/v1_0_9/Common/BiosCommon.c | 92 +++++++------- > .../Features/Bios/v1_0_9/Dxe/BiosDxe.c | 113 +++++------------- > 3 files changed, 74 insertions(+), 134 deletions(-) > > diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf > b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf > index 6ba4c3cfa..a2ac18e61 100644 > --- a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf > +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.inf > @@ -32,14 +32,13 @@ > BaseMemoryLib > DebugLib > EdkIIRedfishResourceConfigLib > - RedfishLib > + RedfishHttpLib > RedfishFeatureUtilityLib > RedfishVersionLib > RedfishResourceIdentifyLib > UefiLib > UefiDriverEntryPoint > RedfishAddendumLib > - RedfishHttpCacheLib > > [Protocols] > gEdkIIRedfishConfigHandlerProtocolGuid ## PRODUCED > diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c > b/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c > index f3f993c87..1f3c30147 100644 > --- a/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c > +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Common/BiosCommon.c > @@ -2,7 +2,7 @@ > Redfish feature driver implementation - common functions > > (C) Copyright 2020-2022 Hewlett Packard Enterprise Development LP
> - Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserv= ed. > + Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights > reserved. > > SPDX-License-Identifier: BSD-2-Clause-Patent > > @@ -68,7 +68,7 @@ RedfishConsumeResourceCommon ( > // No change > // > DEBUG ((DEBUG_MANAGEABILITY, "%a, ETAG: %s has no change, ignore > consume action\n", __func__, Private->Uri)); > - Status =3D EFI_ALREADY_STARTED; > + Status =3D EFI_SUCCESS; > goto ON_RELEASE; > } > > @@ -268,18 +268,18 @@ ProvisioningBiosResource ( > IN EFI_STRING ConfigureLang > ) > { > - CHAR8 *Json; > - CHAR8 *JsonWithAddendum; > - EFI_STATUS Status; > - EFI_STRING NewResourceLocation; > - CHAR8 *EtagStr; > - CHAR8 ResourceId[16]; > + CHAR8 *Json; > + CHAR8 *JsonWithAddendum; > + EFI_STATUS Status; > + EFI_STRING NewResourceLocation; > + CHAR8 ResourceId[16]; > + REDFISH_RESPONSE Response; > > if (IS_EMPTY_STRING (ConfigureLang) || (Private =3D=3D NULL)) { > return EFI_INVALID_PARAMETER; > } > > - EtagStr =3D NULL; > + ZeroMem (&Response, sizeof (REDFISH_RESPONSE)); > AsciiSPrint (ResourceId, sizeof (ResourceId), "%d", Index); > > Status =3D ProvisioningBiosProperties ( > @@ -327,27 +327,27 @@ ProvisioningBiosResource ( > JsonWithAddendum =3D NULL; > } > > - Status =3D CreatePayloadToPostResource (Private->RedfishService, Priva= te- > >Payload, Json, &NewResourceLocation, &EtagStr); > + Status =3D RedfishHttpPostResource (Private->RedfishService, Private->= Uri, > Json, &Response); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, post Bios resource for %s failed: %r\n", > __func__, ConfigureLang, Status)); > goto RELEASE_RESOURCE; > } > > - ASSERT (NewResourceLocation !=3D NULL); > - > // > - // Keep location of new resource. > + // Per Redfish spec. the URL of new resource will be returned in "Loca= tion" > header. > // > - if (NewResourceLocation !=3D NULL) { > - RedfishSetRedfishUri (ConfigureLang, NewResourceLocation); > + Status =3D GetHttpResponseLocation (&Response, &NewResourceLocation); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "%a: cannot find new location: %r\n", __func__, > Status)); > + goto RELEASE_RESOURCE; > } > > // > - // Handle Etag > + // Keep location of new resource. > // > - if (EtagStr !=3D NULL) { > - SetEtagWithUri (EtagStr, NewResourceLocation); > - FreePool (EtagStr); > + if (NewResourceLocation !=3D NULL) { > + DEBUG ((DEBUG_MANAGEABILITY, "%a: Location: %s\n", __func__, > NewResourceLocation)); > + RedfishSetRedfishUri (ConfigureLang, NewResourceLocation); > } > > RELEASE_RESOURCE: > @@ -360,6 +360,8 @@ RELEASE_RESOURCE: > FreePool (Json); > } > > + RedfishHttpFreeResponse (&Response); > + > return Status; > } > > @@ -402,19 +404,19 @@ ProvisioningBiosExistResource ( > IN REDFISH_RESOURCE_COMMON_PRIVATE *Private > ) > { > - EFI_STATUS Status; > - EFI_STRING ConfigureLang; > - CHAR8 *EtagStr; > - CHAR8 *Json; > - CHAR8 *JsonWithAddendum; > + EFI_STATUS Status; > + EFI_STRING ConfigureLang; > + CHAR8 *Json; > + CHAR8 *JsonWithAddendum; > + REDFISH_RESPONSE Response; > > if (Private =3D=3D NULL) { > return EFI_INVALID_PARAMETER; > } > > - EtagStr =3D NULL; > Json =3D NULL; > ConfigureLang =3D NULL; > + ZeroMem (&Response, sizeof (REDFISH_RESPONSE)); > > ConfigureLang =3D RedfishGetConfigLanguage (Private->Uri); > if (ConfigureLang =3D=3D NULL) { > @@ -473,23 +475,17 @@ ProvisioningBiosExistResource ( > > DEBUG ((REDFISH_DEBUG_TRACE, "%a, provisioning existing resource for > %s\n", __func__, ConfigureLang)); > // > - // PUT back to instance > + // PATCH back to instance > // > - Status =3D CreatePayloadToPatchResource (Private->RedfishService, Priv= ate- > >Payload, Json, &EtagStr); > + Status =3D RedfishHttpPatchResource (Private->RedfishService, Private-= >Uri, > Json, &Response); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, patch resource for %s failed: %r\n", > __func__, ConfigureLang, Status)); > } > > - // > - // Handle Etag > - // > - if (EtagStr !=3D NULL) { > - SetEtagWithUri (EtagStr, Private->Uri); > - FreePool (EtagStr); > - } > - > ON_RELEASE: > > + RedfishHttpFreeResponse (&Response); > + > if (Json !=3D NULL) { > FreePool (Json); > } > @@ -609,19 +605,19 @@ RedfishUpdateResourceCommon ( > IN CHAR8 *InputJson > ) > { > - EFI_STATUS Status; > - CHAR8 *Json; > - CHAR8 *JsonWithAddendum; > - EFI_STRING ConfigureLang; > - CHAR8 *EtagStr; > + EFI_STATUS Status; > + CHAR8 *Json; > + CHAR8 *JsonWithAddendum; > + EFI_STRING ConfigureLang; > + REDFISH_RESPONSE Response; > > if ((Private =3D=3D NULL) || IS_EMPTY_STRING (InputJson)) { > return EFI_INVALID_PARAMETER; > } > > - EtagStr =3D NULL; > Json =3D NULL; > ConfigureLang =3D NULL; > + ZeroMem (&Response, sizeof (REDFISH_RESPONSE)); > > ConfigureLang =3D RedfishGetConfigLanguage (Private->Uri); > if (ConfigureLang =3D=3D NULL) { > @@ -680,23 +676,17 @@ RedfishUpdateResourceCommon ( > > DEBUG ((REDFISH_DEBUG_TRACE, "%a, update resource for %s\n", > __func__, ConfigureLang)); > // > - // PUT back to instance > + // PATCH back to instance > // > - Status =3D CreatePayloadToPatchResource (Private->RedfishService, Priv= ate- > >Payload, Json, &EtagStr); > + Status =3D RedfishHttpPatchResource (Private->RedfishService, Private-= >Uri, > Json, &Response); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, patch resource for %s failed: %r\n", > __func__, ConfigureLang, Status)); > } > > - // > - // Handle Etag > - // > - if (EtagStr !=3D NULL) { > - SetEtagWithUri (EtagStr, Private->Uri); > - FreePool (EtagStr); > - } > - > ON_RELEASE: > > + RedfishHttpFreeResponse (&Response); > + > if (Json !=3D NULL) { > FreePool (Json); > } > diff --git a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > index a442d446b..1ca920640 100644 > --- a/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > +++ b/RedfishClientPkg/Features/Bios/v1_0_9/Dxe/BiosDxe.c > @@ -57,7 +57,7 @@ RedfishResourceProvisioningResource ( > } > > ZeroMem (&Response, sizeof (Response)); > - Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, &Resp= onse, > TRUE); > + Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, NULL, > &Response, TRUE); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, get resource from: %s failed\n", __func__, > Uri)); > return Status; > @@ -68,20 +68,20 @@ RedfishResourceProvisioningResource ( > ASSERT (Private->Payload !=3D NULL); > > Status =3D RedfishProvisioningResourceCommon (Private, !PostMode); > + if (EFI_ERROR (Status)) { > + DEBUG ((DEBUG_ERROR, "%a: failed to provision resource to: %s: %r\n"= , > __func__, Uri, Status)); > + } else { > + // > + // Get latest ETag on URI and keep it in variable. > + // > + SetEtagFromUri (Private->RedfishService, Private->Uri, TRUE); > + } > > // > // Release resource > // > - if (Private->Payload !=3D NULL) { > - RedfishFreeResponse ( > - Response.StatusCode, > - Response.HeaderCount, > - Response.Headers, > - Response.Payload > - ); > - RedfishHttpResetResource (Uri); > - Private->Payload =3D NULL; > - } > + RedfishHttpFreeResponse (&Response); > + Private->Payload =3D NULL; > > return Status; > } > @@ -122,7 +122,7 @@ RedfishResourceConsumeResource ( > } > > ZeroMem (&Response, sizeof (Response)); > - Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, &Resp= onse, > TRUE); > + Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, NULL, > &Response, TRUE); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, get resource from: %s failed\n", __func__, > Uri)); > return Status; > @@ -131,7 +131,7 @@ RedfishResourceConsumeResource ( > // > // Check and see if "@Redfish.Settings" exist or not. > // > - ZeroMem (&PendingSettingResponse, sizeof (REDFISH_RESPONSE)); > + ZeroMem (&PendingSettingResponse, sizeof (PendingSettingResponse)); > PendingSettingUri =3D NULL; > Status =3D GetPendingSettings ( > Private->RedfishService, > @@ -161,42 +161,15 @@ RedfishResourceConsumeResource ( > GetHttpResponseEtag (ExpectedResponse, &Etag); > Status =3D RedfishConsumeResourceCommon (Private, Private->Json, Etag)= ; > if (EFI_ERROR (Status)) { > - if (Status !=3D EFI_ALREADY_STARTED) { > - DEBUG ((DEBUG_ERROR, "%a, failed to consume resource from: %s: > %r\n", __func__, Uri, Status)); > - } > - } else { > - // > - // Keep etag after consuming pending settings. > - // > - if (Etag !=3D NULL) { > - SetEtagWithUri (Etag, Private->Uri); > - } > + DEBUG ((DEBUG_ERROR, "%a: failed to consume resource from: %s: %r\n"= , > __func__, Private->Uri, Status)); > } > > // > // Release resource > // > - if (Private->Payload !=3D NULL) { > - if (Response.Payload !=3D NULL) { > - RedfishFreeResponse ( > - Response.StatusCode, > - Response.HeaderCount, > - Response.Headers, > - Response.Payload > - ); > - } > - > - if (PendingSettingResponse.Payload !=3D NULL) { > - RedfishFreeResponse ( > - PendingSettingResponse.StatusCode, > - PendingSettingResponse.HeaderCount, > - PendingSettingResponse.Headers, > - PendingSettingResponse.Payload > - ); > - } > - > - Private->Payload =3D NULL; > - } > + RedfishHttpFreeResponse (&Response); > + RedfishHttpFreeResponse (&PendingSettingResponse); > + Private->Payload =3D NULL; > > if (Private->Json !=3D NULL) { > FreePool (Private->Json); > @@ -278,7 +251,7 @@ RedfishResourceUpdate ( > } > > ZeroMem (&Response, sizeof (Response)); > - Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, &Resp= onse, > TRUE); > + Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, NULL, > &Response, TRUE); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, get resource from: %s failed\n", __func__, > Uri)); > return Status; > @@ -293,22 +266,19 @@ RedfishResourceUpdate ( > > Status =3D RedfishUpdateResourceCommon (Private, Private->Json); > if (EFI_ERROR (Status)) { > - DEBUG ((DEBUG_ERROR, "%a, failed to update resource from: %s: %r\n", > __func__, Uri, Status)); > + DEBUG ((DEBUG_ERROR, "%a: failed to update resource to: %s: %r\n", > __func__, Uri, Status)); > + } else { > + // > + // Get latest ETag on URI and keep it in variable. > + // > + SetEtagFromUri (Private->RedfishService, Private->Uri, TRUE); > } > > // > // Release resource > // > - if (Private->Payload !=3D NULL) { > - RedfishFreeResponse ( > - Response.StatusCode, > - Response.HeaderCount, > - Response.Headers, > - Response.Payload > - ); > - RedfishHttpResetResource (Uri); > - Private->Payload =3D NULL; > - } > + RedfishHttpFreeResponse (&Response); > + Private->Payload =3D NULL; > > if (Private->Json !=3D NULL) { > FreePool (Private->Json); > @@ -351,7 +321,7 @@ RedfishResourceCheck ( > } > > ZeroMem (&Response, sizeof (Response)); > - Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, &Resp= onse, > TRUE); > + Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, NULL, > &Response, TRUE); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, get resource from: %s failed\n", __func__, > Uri)); > return Status; > @@ -377,15 +347,8 @@ RedfishResourceCheck ( > // > // Release resource > // > - if (Private->Payload !=3D NULL) { > - RedfishFreeResponse ( > - Response.StatusCode, > - Response.HeaderCount, > - Response.Headers, > - Response.Payload > - ); > - Private->Payload =3D NULL; > - } > + RedfishHttpFreeResponse (&Response); > + Private->Payload =3D NULL; > > if (Private->Json !=3D NULL) { > FreePool (Private->Json); > @@ -428,7 +391,7 @@ RedfishResourceIdentify ( > } > > ZeroMem (&Response, sizeof (Response)); > - Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, &Resp= onse, > TRUE); > + Status =3D RedfishHttpGetResource (Private->RedfishService, Uri, NULL, > &Response, TRUE); > if (EFI_ERROR (Status)) { > DEBUG ((DEBUG_ERROR, "%a, get resource from: %s failed\n", __func__, > Uri)); > return Status; > @@ -449,15 +412,8 @@ RedfishResourceIdentify ( > // > // Release resource > // > - if (Private->Payload !=3D NULL) { > - RedfishFreeResponse ( > - Response.StatusCode, > - Response.HeaderCount, > - Response.Headers, > - Response.Payload > - ); > - Private->Payload =3D NULL; > - } > + RedfishHttpFreeResponse (&Response); > + Private->Payload =3D NULL; > > if (Private->Json !=3D NULL) { > FreePool (Private->Json); > @@ -539,11 +495,6 @@ RedfishResourceStop ( > Private->RedfishService =3D NULL; > } > > - if (Private->Payload !=3D NULL) { > - RedfishCleanupPayload (Private->Payload); > - Private->Payload =3D NULL; > - } > - > return EFI_SUCCESS; > } > > -- > 2.34.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116300): https://edk2.groups.io/g/devel/message/116300 Mute This Topic: https://groups.io/mt/104640228/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-