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.20; helo=mga02.intel.com; envelope-from=ting.ye@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 78B6121B00DD0 for ; Tue, 14 Nov 2017 19:09:36 -0800 (PST) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Nov 2017 19:13:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,398,1505804400"; d="scan'208";a="173647906" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga005.jf.intel.com with ESMTP; 14 Nov 2017 19:13:43 -0800 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 14 Nov 2017 19:13:43 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 14 Nov 2017 19:13:42 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.213]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.159]) with mapi id 14.03.0319.002; Wed, 15 Nov 2017 11:13:40 +0800 From: "Ye, Ting" To: "Fu, Siyuan" , "edk2-devel@lists.01.org" CC: "Wu, Jiaxin" Thread-Topic: [Patch V2] NetworkPkg: Print error message to screen if error occurs during HTTP boot. Thread-Index: AQHTXbRVU7+o4RSV00yvlm1f9lgp2aMUw/oA Date: Wed, 15 Nov 2017 03:13:39 +0000 Message-ID: References: <20171115015151.16588-1-siyuan.fu@intel.com> In-Reply-To: <20171115015151.16588-1-siyuan.fu@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 V2] NetworkPkg: Print error message to screen if error occurs during HTTP boot. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Nov 2017 03:09:36 -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: Fu, Siyuan=20 Sent: Wednesday, November 15, 2017 9:52 AM To: edk2-devel@lists.01.org Cc: Wu, Jiaxin ; Ye, Ting Subject: [Patch V2] NetworkPkg: Print error message to screen if error occu= rs during HTTP boot. V2 update: Add error message is URI address is not correct. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Fu Siyuan Cc: Wu Jiaxin Cc: Ye Ting --- NetworkPkg/HttpBootDxe/HttpBootImpl.c | 21 +++++++++++++++++++++ NetworkPkg/HttpBootDxe/HttpBootSupport.c | 2 ++ NetworkPkg/HttpDxe/HttpImpl.c | 1 + 3 files changed, 24 insertions(+) diff --git a/NetworkPkg/HttpBootDxe/HttpBootImpl.c b/NetworkPkg/HttpBootDxe= /HttpBootImpl.c index 06a8a6a..d591db5 100644 --- a/NetworkPkg/HttpBootDxe/HttpBootImpl.c +++ b/NetworkPkg/HttpBootDxe/HttpBootImpl.c @@ -327,6 +327,7 @@ HttpBootLoadFile ( // Status =3D HttpBootDiscoverBootInfo (Private); if (EFI_ERROR (Status)) { + AsciiPrint ("\n Error: Could not discover the boot information=20 + for DHCP server.\n"); goto ON_EXIT; } } @@ -369,6 +370,7 @@ HttpBootLoadFile ( &Private->ImageType ); if (EFI_ERROR (Status) && Status !=3D EFI_BUFFER_TOO_SMALL) { + AsciiPrint ("\n Error: Could not retrieve NBP file size from=20 + HTTP server.\n"); goto ON_EXIT; } } @@ -394,6 +396,22 @@ HttpBootLoadFile ( =20 ON_EXIT: HttpBootUninstallCallback (Private); + + if (Status =3D=3D EFI_ACCESS_DENIED) { + AsciiPrint ("\n Error: Could not establish connection with HTTP=20 + server.\n"); } else if (Status =3D=3D EFI_BUFFER_TOO_SMALL && Buffer != =3D NULL) { + AsciiPrint ("\n Error: Buffer size is smaller than the requested=20 + file.\n"); } else if (Status =3D=3D EFI_OUT_OF_RESOURCES) { + AsciiPrint ("\n Error: Could not allocate I/O buffers.\n"); }=20 + else if (Status =3D=3D EFI_DEVICE_ERROR) { + AsciiPrint ("\n Error: Network device error.\n"); } else if=20 + (Status =3D=3D EFI_TIMEOUT) { + AsciiPrint ("\n Error: Server response timeout.\n"); } else if=20 + (Status =3D=3D EFI_ABORTED) { + AsciiPrint ("\n Error: Remote boot cancelled.\n"); } else if=20 + (Status !=3D EFI_BUFFER_TOO_SMALL) { + AsciiPrint ("\n Error: Unexpected network error.\n"); } return Status; } =20 @@ -555,6 +573,7 @@ HttpBootDxeLoadFile ( MediaPresent =3D TRUE; NetLibDetectMedia (Private->Controller, &MediaPresent); if (!MediaPresent) { + AsciiPrint ("\n Error: Could not detect network connection.\n"); return EFI_NO_MEDIA; } =20 @@ -595,6 +614,8 @@ HttpBootDxeLoadFile ( Status =3D HttpBootRegisterRamDisk (Private, *BufferSize, Buffer, Imag= eType); if (!EFI_ERROR (Status)) { Status =3D EFI_WARN_FILE_SYSTEM; + } else { + AsciiPrint ("\n Error: Could not register RAM disk to the=20 + system.\n"); } } =20 diff --git a/NetworkPkg/HttpBootDxe/HttpBootSupport.c b/NetworkPkg/HttpBoot= Dxe/HttpBootSupport.c index d508e2c..7ca48f3 100644 --- a/NetworkPkg/HttpBootDxe/HttpBootSupport.c +++ b/NetworkPkg/HttpBootDxe/HttpBootSupport.c @@ -1093,6 +1093,7 @@ HttpBootCheckUriScheme ( // Return EFI_INVALID_PARAMETER if the URI is not HTTP or HTTPS. // if ((AsciiStrnCmp (Uri, "http://", 7) !=3D 0) && (AsciiStrnCmp (Uri, "ht= tps://", 8) !=3D 0)) { + AsciiPrint ("\n Error: Invalid URI address.\n"); DEBUG ((EFI_D_ERROR, "HttpBootCheckUriScheme: Invalid Uri.\n")); return EFI_INVALID_PARAMETER; } @@ -1101,6 +1102,7 @@ HttpBootCheckUriScheme ( // HTTP is disabled, return EFI_ACCESS_DENIED if the URI is HTTP. // if (!PcdGetBool (PcdAllowHttpConnections) && (AsciiStrnCmp (Uri, "http:/= /", 7) =3D=3D 0)) { + AsciiPrint ("\n Error: Access forbidden, only HTTPS connection is=20 + allowed.\n"); DEBUG ((EFI_D_ERROR, "HttpBootCheckUriScheme: HTTP is disabled.\n")); return EFI_ACCESS_DENIED; } diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c = index 46d0323..57fa39f 100644 --- a/NetworkPkg/HttpDxe/HttpImpl.c +++ b/NetworkPkg/HttpDxe/HttpImpl.c @@ -523,6 +523,7 @@ EfiHttpRequest ( =20 FreePool (HostNameStr); if (EFI_ERROR (Status)) { + DEBUG ((EFI_D_ERROR, "Error: Could not retrieve the host=20 + address from DNS server.\n")); goto Error1; } } -- 1.9.5.msysgit.1