mirror of https://github.com/acidanthera/audk.git
Reconfigure the UdpRead instance if an error occurred in Dhcp, Discover and Mtftp process.
Signed-off-by: sfu5 Reviewed-by: qianouyang Reviewed-by: tye git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12884 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
9508d0fa4f
commit
357af28525
|
@ -727,7 +727,7 @@ ON_EXIT:
|
|||
}
|
||||
}
|
||||
|
||||
Status = Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
|
||||
//
|
||||
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
|
||||
|
@ -1024,7 +1024,7 @@ EfiPxeBcDiscover (
|
|||
} else {
|
||||
Status = EFI_DEVICE_ERROR;
|
||||
}
|
||||
return Status;
|
||||
goto ON_EXIT;
|
||||
} else {
|
||||
PxeBcParseCachedDhcpPacket (&Private->PxeReply);
|
||||
}
|
||||
|
@ -1043,7 +1043,7 @@ EfiPxeBcDiscover (
|
|||
|
||||
ON_EXIT:
|
||||
|
||||
Status = Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
|
||||
//
|
||||
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
|
||||
|
@ -1280,10 +1280,11 @@ EfiPxeBcMtftp (
|
|||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
goto ON_EXIT;
|
||||
}
|
||||
|
||||
Status = Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
ON_EXIT:
|
||||
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
//
|
||||
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
|
||||
// receive filter list emptied and the filter set to EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP.
|
||||
|
|
|
@ -1626,6 +1626,14 @@ PxeBcDhcp6Discover (
|
|||
}
|
||||
ReadSize = (UINTN) Reply->Size;
|
||||
|
||||
//
|
||||
// Start Udp6Read instance
|
||||
//
|
||||
Status = Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = PxeBc->UdpRead (
|
||||
PxeBc,
|
||||
OpFlags,
|
||||
|
@ -1638,6 +1646,10 @@ PxeBcDhcp6Discover (
|
|||
&ReadSize,
|
||||
(VOID *) &Reply->Dhcp6
|
||||
);
|
||||
//
|
||||
// Stop Udp6Read instance
|
||||
//
|
||||
Private->Udp6Read->Configure (Private->Udp6Read, NULL);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
|
|
@ -430,13 +430,8 @@ EfiPxeBcDhcp (
|
|||
Status = PxeBcDhcp6Sarr (Private, Private->Dhcp6);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
goto ON_EXIT;
|
||||
}
|
||||
|
||||
//
|
||||
// Configure Udp6Read instance
|
||||
//
|
||||
Status = Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
} else {
|
||||
|
||||
//
|
||||
|
@ -450,15 +445,16 @@ EfiPxeBcDhcp (
|
|||
Status = PxeBcDhcp4Dora (Private, Private->Dhcp4);
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
goto ON_EXIT;
|
||||
}
|
||||
|
||||
//
|
||||
// Configure Udp4Read instance
|
||||
//
|
||||
Status = Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
}
|
||||
|
||||
|
||||
ON_EXIT:
|
||||
if (Mode->UsingIpv6) {
|
||||
Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
} else {
|
||||
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
}
|
||||
//
|
||||
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
|
||||
// receive filter list emptied and the filter set to EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP.
|
||||
|
@ -692,7 +688,7 @@ EfiPxeBcDiscover (
|
|||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
goto ON_EXIT;
|
||||
} else {
|
||||
//
|
||||
// Parse the cached PXE reply packet, and store it into mode data if valid.
|
||||
|
@ -725,9 +721,9 @@ EfiPxeBcDiscover (
|
|||
ON_EXIT:
|
||||
|
||||
if (Mode->UsingIpv6) {
|
||||
Status = Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
} else {
|
||||
Status = Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -962,15 +958,15 @@ EfiPxeBcMtftp (
|
|||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
goto ON_EXIT;
|
||||
}
|
||||
|
||||
|
||||
ON_EXIT:
|
||||
if (Mode->UsingIpv6) {
|
||||
Status = Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
Private->Udp6Read->Configure (Private->Udp6Read, &Private->Udp6CfgData);
|
||||
} else {
|
||||
Status = Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
Private->Udp4Read->Configure (Private->Udp4Read, &Private->Udp4CfgData);
|
||||
}
|
||||
|
||||
//
|
||||
// Dhcp(), Discover(), and Mtftp() set the IP filter, and return with the IP
|
||||
// receive filter list emptied and the filter set to EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP.
|
||||
|
|
Loading…
Reference in New Issue