]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpDxe/HttpImpl.c
NetworkPkg: Remove the hostname from the http request URL.
[mirror_edk2.git] / NetworkPkg / HttpDxe / HttpImpl.c
index 545fe42332da3ff7cec00b0a57d49221d9683c4f..80e819201ec1b667dbf78d325b380b56df2763b1 100644 (file)
@@ -227,7 +227,8 @@ EfiHttpRequest (
   CHAR16                        *HostNameStr;\r
   HTTP_TOKEN_WRAP               *Wrap;\r
   HTTP_TCP_TOKEN_WRAP           *TcpWrap;\r
-\r
+  CHAR8                         *FileUrl;\r
+  \r
   if ((This == NULL) || (Token == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
   }\r
@@ -450,7 +451,25 @@ EfiHttpRequest (
   //\r
   // Create request message.\r
   //\r
-  RequestStr = HttpGenRequestString (HttpInstance, HttpMsg, Url);\r
+  FileUrl = Url;\r
+  if (*FileUrl != '/') {\r
+    //\r
+    // Convert the absolute-URI to the absolute-path\r
+    //\r
+    while (*FileUrl != ':') {\r
+      FileUrl++;\r
+    }\r
+    if ((*(FileUrl+1) == '/') && (*(FileUrl+2) == '/')) {\r
+      FileUrl += 3;\r
+      while (*FileUrl != '/') {\r
+        FileUrl++;\r
+      }\r
+    } else {\r
+      Status = EFI_INVALID_PARAMETER;\r
+      goto Error3;\r
+    }\r
+  }\r
+  RequestStr = HttpGenRequestString (HttpInstance, HttpMsg, FileUrl);\r
   if (RequestStr == NULL) {\r
     Status = EFI_OUT_OF_RESOURCES;\r
     goto Error3;\r