X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=NetworkPkg%2FApplication%2FIpsecConfig%2FPolicyEntryOperation.c;h=9bbc11490c5430cfb883c9c444b99e6414235a59;hp=970caa16ca0bc43aba7824ad452fb28c8dacd48f;hb=a51896e475cd62e742d54f1a0addd699237a24c2;hpb=4991eeffcd86e1dc0bf2b15655b986b932551854;ds=sidebyside diff --git a/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c b/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c index 970caa16ca..9bbc11490c 100644 --- a/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c +++ b/NetworkPkg/Application/IpsecConfig/PolicyEntryOperation.c @@ -1,7 +1,7 @@ /** @file The implementation of policy entry operation function in IpSecConfig application. - Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -1398,6 +1398,8 @@ CombineSpdEntry ( // // Process Data // + OldData->SaIdCount = 0; + if ((Mask & NAME) != 0) { AsciiStrCpyS ((CHAR8 *) OldData->Name, MAX_PEERID_LEN, (CHAR8 *) NewData->Name); } @@ -1862,37 +1864,30 @@ EditOperatePolicyEntry ( &CreateNew ); if (!EFI_ERROR (Status)) { + // + // If the Selector already existed, this Entry will be updated by set data. + // + Status = mIpSecConfig->SetData ( + mIpSecConfig, + Context->DataType, + Context->Selector, /// New created selector. + Data, /// Old date which has been modified, need to be set data. + Selector + ); + ASSERT_EFI_ERROR (Status); + if (CreateNew) { // - // Insert new entry before old entry + // Edit the entry to a new one. So, we need delete the old entry. // Status = mIpSecConfig->SetData ( mIpSecConfig, Context->DataType, - Context->Selector, - Data, - Selector - ); - ASSERT_EFI_ERROR (Status); - // - // Delete old entry - // - Status = mIpSecConfig->SetData ( - mIpSecConfig, - Context->DataType, - Selector, - NULL, + Selector, /// Old selector. + NULL, /// NULL means to delete this Entry specified by Selector. NULL ); ASSERT_EFI_ERROR (Status); - } else { - Status = mIpSecConfig->SetData ( - mIpSecConfig, - Context->DataType, - Context->Selector, - Data, - NULL - ); } }