summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Library/UefiBootManagerLib
diff options
context:
space:
mode:
authorJiaxin Wu <jiaxin.wu@intel.com>2017-01-24 11:51:01 +0800
committerJiaxin Wu <jiaxin.wu@intel.com>2017-08-14 13:18:37 +0800
commit67e0bbd6c34942a238c8381d14aa984b30f27f0c (patch)
tree318a6f20cab318ce3a48fa078f0d0d330b69f488 /MdeModulePkg/Library/UefiBootManagerLib
parent9b9d0655c1547384c2b34cea94eab4b8b83bd1b9 (diff)
downloadedk2-67e0bbd6c34942a238c8381d14aa984b30f27f0c.tar.gz
edk2-67e0bbd6c34942a238c8381d14aa984b30f27f0c.tar.bz2
edk2-67e0bbd6c34942a238c8381d14aa984b30f27f0c.zip
MdeModulePkg/UefiBootManagerLib: Support DNS device path description
This patch is to update UEFI Boot manager to support DNS device path for HTTP(S) network boot. 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: Ye Ting <ting.ye@intel.com>
Diffstat (limited to 'MdeModulePkg/Library/UefiBootManagerLib')
-rw-r--r--MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c b/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
index 6e69a1540a..7647bac2d0 100644
--- a/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
+++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c
@@ -387,8 +387,8 @@ BmGetNetworkDescription (
// ....../Mac(...)[/Vlan(...)][/Wi-Fi(...)]/IPv6(...)
//
// The HTTP device path is like:
- // ....../Mac(...)[/Vlan(...)][/Wi-Fi(...)]/IPv4(...)/Uri(...)
- // ....../Mac(...)[/Vlan(...)][/Wi-Fi(...)]/IPv6(...)/Uri(...)
+ // ....../Mac(...)[/Vlan(...)][/Wi-Fi(...)]/IPv4(...)[/Dns(...)]/Uri(...)
+ // ....../Mac(...)[/Vlan(...)][/Wi-Fi(...)]/IPv6(...)[/Dns(...)]/Uri(...)
//
while (!IsDevicePathEnd (DevicePath) &&
((DevicePathType (DevicePath) != MESSAGING_DEVICE_PATH) ||
@@ -437,6 +437,15 @@ BmGetNetworkDescription (
} else {
Ip = NULL;
}
+
+ //
+ // Skip the optional DNS node
+ //
+ if ((DevicePathType (DevicePath) == MESSAGING_DEVICE_PATH) &&
+ (DevicePathSubType (DevicePath) == MSG_DNS_DP)
+ ) {
+ DevicePath = NextDevicePathNode (DevicePath);
+ }
//
// Locate the URI node