]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Use siaddr in DHCP packet, if zero, use option 54 instead.
authorvanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 14 Aug 2009 02:37:23 +0000 (02:37 +0000)
committervanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 14 Aug 2009 02:37:23 +0000 (02:37 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9066 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.c
MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcImpl.c

index 1d5557f7a9fc88bded9b3cf429ffbc3aba38c874..5e86cf5779e6cc10e2789bc221dcaaad79820c5e 100644 (file)
@@ -275,10 +275,11 @@ PxeBcTryBinl (
   Offer = &Private->Dhcp4Offers[Index].Packet.Offer;\r
 \r
   //\r
-  // use option 54, if zero, use siaddr in header\r
+  // Use siaddr(next server) in DHCPOFFER packet header, if zero, use option 54(server identifier)\r
+  // in DHCPOFFER packet.\r
+  // (It does not comply with PXE Spec, Ver2.1)\r
   //\r
-  ZeroMem (&ServerIp, sizeof(EFI_IP_ADDRESS));\r
-  if (Private->Dhcp4Offers[Index].Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_SERVER_ID] != NULL) {\r
+  if (EFI_IP4_EQUAL (&Offer->Dhcp4.Header.ServerAddr.Addr, &mZeroIp4Addr)) {\r
     CopyMem (\r
       &ServerIp.Addr[0],\r
       Private->Dhcp4Offers[Index].Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_SERVER_ID]->Data,\r
index 3eeacdcc5c8065c51c56213b5a7dee9d9fb03db0..659f638930eaac63a506075ff835476ea62fb5cb 100644 (file)
@@ -2480,9 +2480,11 @@ DiscoverBootFile (
   }\r
 \r
   //\r
-  // use option 54, if zero, use siaddr in header\r
+  // Use siaddr(next server) in DHCPOFFER packet header, if zero, use option 54(server identifier)\r
+  // in DHCPOFFER packet.\r
+  // (It does not comply with PXE Spec, Ver2.1)\r
   //\r
-  if (Packet->Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_SERVER_ID] != NULL) {\r
+  if (EFI_IP4_EQUAL (&Packet->Packet.Offer.Dhcp4.Header.ServerAddr, &mZeroIp4Addr)) {\r
     CopyMem (\r
       &Private->ServerIp,\r
       Packet->Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_SERVER_ID]->Data,\r