From nobody Mon Dec 23 04:58:27 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1519885780216987.6953181367564; Wed, 28 Feb 2018 22:29:40 -0800 (PST) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 150E22242384D; Wed, 28 Feb 2018 22:23:30 -0800 (PST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 9B93D2242383D for ; Wed, 28 Feb 2018 22:23:28 -0800 (PST) Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Feb 2018 22:29:36 -0800 Received: from jiaxinwu-mobl2.ccr.corp.intel.com ([10.239.196.134]) by orsmga008.jf.intel.com with ESMTP; 28 Feb 2018 22:29:35 -0800 X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=jiaxin.wu@intel.com; receiver=edk2-devel@lists.01.org X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.47,407,1515484800"; d="scan'208";a="21686500" From: Jiaxin Wu To: edk2-devel@lists.01.org Date: Thu, 1 Mar 2018 14:29:32 +0800 Message-Id: <20180301062932.14280-2-jiaxin.wu@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 In-Reply-To: <20180301062932.14280-1-jiaxin.wu@intel.com> References: <20180301062932.14280-1-jiaxin.wu@intel.com> Subject: [edk2] [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: , Cc: Ye Ting , Fu Siyuan , Wu Jiaxin MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" 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 Cc: Fu Siyuan Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin Reviewed-by: Fu Siyuan Reviewed-by: Ye Ting =20 --- 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 DNS= server.\n"); goto Error; } =20 }=20 =20 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. =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 program and the accompanying materials are licensed and made availabl= e under=20 the terms and conditions of the BSD License that accompanies this distribu= tion. =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 HTTP s= erver.\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. --=20 2.16.2.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel