/** @file\r
The implementation of policy entry operation function in IpSecConfig application.\r
\r
- Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2009 - 2016, 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
// Process Data\r
//\r
+ OldData->SaIdCount = 0;\r
+\r
if ((Mask & NAME) != 0) {\r
AsciiStrCpyS ((CHAR8 *) OldData->Name, MAX_PEERID_LEN, (CHAR8 *) NewData->Name);\r
}\r
&CreateNew\r
);\r
if (!EFI_ERROR (Status)) {\r
+ //\r
+ // If the Selector already existed, this Entry will be updated by set data.\r
+ //\r
+ Status = mIpSecConfig->SetData (\r
+ mIpSecConfig,\r
+ Context->DataType,\r
+ Context->Selector, /// New created selector.\r
+ Data, /// Old date which has been modified, need to be set data.\r
+ Selector\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ \r
if (CreateNew) {\r
//\r
- // Insert new entry before old entry\r
+ // Edit the entry to a new one. So, we need delete the old entry.\r
//\r
Status = mIpSecConfig->SetData (\r
mIpSecConfig,\r
Context->DataType,\r
- Context->Selector,\r
- Data,\r
- Selector\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
- //\r
- // Delete old entry\r
- //\r
- Status = mIpSecConfig->SetData (\r
- mIpSecConfig,\r
- Context->DataType,\r
- Selector,\r
- NULL,\r
+ Selector, /// Old selector.\r
+ NULL, /// NULL means to delete this Entry specified by Selector.\r
NULL\r
);\r
ASSERT_EFI_ERROR (Status);\r
- } else {\r
- Status = mIpSecConfig->SetData (\r
- mIpSecConfig,\r
- Context->DataType,\r
- Context->Selector,\r
- Data,\r
- NULL\r
- );\r
}\r
}\r
\r