Signed-off-by: Ye Ting<ting.ye@intel.com>
Reviewed-by: Qianouyang <qian.ouyang@intel.com>
Reviewed-by: Fu, Siyuan <Siyuan.fu@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13229
6f19259b-4bc3-4df7-8a09-
765794883524
/** @file\r
Helper functions for configuring or obtaining the parameters relating to IP6.\r
\r
/** @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
\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
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_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
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
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
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
// 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
Status = Ip6Config->GetData (\r
Ip6Config,\r
Ip6ConfigDataTypeAltInterfaceId,\r
&DataSize,\r
+ &Ip6NvData->InterfaceId\r
);\r
if (EFI_ERROR (Status)) {\r
goto Exit;\r
}\r
\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
\r
//\r
// Get current policy.\r
IP6_FORM_CALLBACK_INFO *Private;\r
UINTN BufferSize;\r
IP6_CONFIG_IFR_NVDATA *IfrNvData;\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
EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
IP6_CONFIG_INSTANCE *Instance;\r
\r
Status = EFI_SUCCESS;\r
\r
\r
Status = EFI_SUCCESS;\r
\r
- ZeroMem (&OldIfrNvData, BufferSize);\r
-\r
HiiGetBrowserData (NULL, NULL, BufferSize, (UINT8 *) IfrNvData);\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
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
} 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
*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
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;\r
break;\r
\r