From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.126; helo=mga18.intel.com; envelope-from=ting.ye@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id A32D52242384E for ; Wed, 28 Feb 2018 23:18:42 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Feb 2018 23:24:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,407,1515484800"; d="scan'208";a="207999121" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga006.fm.intel.com with ESMTP; 28 Feb 2018 23:24:49 -0800 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 28 Feb 2018 23:24:49 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 28 Feb 2018 23:24:49 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.116]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Thu, 1 Mar 2018 15:24:47 +0800 From: "Ye, Ting" To: "Wu, Jiaxin" , "edk2-devel@lists.01.org" CC: "Fu, Siyuan" , "Wu, Jiaxin" Thread-Topic: [edk2] [Patch] NetworkPkg/HttpBootDxe: Fix the incorrect error message output. Thread-Index: AQHTsSayLcy97uzXDk+Elq0hBrVqSKO6+m4g Date: Thu, 1 Mar 2018 07:24:47 +0000 Message-ID: References: <20180301062932.14280-1-jiaxin.wu@intel.com> <20180301062932.14280-2-jiaxin.wu@intel.com> In-Reply-To: <20180301062932.14280-2-jiaxin.wu@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch] NetworkPkg/HttpBootDxe: Fix the incorrect error message output. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Mar 2018 07:18:43 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Ye Ting =20 -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Jiax= in Wu Sent: Thursday, March 1, 2018 2:30 PM To: edk2-devel@lists.01.org Cc: Ye, Ting ; Fu, Siyuan ; Wu, Jia= xin Subject: [edk2] [Patch] NetworkPkg/HttpBootDxe: Fix the incorrect error mes= sage output. For IPv6 case, if one invalid URL returned from DHCP server, HttpBootDxe dr= iver could not retrieve the URL host address from DNS server. In such a cas= e, 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 er= ror message even the HTTP process is correct. This patch is to fix above issue. Cc: Ye Ting Cc: Fu Siyuan Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin --- 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/HttpBootD= xe/HttpBootClient.c index b93e63bb2f..1d1e47008d 100644 --- a/NetworkPkg/HttpBootDxe/HttpBootClient.c +++ b/NetworkPkg/HttpBootDxe/HttpBootClient.c @@ -472,10 +472,11 @@ HttpBootDhcp6ExtractUriInfo ( } =20 Status =3D HttpBootDns (Private, HostNameStr, &IpAddr); FreePool (HostNameStr); if (EFI_ERROR (Status)) { + AsciiPrint ("\n Error: Could not retrieve the host address from=20 + DNS server.\n"); goto Error; } =20 }=20 =20 CopyMem (&Private->ServerIp.v6, &IpAddr, sizeof (EFI_IPv6_ADDRESS)); dif= f --git a/NetworkPkg/HttpBootDxe/HttpBootImpl.c b/NetworkPkg/HttpBootDxe/Ht= tpBootImpl.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. =20 -Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
+Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
(C) Copyright 2016 Hewlett Packard Enterprise Development LP
This pro= gram and the accompanying materials are licensed and made available under = the terms and conditions of the BSD License that accompanies this distribut= ion. =20 The full text of the license may be found at http://opensource.org/licenses/bsd-license.php. = =20 @@ -329,11 +329,11 @@ HttpBootLoadFile ( // // Parse the cached offer to get the boot file URL first. // Status =3D 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=20 + HTTP server.\n"); goto ON_EXIT; } } =20 if (!Private->HttpCreated) { @@ -398,26 +398,29 @@ HttpBootLoadFile ( ImageType ); =20 ON_EXIT: HttpBootUninstallCallback (Private); - - if (Status =3D=3D EFI_ACCESS_DENIED) { - AsciiPrint ("\n Error: Could not establish connection with HTTP serve= r.\n"); - } else if (Status =3D=3D EFI_BUFFER_TOO_SMALL && Buffer !=3D NULL) { - AsciiPrint ("\n Error: Buffer size is smaller than the requested file= .\n"); - } else if (Status =3D=3D EFI_OUT_OF_RESOURCES) { - AsciiPrint ("\n Error: Could not allocate I/O buffers.\n"); - } else if (Status =3D=3D EFI_DEVICE_ERROR) { - AsciiPrint ("\n Error: Network device error.\n"); - } else if (Status =3D=3D EFI_TIMEOUT) { - AsciiPrint ("\n Error: Server response timeout.\n"); - } else if (Status =3D=3D EFI_ABORTED) { - AsciiPrint ("\n Error: Remote boot cancelled.\n"); - } else if (Status !=3D EFI_BUFFER_TOO_SMALL) { - AsciiPrint ("\n Error: Unexpected network error.\n"); + =20 + if (EFI_ERROR (Status)) { + if (Status =3D=3D EFI_ACCESS_DENIED) { + AsciiPrint ("\n Error: Could not establish connection with HTTP ser= ver.\n"); + } else if (Status =3D=3D EFI_BUFFER_TOO_SMALL && Buffer !=3D NULL) { + AsciiPrint ("\n Error: Buffer size is smaller than the requested fi= le.\n"); + } else if (Status =3D=3D EFI_OUT_OF_RESOURCES) { + AsciiPrint ("\n Error: Could not allocate I/O buffers.\n"); + } else if (Status =3D=3D EFI_DEVICE_ERROR) { + AsciiPrint ("\n Error: Network device error.\n"); + } else if (Status =3D=3D EFI_TIMEOUT) { + AsciiPrint ("\n Error: Server response timeout.\n"); + } else if (Status =3D=3D EFI_ABORTED) { + AsciiPrint ("\n Error: Remote boot cancelled.\n"); + } else if (Status !=3D EFI_BUFFER_TOO_SMALL) { + AsciiPrint ("\n Error: Unexpected network error.\n"); + } } + =20 return Status; } =20 /** 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