]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg/HttpBootDxe: Update to check specified media type
authorJiaxin Wu <jiaxin.wu@intel.com>
Wed, 15 Feb 2017 06:32:14 +0000 (14:32 +0800)
committerJiaxin Wu <jiaxin.wu@intel.com>
Thu, 16 Feb 2017 14:35:19 +0000 (22:35 +0800)
IANA has approved below new media type for EFI http(s) boot usage:
  application/vnd.efi.img
  application/vnd.efi.iso

HTTP boot driver should be updated to check the above media type
from Content-Type header field.

Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
NetworkPkg/HttpBootDxe/HttpBootDxe.h
NetworkPkg/HttpBootDxe/HttpBootSupport.c

index 28145949fed70265ddf1294710b17fe6603d7fee..a1e67925145e8128ebef5e741bceffff6b2ff1a2 100644 (file)
@@ -74,10 +74,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define HTTP_BOOT_DXE_VERSION  0xa\r
 \r
 //\r
-// Provisional Standard Media Types defined in \r
-// http://www.iana.org/assignments/provisional-standard-media-types/provisional-standard-media-types.xhtml\r
+// Standard Media Types defined in \r
+// http://www.iana.org/assignments/media-types\r
 //\r
 #define HTTP_CONTENT_TYPE_APP_EFI           "application/efi"\r
+#define HTTP_CONTENT_TYPE_APP_IMG           "application/vnd.efi-img"\r
+#define HTTP_CONTENT_TYPE_APP_ISO           "application/vnd.efi-iso"\r
 \r
 //\r
 // Protocol instances\r
index e831df92a5ebd312f1044a6b3ae331d1b4f508bf..56c4c15836c956c1090c803441fe8d503c72ec45 100644 (file)
@@ -1178,13 +1178,21 @@ HttpBootCheckImageType (
 \r
   //\r
   // Determine the image type by the HTTP Content-Type header field first.\r
-  //   "application/efi" -> EFI Image\r
+  //   "application/efi"         -> EFI Image\r
+  //   "application/vnd.efi-iso" -> CD/DVD Image\r
+  //   "application/vnd.efi-img" -> Virtual Disk Image\r
   //\r
   Header = HttpFindHeader (HeaderCount, Headers, HTTP_HEADER_CONTENT_TYPE);\r
   if (Header != NULL) {\r
     if (AsciiStriCmp (Header->FieldValue, HTTP_CONTENT_TYPE_APP_EFI) == 0) {\r
       *ImageType = ImageTypeEfi;\r
       return EFI_SUCCESS;\r
+    } else if (AsciiStriCmp (Header->FieldValue, HTTP_CONTENT_TYPE_APP_ISO) == 0) {\r
+      *ImageType = ImageTypeVirtualCd;\r
+      return EFI_SUCCESS;\r
+    } else if (AsciiStriCmp (Header->FieldValue, HTTP_CONTENT_TYPE_APP_IMG) == 0) {\r
+      *ImageType = ImageTypeVirtualDisk;\r
+      return EFI_SUCCESS;\r
     }\r
   }\r
 \r