]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpBootDxe/HttpBootSupport.c
NetworkPkg/HttpBootDxe: Refine the coding style.
[mirror_edk2.git] / NetworkPkg / HttpBootDxe / HttpBootSupport.c
index 5024f2e67672e34f7a143585c94c101bd20de6ec..d508e2c1a979f85df8ace5f4a5c2940bdfb2c921 100644 (file)
@@ -160,7 +160,7 @@ HttpBootPrintErrorMessage (
   AsciiPrint ("\n");\r
 \r
   switch (StatusCode) {\r
-  case HTTP_STATUS_300_MULTIPLE_CHIOCES:\r
+  case HTTP_STATUS_300_MULTIPLE_CHOICES:\r
     AsciiPrint ("\n  Redirection: 300 Multiple Choices");\r
     break; \r
     \r
@@ -1034,7 +1034,8 @@ HttpIoRecvResponse (
     HttpIo->IsRxDone = FALSE;\r
   }\r
 \r
-  if (!EFI_ERROR (HttpIo->RspToken.Status) && HttpIo->Callback != NULL) {\r
+  if ((HttpIo->Callback != NULL) && \r
+      (HttpIo->RspToken.Status == EFI_SUCCESS || HttpIo->RspToken.Status == EFI_HTTP_ERROR)) {\r
     Status = HttpIo->Callback (\r
                HttpIoResponse,\r
                HttpIo->RspToken.Message,\r
@@ -1319,3 +1320,25 @@ HttpBootRegisterRamDisk (
   return Status;\r
 }\r
 \r
+/**\r
+  Indicate if the HTTP status code indicates a redirection.\r
+  \r
+  @param[in]  StatusCode      HTTP status code from server.\r
+\r
+  @return                     TRUE if it's redirection.\r
+\r
+**/\r
+BOOLEAN\r
+HttpBootIsHttpRedirectStatusCode (\r
+  IN   EFI_HTTP_STATUS_CODE        StatusCode\r
+  )\r
+{\r
+  if (StatusCode == HTTP_STATUS_301_MOVED_PERMANENTLY ||\r
+      StatusCode == HTTP_STATUS_302_FOUND ||\r
+      StatusCode == HTTP_STATUS_307_TEMPORARY_REDIRECT ||\r
+      StatusCode == HTTP_STATUS_308_PERMANENT_REDIRECT) {\r
+    return TRUE;\r
+  }\r
+\r
+  return FALSE;\r
+}\r