diff -r 032d3a818f49 -r 68dc8923de26 vpnengine/ikev1lib/src/ikev1receiver.cpp --- a/vpnengine/ikev1lib/src/ikev1receiver.cpp Fri Feb 19 23:50:52 2010 +0200 +++ b/vpnengine/ikev1lib/src/ikev1receiver.cpp Fri Mar 12 15:48:43 2010 +0200 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 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" @@ -82,10 +82,21 @@ // void CIkev1Receiver::StartReceive() { + iReceiving = ETrue; DoReceive(); } // --------------------------------------------------------------------------- +// Cancels receive. +// --------------------------------------------------------------------------- +// +void CIkev1Receiver::CancelReceive() + { + iReceiving = EFalse; + Cancel(); + } + +// --------------------------------------------------------------------------- // From class CActive // Handles completion of receive. // --------------------------------------------------------------------------- @@ -112,13 +123,15 @@ } else { + iReceiving = EFalse; iCallback.ReceiveError( iStatus.Int() ); } delete iUdpData; iUdpData = NULL; - if ( iStatus.Int() == KErrNone ) + if ( iReceiving && + iStatus.Int() == KErrNone ) { // Continue receiving. DoReceive(); @@ -145,6 +158,8 @@ // TInt CIkev1Receiver::RunError( TInt aError ) { + iReceiving = EFalse; + delete iUdpData; iUdpData = NULL;