diff -r 000000000000 -r 33413c0669b9 vpnengine/ikev2lib/src/ikev2expire.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vpnengine/ikev2lib/src/ikev2expire.cpp Thu Dec 17 09:14:51 2009 +0200 @@ -0,0 +1,95 @@ +/* +* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* CIkev2Expire. This class is used to handle PFKEY Expire primitives received +* from IPSec plug-in. +* +*/ +#include "ikev2expire.h" +#include "pfkeymsg.h" + +// +// CIkev2Expire +// +// This class is used to handle PFKEY Expire primitives received from +// Ipsec plug-in. +// + +CIkev2Expire* CIkev2Expire::NewL(const TPfkeyMessage& aPfkeyMessage) +{ + CIkev2Expire* Expire = new (ELeave)CIkev2Expire(); + TPtrC8 spiPtr(reinterpret_cast(&aPfkeyMessage.iSa.iExt->sadb_sa_spi), + sizeof(aPfkeyMessage.iSa.iExt->sadb_sa_spi)); + Expire->SetSPI(spiPtr); + Expire->SetProtocol(aPfkeyMessage.iBase.iMsg->sadb_msg_satype); + return Expire; +} + +void CIkev2Expire::Link(CIkev2Expire* aExpire, CIkev2Expire** aAnchor) +{ + ASSERT(aExpire && aAnchor); + aExpire->iNext = NULL; + CIkev2Expire* Last = *aAnchor; + if ( Last ) + { + while ( Last->iNext ) + { + Last = Last->iNext; + } + Last->iNext = aExpire; + } + else *aAnchor = aExpire; +} + +CIkev2Expire* CIkev2Expire::GetNext(CIkev2Expire** aAnchor) +{ + ASSERT(aAnchor); + CIkev2Expire* Elem = *aAnchor; + if ( Elem ) + *aAnchor = Elem->iNext; + return Elem; +} + +void CIkev2Expire::PurgeQue(CIkev2Expire** aAnchor) +{ + ASSERT(aAnchor); + CIkev2Expire* Elem = *aAnchor; + while ( Elem ) + { + *aAnchor = Elem->iNext; + delete Elem; + Elem = *aAnchor; + } +} + +TPtrC8 CIkev2Expire::SPI() + { + return iSPI; + } + +void CIkev2Expire::SetSPI(const TDesC8& aSPI) + { + iSPI = aSPI; + } + +TUint8 CIkev2Expire::Protocol() + { + return iProtocol; + } + +void CIkev2Expire::SetProtocol(TUint8 aProt) + { + iProtocol = aProt; + } +