\r
@param Event Pointer to EFI_PXE_BC_PROTOCOL\r
@param Context Context of the timer event\r
- \r
- @return None.\r
\r
**/\r
VOID\r
\r
@param Context The PXEBC private data.\r
\r
- @return None.\r
-\r
**/\r
VOID\r
EFIAPI\r
@param Event The event signaled.\r
@param Context The context passed in by the event notifier.\r
\r
- @return None.\r
-\r
**/\r
VOID\r
EFIAPI\r
//\r
// Request IpIoListenHandlerDpc as a DPC at TPL_CALLBACK\r
//\r
- NetLibQueueDpc (TPL_CALLBACK, IcmpErrorListenHandlerDpc, Context);\r
+ QueueDpc (TPL_CALLBACK, IcmpErrorListenHandlerDpc, Context);\r
}\r
\r
/** \r
// Dispatch the DPCs queued by the NotifyFunction of the canceled rx token's\r
// events.\r
//\r
- NetLibDispatchDpc ();\r
+ DispatchDpc ();\r
\r
Private->Ip4->Configure (Private->Ip4, NULL);\r
\r
return TRUE;\r
}\r
\r
+ ASSERT (PxeBcMode->IpFilter.IpCnt < EFI_PXE_BASE_CODE_MAX_IPCNT);\r
+\r
for (Index = 0; Index < PxeBcMode->IpFilter.IpCnt; Index++) {\r
CopyMem (\r
&Ip4Address, \r
BOOLEAN PromiscuousNeed;\r
\r
if (This == NULL) {\r
- DEBUG ((EFI_D_ERROR, "BC *This pointer == NULL.\n"));\r
+ DEBUG ((EFI_D_ERROR, "This == NULL.\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
Private = PXEBC_PRIVATE_DATA_FROM_PXEBC (This);\r
Mode = Private->PxeBc.Mode;\r
\r
- if (Private == NULL) {\r
- DEBUG ((EFI_D_ERROR, "PXEBC_PRIVATE_DATA poiner == NULL.\n"));\r
+ if (NewFilter == NULL) {\r
+ DEBUG ((EFI_D_ERROR, "NewFilter == NULL.\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if (NewFilter == NULL) {\r
- DEBUG ((EFI_D_ERROR, "IP Filter *NewFilter == NULL.\n"));\r
+ if (NewFilter->IpCnt > EFI_PXE_BASE_CODE_MAX_IPCNT) {\r
+ DEBUG ((EFI_D_ERROR, "NewFilter->IpCnt > %d.\n", EFI_PXE_BASE_CODE_MAX_IPCNT));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
}\r
\r
PromiscuousNeed = FALSE;\r
+\r
for (Index = 0; Index < NewFilter->IpCnt; ++Index) {\r
if (IP4_IS_LOCAL_BROADCAST (EFI_IP4 (NewFilter->IpList[Index].v4))) {\r
//\r
}\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