]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpUtilitiesDxe/HttpUtilitiesProtocol.c
ArmPkg/GenericWatchdogDxe: clean up the code
[mirror_edk2.git] / NetworkPkg / HttpUtilitiesDxe / HttpUtilitiesProtocol.c
index a83c9633fc0297def5865faa498fead555b17c9e..b0e3e7f081fa689ce69a8b133133acf50ba567ca 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
   Implementation of EFI_HTTP_PROTOCOL protocol interfaces.\r
 \r
-  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
@@ -90,17 +91,17 @@ HttpUtilitiesBuild (
   NewMessagePtr    = NULL;\r
   *NewMessageSize  = 0;\r
   Status           = EFI_SUCCESS;\r
-  \r
+\r
   if (This == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
 \r
   if (SeedMessage != NULL) {\r
     Status = This->Parse (\r
-                     This, \r
-                     SeedMessage, \r
-                     SeedMessageSize, \r
-                     &SeedHeaderFields, \r
+                     This,\r
+                     SeedMessage,\r
+                     SeedMessageSize,\r
+                     &SeedHeaderFields,\r
                      &SeedFieldCount\r
                      );\r
     if (EFI_ERROR (Status)) {\r
@@ -117,15 +118,15 @@ HttpUtilitiesBuild (
       Status = EFI_OUT_OF_RESOURCES;\r
       goto ON_EXIT;\r
     }\r
-    \r
+\r
     for (Index = 0, TempFieldCount = 0; Index < SeedFieldCount; Index++) {\r
       //\r
       // Check whether each SeedHeaderFields member is in DeleteList\r
       //\r
-      if (IsValidHttpHeader( DeleteList, DeleteCount, SeedHeaderFields[Index].FieldName)) {\r
-        Status = SetFieldNameAndValue (\r
-                   &TempHeaderFields[TempFieldCount], \r
-                   SeedHeaderFields[Index].FieldName, \r
+      if (HttpIsValidHttpHeader( DeleteList, DeleteCount, SeedHeaderFields[Index].FieldName)) {\r
+        Status = HttpSetFieldNameAndValue (\r
+                   &TempHeaderFields[TempFieldCount],\r
+                   SeedHeaderFields[Index].FieldName,\r
                    SeedHeaderFields[Index].FieldValue\r
                    );\r
         if (EFI_ERROR (Status)) {\r
@@ -149,33 +150,33 @@ HttpUtilitiesBuild (
   }\r
 \r
   for (Index = 0; Index < TempFieldCount; Index++) {\r
-    Status = SetFieldNameAndValue (\r
-               &NewHeaderFields[Index], \r
-               TempHeaderFields[Index].FieldName, \r
+    Status = HttpSetFieldNameAndValue (\r
+               &NewHeaderFields[Index],\r
+               TempHeaderFields[Index].FieldName,\r
                TempHeaderFields[Index].FieldValue\r
                );\r
     if (EFI_ERROR (Status)) {\r
       goto ON_EXIT;\r
     }\r
   }\r
-  \r
+\r
   NewFieldCount = TempFieldCount;\r
 \r
   for (Index = 0; Index < AppendCount; Index++) {\r
-    HttpHeader = FindHttpHeader (NewHeaderFields, NewFieldCount, AppendList[Index]->FieldName);\r
+    HttpHeader = HttpFindHeader (NewFieldCount, NewHeaderFields, AppendList[Index]->FieldName);\r
     if (HttpHeader != NULL) {\r
-      Status = SetFieldNameAndValue (\r
-                 HttpHeader, \r
-                 AppendList[Index]->FieldName, \r
+      Status = HttpSetFieldNameAndValue (\r
+                 HttpHeader,\r
+                 AppendList[Index]->FieldName,\r
                  AppendList[Index]->FieldValue\r
                  );\r
       if (EFI_ERROR (Status)) {\r
         goto ON_EXIT;\r
       }\r
     } else {\r
-      Status = SetFieldNameAndValue (\r
-                 &NewHeaderFields[NewFieldCount], \r
-                 AppendList[Index]->FieldName, \r
+      Status = HttpSetFieldNameAndValue (\r
+                 &NewHeaderFields[NewFieldCount],\r
+                 AppendList[Index]->FieldName,\r
                  AppendList[Index]->FieldValue\r
                  );\r
       if (EFI_ERROR (Status)) {\r
@@ -206,11 +207,6 @@ HttpUtilitiesBuild (
   StrLength = sizeof("\r\n") - 1;\r
   *NewMessageSize += StrLength;\r
 \r
-  //\r
-  // Final 0 for end flag\r
-  //\r
-  *NewMessageSize += 1; \r
-\r
   *NewMessage = AllocateZeroPool (*NewMessageSize);\r
   if (*NewMessage == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
@@ -242,26 +238,24 @@ HttpUtilitiesBuild (
   CopyMem (NewMessagePtr, "\r\n", StrLength);\r
   NewMessagePtr += StrLength;\r
 \r
-  *NewMessagePtr = 0;\r
-\r
-  ASSERT (*NewMessageSize == (UINTN)NewMessagePtr - (UINTN)(*NewMessage) + 1);\r
+  ASSERT (*NewMessageSize == (UINTN)NewMessagePtr - (UINTN)(*NewMessage));\r
 \r
   //\r
-  // Free allocated buffer \r
+  // Free allocated buffer\r
   //\r
 ON_EXIT:\r
   if (SeedHeaderFields != NULL) {\r
-    FreeHeaderFields(SeedHeaderFields, SeedFieldCount);\r
+    HttpFreeHeaderFields(SeedHeaderFields, SeedFieldCount);\r
   }\r
-  \r
+\r
   if (TempHeaderFields != NULL) {\r
-    FreeHeaderFields(TempHeaderFields, TempFieldCount);\r
+    HttpFreeHeaderFields(TempHeaderFields, TempFieldCount);\r
   }\r
 \r
   if (NewHeaderFields != NULL) {\r
-    FreeHeaderFields(NewHeaderFields, NewFieldCount);\r
+    HttpFreeHeaderFields(NewHeaderFields, NewFieldCount);\r
   }\r
-  \r
+\r
   return Status;\r
 }\r
 \r
@@ -304,7 +298,8 @@ HttpUtilitiesParse (
   CHAR8                     *FieldName;\r
   CHAR8                     *FieldValue;\r
   UINTN                     Index;\r
-  \r
+  UINTN                     HttpBufferSize;\r
+\r
   Status          = EFI_SUCCESS;\r
   TempHttpMessage = NULL;\r
   Token           = NULL;\r
@@ -312,18 +307,23 @@ HttpUtilitiesParse (
   FieldName       = NULL;\r
   FieldValue      = NULL;\r
   Index           = 0;\r
-  \r
+\r
   if (This == NULL || HttpMessage == NULL || HeaderFields == NULL || FieldCount == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
-  \r
-  TempHttpMessage = AllocateZeroPool (HttpMessageSize);\r
+\r
+  //\r
+  // Append the http response string along with a Null-terminator.\r
+  //\r
+  HttpBufferSize = HttpMessageSize + 1;\r
+  TempHttpMessage = AllocatePool (HttpBufferSize);\r
   if (TempHttpMessage == NULL) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
   CopyMem (TempHttpMessage, HttpMessage, HttpMessageSize);\r
-  \r
+  *(TempHttpMessage + HttpMessageSize) = '\0';\r
+\r
   //\r
   // Get header number\r
   //\r
@@ -332,7 +332,7 @@ HttpUtilitiesParse (
   while (TRUE) {\r
     FieldName     = NULL;\r
     FieldValue    = NULL;\r
-    NextToken = GetFieldNameAndValue (Token, &FieldName, &FieldValue);\r
+    NextToken = HttpGetFieldNameAndValue (Token, &FieldName, &FieldValue);\r
     Token     = NextToken;\r
     if (FieldName == NULL || FieldValue == NULL) {\r
       break;\r
@@ -345,7 +345,7 @@ HttpUtilitiesParse (
     Status =  EFI_INVALID_PARAMETER;\r
     goto ON_EXIT;\r
   }\r
-  \r
+\r
   //\r
   // Allocate buffer for header\r
   //\r
@@ -355,9 +355,9 @@ HttpUtilitiesParse (
     Status = EFI_OUT_OF_RESOURCES;\r
     goto ON_EXIT;\r
   }\r
-  \r
+\r
   CopyMem (TempHttpMessage, HttpMessage, HttpMessageSize);\r
-  \r
+\r
   //\r
   // Set Field and Value to each header\r
   //\r
@@ -365,29 +365,29 @@ HttpUtilitiesParse (
   while (Index < *FieldCount) {\r
     FieldName     = NULL;\r
     FieldValue    = NULL;\r
-    NextToken = GetFieldNameAndValue (Token, &FieldName, &FieldValue);\r
+    NextToken = HttpGetFieldNameAndValue (Token, &FieldName, &FieldValue);\r
     Token     = NextToken;\r
     if (FieldName == NULL || FieldValue == NULL) {\r
       break;\r
     }\r
 \r
-    Status = SetFieldNameAndValue (&(*HeaderFields)[Index], FieldName, FieldValue);\r
+    Status = HttpSetFieldNameAndValue (&(*HeaderFields)[Index], FieldName, FieldValue);\r
     if (EFI_ERROR (Status)) {\r
       *FieldCount = 0;\r
-      FreeHeaderFields (*HeaderFields, Index);\r
+      HttpFreeHeaderFields (*HeaderFields, Index);\r
       goto ON_EXIT;\r
     }\r
-    \r
+\r
     Index++;\r
   }\r
 \r
   //\r
-  // Free allocated buffer \r
+  // Free allocated buffer\r
   //\r
 ON_EXIT:\r
   if (TempHttpMessage != NULL) {\r
     FreePool (TempHttpMessage);\r
   }\r
-  \r
+\r
   return Status;\r
-}
\ No newline at end of file
+}\r