1. sync PXE boot trackers for Windows 2008 server.
2. fixed one bug for SetIpfilter(). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7886 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -277,20 +277,26 @@ PxeBcTryBinl (
|
||||
ASSERT (Private->Dhcp4Offers[Index].OfferType == DHCP4_PACKET_TYPE_BINL);
|
||||
|
||||
Offer = &Private->Dhcp4Offers[Index].Packet.Offer;
|
||||
if (Offer->Dhcp4.Header.ServerAddr.Addr[0] == 0) {
|
||||
//
|
||||
// next server ip address is zero, use server id option instead.
|
||||
//
|
||||
|
||||
//
|
||||
// use option 54, if zero, use siaddr in header
|
||||
//
|
||||
ZeroMem (&ServerIp, sizeof(EFI_IP_ADDRESS));
|
||||
if (Private->Dhcp4Offers[Index].Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_SERVER_ID] != NULL) {
|
||||
CopyMem (
|
||||
&ServerIp.Addr[0],
|
||||
Private->Dhcp4Offers[Index].Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_SERVER_ID]->Data,
|
||||
sizeof (EFI_IPv4_ADDRESS)
|
||||
);
|
||||
} else {
|
||||
//
|
||||
// use next server ip address.
|
||||
//
|
||||
CopyMem (&ServerIp.Addr[0], &Offer->Dhcp4.Header.ServerAddr, sizeof (EFI_IPv4_ADDRESS));
|
||||
CopyMem (
|
||||
&ServerIp.Addr[0],
|
||||
&Offer->Dhcp4.Header.ServerAddr,
|
||||
sizeof (EFI_IPv4_ADDRESS)
|
||||
);
|
||||
}
|
||||
if (ServerIp.Addr[0] == 0) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CachedPacket = &Private->ProxyOffer;
|
||||
|
Reference in New Issue
Block a user