/** @file\r
Helper functions for configuring or obtaining the parameters relating to IP6.\r
\r
- Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
IN IP6_CONFIG_INSTANCE *Instance\r
)\r
{\r
+ IP6_CONFIG_NVDATA *Ip6NvData;\r
EFI_IP6_CONFIG_PROTOCOL *Ip6Config;\r
UINTN DataSize;\r
VOID *Data;\r
EFI_STATUS Status;\r
- EFI_IP6_CONFIG_INTERFACE_ID InterfaceId;\r
EFI_IP6_CONFIG_POLICY Policy;\r
EFI_IP6_CONFIG_DUP_ADDR_DETECT_TRANSMITS DadXmits;\r
EFI_HII_HANDLE HiiHandle;\r
NET_CHECK_SIGNATURE (Instance, IP6_CONFIG_INSTANCE_SIGNATURE);\r
\r
Ip6Config = &Instance->Ip6Config;\r
+ Ip6NvData = &Instance->Ip6NvData;\r
Data = NULL;\r
DataSize = 0;\r
HiiHandle = Instance->CallbackInfo.RegisteredHandle;\r
// Get the interface id.\r
//\r
DataSize = sizeof (EFI_IP6_CONFIG_INTERFACE_ID);\r
- ZeroMem (&InterfaceId, DataSize);\r
+ ZeroMem (&Ip6NvData->InterfaceId, DataSize);\r
Status = Ip6Config->GetData (\r
Ip6Config,\r
Ip6ConfigDataTypeAltInterfaceId,\r
&DataSize,\r
- &InterfaceId\r
+ &Ip6NvData->InterfaceId\r
);\r
if (EFI_ERROR (Status)) {\r
goto Exit;\r
}\r
\r
- Ip6ConvertInterfaceIdToString (IfrNvData->InterfaceId, &InterfaceId);\r
+ Ip6ConvertInterfaceIdToString (IfrNvData->InterfaceId, &Ip6NvData->InterfaceId);\r
\r
//\r
// Get current policy.\r
IP6_FORM_CALLBACK_INFO *Private;\r
UINTN BufferSize;\r
IP6_CONFIG_IFR_NVDATA *IfrNvData;\r
- IP6_CONFIG_IFR_NVDATA OldIfrNvData;\r
EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
IP6_CONFIG_INSTANCE *Instance;\r
\r
Status = EFI_SUCCESS;\r
\r
- ZeroMem (&OldIfrNvData, BufferSize);\r
-\r
HiiGetBrowserData (NULL, NULL, BufferSize, (UINT8 *) IfrNvData);\r
\r
- CopyMem (&OldIfrNvData, IfrNvData, BufferSize);\r
-\r
if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
switch (QuestionId) {\r
case KEY_GET_CURRENT_SETTING:\r
} else if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
switch (QuestionId) {\r
case KEY_SAVE_CONFIG_CHANGES:\r
- CopyMem (&OldIfrNvData, IfrNvData, sizeof (IP6_CONFIG_IFR_NVDATA));\r
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;\r
break;\r
\r
case KEY_IGNORE_CONFIG_CHANGES:\r
- CopyMem (IfrNvData, &OldIfrNvData, sizeof (IP6_CONFIG_IFR_NVDATA));\r
+ Ip6FreeAddressInfoList (&Ip6NvData->ManualAddress);\r
+ Ip6FreeAddressInfoList (&Ip6NvData->GatewayAddress);\r
+ Ip6FreeAddressInfoList (&Ip6NvData->DnsAddress);\r
+\r
+ Ip6NvData->ManualAddressCount = 0;\r
+ Ip6NvData->GatewayAddressCount = 0;\r
+ Ip6NvData->DnsAddressCount = 0;\r
+\r
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;\r
break;\r
\r