]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpDxe/HttpImpl.c
NetworkPkg/HttpDxe: Detect 'Connection: close' header
[mirror_edk2.git] / NetworkPkg / HttpDxe / HttpImpl.c
index d8b014c94f3ab6828635dc8435a4c21d9c78016e..4ec2e8f6679505946dbfdd6a5efdb7290daae0da 100644 (file)
@@ -994,6 +994,7 @@ HttpResponseWorker (
   UINTN             HdrLen;\r
   NET_FRAGMENT      Fragment;\r
   UINT32            TimeoutValue;\r
+  UINTN             Index;\r
 \r
   if ((Wrap == NULL) || (Wrap->HttpInstance == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -1200,6 +1201,16 @@ HttpResponseWorker (
       FreePool (HttpHeaders);\r
       HttpHeaders = NULL;\r
 \r
+      for (Index = 0; Index < HttpMsg->HeaderCount; ++Index) {\r
+        if ((AsciiStriCmp ("Connection", HttpMsg->Headers[Index].FieldName) == 0) &&\r
+            (AsciiStriCmp ("close", HttpMsg->Headers[Index].FieldValue) == 0))\r
+        {\r
+          DEBUG ((DEBUG_VERBOSE, "Http: 'Connection: close' header received.\n"));\r
+          HttpInstance->ConnectionClose = TRUE;\r
+          break;\r
+        }\r
+      }\r
+\r
       //\r
       // Init message-body parser by header information.\r
       //\r