]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpDxe/HttpImpl.c
NetworkPkg/HttpDxe: Strip square brackets in IPv6 expressed HostName.
[mirror_edk2.git] / NetworkPkg / HttpDxe / HttpImpl.c
index 17deceb395473e7457e2c3616c7059eea423cc56..de48243982324728f34372346b58c50a2f238b69 100644 (file)
@@ -405,10 +405,22 @@ EfiHttpRequest (
       goto Error1;\r
     }\r
 \r
-    HostName   = NULL;\r
-    Status     = HttpUrlGetHostName (Url, UrlParser, &HostName);\r
+    Status = HttpUrlGetHostName (Url, UrlParser, &HostName);\r
     if (EFI_ERROR (Status)) {\r
-     goto Error1;\r
+      goto Error1;\r
+    }\r
+\r
+    if (HttpInstance->LocalAddressIsIPv6) {\r
+      HostNameSize = AsciiStrSize (HostName);\r
+\r
+      if (HostNameSize > 2 && HostName[0] == '[' && HostName[HostNameSize - 2] == ']') {\r
+        //\r
+        // HostName format is expressed as IPv6, so, remove '[' and ']'.\r
+        //\r
+        HostNameSize -= 2;\r
+        CopyMem (HostName, HostName + 1, HostNameSize - 1);\r
+        HostName[HostNameSize - 1] = '\0';\r
+      }\r
     }\r
 \r
     Status = HttpUrlGetPort (Url, UrlParser, &RemotePort);\r