summaryrefslogtreecommitdiffstats
path: root/RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c
diff options
context:
space:
mode:
Diffstat (limited to 'RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c')
-rw-r--r--RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c b/RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c
index 952e9d103a..75b3f1fab8 100644
--- a/RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c
+++ b/RedfishPkg/RedfishRestExDxe/RedfishRestExImpl.c
@@ -3,6 +3,7 @@
Copyright (c) 2019, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
+ Copyright (c) 2023, American Megatrends International LLC.
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -140,9 +141,6 @@ RedfishHttpAddExpectation (
}
*ItsWrite = FALSE;
- if (PreservedRequestHeaders != NULL) {
- *PreservedRequestHeaders = RequestMessage->Headers;
- }
if ((RequestMessage->Data.Request->Method != HttpMethodPut) && (RequestMessage->Data.Request->Method != HttpMethodPost) &&
(RequestMessage->Data.Request->Method != HttpMethodPatch))
@@ -152,10 +150,20 @@ RedfishHttpAddExpectation (
*ItsWrite = TRUE;
- NewHeaders = AllocateZeroPool ((RequestMessage->HeaderCount + 1) * sizeof (EFI_HTTP_HEADER));
- CopyMem ((VOID *)NewHeaders, (VOID *)RequestMessage->Headers, RequestMessage->HeaderCount * sizeof (EFI_HTTP_HEADER));
- HttpSetFieldNameAndValue (NewHeaders + RequestMessage->HeaderCount, HTTP_HEADER_EXPECT, HTTP_EXPECT_100_CONTINUE);
- RequestMessage->HeaderCount++;
- RequestMessage->Headers = NewHeaders;
+ //
+ // Check PCD before adding Expect header
+ //
+ if (FixedPcdGetBool (PcdRedfishRestExAddingExpect)) {
+ if (PreservedRequestHeaders != NULL) {
+ *PreservedRequestHeaders = RequestMessage->Headers;
+ }
+
+ NewHeaders = AllocateZeroPool ((RequestMessage->HeaderCount + 1) * sizeof (EFI_HTTP_HEADER));
+ CopyMem ((VOID *)NewHeaders, (VOID *)RequestMessage->Headers, RequestMessage->HeaderCount * sizeof (EFI_HTTP_HEADER));
+ HttpSetFieldNameAndValue (NewHeaders + RequestMessage->HeaderCount, HTTP_HEADER_EXPECT, HTTP_EXPECT_100_CONTINUE);
+ RequestMessage->HeaderCount++;
+ RequestMessage->Headers = NewHeaders;
+ }
+
return EFI_SUCCESS;
}