From: "Ye, Ting" <ting.ye@intel.com>
To: "Wu, Jiaxin" <jiaxin.wu@intel.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Fu, Siyuan" <siyuan.fu@intel.com>, "Wu, Jiaxin" <jiaxin.wu@intel.com>
Subject: Re: [Patch] NetworkPkg/HttpBootDxe: Fix the incorrect error message output.
Date: Thu, 1 Mar 2018 07:24:47 +0000 [thread overview]
Message-ID: <BC0C045B0E2A584CA4575E779FA2C12A1A9BCB1B@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <20180301062932.14280-2-jiaxin.wu@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Jiaxin Wu
Sent: Thursday, March 1, 2018 2:30 PM
To: edk2-devel@lists.01.org
Cc: Ye, Ting <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Wu, Jiaxin <jiaxin.wu@intel.com>
Subject: [edk2] [Patch] NetworkPkg/HttpBootDxe: Fix the incorrect error message output.
For IPv6 case, if one invalid URL returned from DHCP server, HttpBootDxe driver could not retrieve the URL host address from DNS server. In such a case, the error message should be printed as:
Error: Could not retrieve the host address from DNS server.
Instead of:
Error: Could not discover the boot information for DHCP server.
Then, we can still output as following:
Error: Could not retrieve NBP file size from HTTP server.
Besides, currently implementation in HttpBootLoadFile will always output error message even the HTTP process is correct.
This patch is to fix above issue.
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>
---
NetworkPkg/HttpBootDxe/HttpBootClient.c | 1 +
NetworkPkg/HttpBootDxe/HttpBootImpl.c | 37 ++++++++++++++++++---------------
2 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.c b/NetworkPkg/HttpBootDxe/HttpBootClient.c
index b93e63bb2f..1d1e47008d 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootClient.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootClient.c
@@ -472,10 +472,11 @@ HttpBootDhcp6ExtractUriInfo (
}
Status = HttpBootDns (Private, HostNameStr, &IpAddr);
FreePool (HostNameStr);
if (EFI_ERROR (Status)) {
+ AsciiPrint ("\n Error: Could not retrieve the host address from
+ DNS server.\n");
goto Error;
}
}
CopyMem (&Private->ServerIp.v6, &IpAddr, sizeof (EFI_IPv6_ADDRESS)); diff --git a/NetworkPkg/HttpBootDxe/HttpBootImpl.c b/NetworkPkg/HttpBootDxe/HttpBootImpl.c
index 16c1207bf8..a0fd934ec4 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootImpl.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootImpl.c
@@ -1,9 +1,9 @@
/** @file
The implementation of EFI_LOAD_FILE_PROTOCOL for UEFI HTTP boot.
-Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.
@@ -329,11 +329,11 @@ HttpBootLoadFile (
//
// Parse the cached offer to get the boot file URL first.
//
Status = HttpBootDiscoverBootInfo (Private);
if (EFI_ERROR (Status)) {
- AsciiPrint ("\n Error: Could not discover the boot information for DHCP server.\n");
+ AsciiPrint ("\n Error: Could not retrieve NBP file size from
+ HTTP server.\n");
goto ON_EXIT;
}
}
if (!Private->HttpCreated) {
@@ -398,26 +398,29 @@ HttpBootLoadFile (
ImageType
);
ON_EXIT:
HttpBootUninstallCallback (Private);
-
- if (Status == EFI_ACCESS_DENIED) {
- AsciiPrint ("\n Error: Could not establish connection with HTTP server.\n");
- } else if (Status == EFI_BUFFER_TOO_SMALL && Buffer != NULL) {
- AsciiPrint ("\n Error: Buffer size is smaller than the requested file.\n");
- } else if (Status == EFI_OUT_OF_RESOURCES) {
- AsciiPrint ("\n Error: Could not allocate I/O buffers.\n");
- } else if (Status == EFI_DEVICE_ERROR) {
- AsciiPrint ("\n Error: Network device error.\n");
- } else if (Status == EFI_TIMEOUT) {
- AsciiPrint ("\n Error: Server response timeout.\n");
- } else if (Status == EFI_ABORTED) {
- AsciiPrint ("\n Error: Remote boot cancelled.\n");
- } else if (Status != EFI_BUFFER_TOO_SMALL) {
- AsciiPrint ("\n Error: Unexpected network error.\n");
+
+ if (EFI_ERROR (Status)) {
+ if (Status == EFI_ACCESS_DENIED) {
+ AsciiPrint ("\n Error: Could not establish connection with HTTP server.\n");
+ } else if (Status == EFI_BUFFER_TOO_SMALL && Buffer != NULL) {
+ AsciiPrint ("\n Error: Buffer size is smaller than the requested file.\n");
+ } else if (Status == EFI_OUT_OF_RESOURCES) {
+ AsciiPrint ("\n Error: Could not allocate I/O buffers.\n");
+ } else if (Status == EFI_DEVICE_ERROR) {
+ AsciiPrint ("\n Error: Network device error.\n");
+ } else if (Status == EFI_TIMEOUT) {
+ AsciiPrint ("\n Error: Server response timeout.\n");
+ } else if (Status == EFI_ABORTED) {
+ AsciiPrint ("\n Error: Remote boot cancelled.\n");
+ } else if (Status != EFI_BUFFER_TOO_SMALL) {
+ AsciiPrint ("\n Error: Unexpected network error.\n");
+ }
}
+
return Status;
}
/**
Disable the use of UEFI HTTP boot function.
--
2.16.2.windows.1
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2018-03-01 7:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-01 6:29 [Patch] NetworkPkg/HttpBootDxe: Correct the parameter check for the usage of HttpBootGetFileFromCache Jiaxin Wu
2018-03-01 6:29 ` [Patch] NetworkPkg/HttpBootDxe: Fix the incorrect error message output Jiaxin Wu
2018-03-01 7:05 ` Fu, Siyuan
2018-03-01 7:24 ` Ye, Ting [this message]
2018-03-01 6:50 ` [Patch] NetworkPkg/HttpBootDxe: Correct the parameter check for the usage of HttpBootGetFileFromCache Ye, Ting
2018-03-01 7:05 ` Fu, Siyuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BC0C045B0E2A584CA4575E779FA2C12A1A9BCB1B@SHSMSX103.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox