From 9d3fe85fcc8ff386ee0814a4dad03bbf7dc54594 Mon Sep 17 00:00:00 2001 From: Ashish Singhal Date: Thu, 14 Dec 2023 13:17:02 -0700 Subject: NetworkPkg/Ip4Dxe: Fix Reset To Default Exercising reset to default does not reset the settings. Add handler code for the case where configuration is disabled. Signed-off-by: Ashish Singhal Reviewed-by: Saloni Kasbekar Acked-by: Michael D Kinney --- NetworkPkg/Ip4Dxe/Ip4Config2Nv.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'NetworkPkg') diff --git a/NetworkPkg/Ip4Dxe/Ip4Config2Nv.c b/NetworkPkg/Ip4Dxe/Ip4Config2Nv.c index e0b6a4d4a9..dac5817b7c 100644 --- a/NetworkPkg/Ip4Dxe/Ip4Config2Nv.c +++ b/NetworkPkg/Ip4Dxe/Ip4Config2Nv.c @@ -586,6 +586,31 @@ Ip4Config2ConvertIfrNvDataToConfigNvData ( } if (IfrFormNvData->Configure != TRUE) { + if (Ip4NvData->DnsAddress != NULL) { + FreePool (Ip4NvData->DnsAddress); + Ip4NvData->DnsAddress = NULL; + Ip4NvData->DnsAddressCount = 0; + } + + if (Ip4NvData->GatewayAddress != NULL) { + FreePool (Ip4NvData->GatewayAddress); + Ip4NvData->GatewayAddress = NULL; + Ip4NvData->GatewayAddressCount = 0; + } + + if (Ip4NvData->ManualAddress != NULL) { + FreePool (Ip4NvData->ManualAddress); + Ip4NvData->ManualAddress = NULL; + Ip4NvData->ManualAddressCount = 0; + } + + Ip4NvData->Policy = Ip4Config2PolicyDhcp; + Status = Ip4Cfg2->SetData ( + Ip4Cfg2, + Ip4Config2DataTypePolicy, + sizeof (EFI_IP4_CONFIG2_POLICY), + &Ip4NvData->Policy + ); return EFI_SUCCESS; } -- cgit v1.2.3