]> git.proxmox.com Git - mirror_edk2.git/commitdiff
1. Refine the error handling when the PXE-v4 DHCP offer isn't valid
authorhhuan13 <hhuan13@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 24 Aug 2011 08:53:22 +0000 (08:53 +0000)
committerhhuan13 <hhuan13@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 24 Aug 2011 08:53:22 +0000 (08:53 +0000)
Signed-off-by: hhuan13
Reviewed-by: xdu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12192 6f19259b-4bc3-4df7-8a09-765794883524

NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c
NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.c
NetworkPkg/UefiPxeBcDxe/PxeBcImpl.c

index d58e2b46c2f258ede54f07759c13870b355d17cd..e26b412781b82b645f32429504711be431a2ef40 100644 (file)
@@ -1164,6 +1164,8 @@ ON_EXIT:
     AsciiPrint ("\n  PXE-E22: Client received ICMP error from server.\n");\r
   } else if (Status == EFI_TFTP_ERROR) {\r
     AsciiPrint ("\n  PXE-E23: Client received TFTP error from server.\n");\r
+  } else if (Status == EFI_NOT_FOUND) {\r
+    AsciiPrint ("\n  PXE-E53: No boot filename received.\n");\r
   } else if (Status != EFI_BUFFER_TOO_SMALL) {\r
     AsciiPrint ("\n  PXE-E99: Unexpected network error.\n");\r
   }\r
index a30ae177ef70b541a79d72b0308eac54dae94ba7..60942fb908a7e39bd8f9d77064b1d06519629140 100644 (file)
@@ -960,6 +960,7 @@ PxeBcSelectDhcp4Offer (
 \r
   @retval     EFI_SUCCESS         Handled the DHCPv4 offer packet successfully.\r
   @retval     EFI_NO_RESPONSE     No response to the following request packet.\r
+  @retval     EFI_NOT_FOUND       No boot filename received.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1070,7 +1071,9 @@ PxeBcHandleDhcp4Offer (
       //\r
       //  Othewise, the bootfile name must be included in DhcpOnly offer.\r
       //\r
-      ASSERT (Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL);\r
+      if (Options[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] == NULL) {\r
+        Status = EFI_NOT_FOUND;\r
+      }\r
     }\r
   }\r
 \r
index 8e1e91cb65c1002af9fab8183d955c0dcef85f74..82fddb169ae0a6e14525cb4130637ffd5331e3ae 100644 (file)
@@ -388,6 +388,8 @@ EfiPxeBcDhcp (
   Mode->IcmpErrorReceived = FALSE;\r
   Private->Function       = EFI_PXE_BASE_CODE_FUNCTION_DHCP;\r
   Private->IsOfferSorted  = SortOffers;\r
+  Private->SolicitTimes   = 0;\r
+  Private->ElapsedTime    = 0;\r
 \r
   if (!Mode->Started) {\r
     return EFI_NOT_STARTED;\r