# HG changeset patch # User hgs # Date 1280522139 -19800 # Node ID b285782036ce5dfe494c263e3175bded126f36f5 # Parent cc67bf60355a3fcd2e04e3e54c458112f1bf8b3f 201029_02 diff -r cc67bf60355a -r b285782036ce build.config.xml --- a/build.config.xml Tue Jul 20 22:06:16 2010 +0530 +++ b/build.config.xml Sat Jul 31 02:05:39 2010 +0530 @@ -151,7 +151,7 @@ - + diff -r cc67bf60355a -r b285782036ce linklayercontrol/networkinterfacemgr/inc/nifman_internal.h --- a/linklayercontrol/networkinterfacemgr/inc/nifman_internal.h Tue Jul 20 22:06:16 2010 +0530 +++ b/linklayercontrol/networkinterfacemgr/inc/nifman_internal.h Sat Jul 31 02:05:39 2010 +0530 @@ -24,10 +24,12 @@ #define __NIFMAN_INTERNAL_H__ #include -#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS -#include -#include -#endif + +// public headers not to include platform headers +// #ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +// #include +// #include +// #endif /** diff -r cc67bf60355a -r b285782036ce linklayercontrol/networkinterfacemgr/netcfgext/inc/netcfgextnotify.h --- a/linklayercontrol/networkinterfacemgr/netcfgext/inc/netcfgextnotify.h Tue Jul 20 22:06:16 2010 +0530 +++ b/linklayercontrol/networkinterfacemgr/netcfgext/inc/netcfgextnotify.h Sat Jul 31 02:05:39 2010 +0530 @@ -38,6 +38,7 @@ MNifIfNotify interface Only IfProgress, DoReadDes and DoReadInt supported. */ + ~CNetCfgExtNotify(); void LinkLayerDown(TInt aReason, TAction aAction); void LinkLayerUp(); void NegotiationFailed(CNifIfBase* aIf, TInt aReason); diff -r cc67bf60355a -r b285782036ce linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnotify.cpp --- a/linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnotify.cpp Tue Jul 20 22:06:16 2010 +0530 +++ b/linklayercontrol/networkinterfacemgr/netcfgext/src/netcfgextnotify.cpp Sat Jul 31 02:05:39 2010 +0530 @@ -35,11 +35,18 @@ { } +CNetCfgExtNotify::~CNetCfgExtNotify() + { + iScpr = NULL; + } void CNetCfgExtNotify::IfProgress(TInt aStage, TInt aError) { TStateChange change(aStage, aError); + if(iScpr) + { RClientInterface::OpenPostMessageClose(iScpr->Id(), iScpr->Id(), TCFMessage::TStateChange(change).CRef()); + } } TInt CNetCfgExtNotify::DoReadInt(const TDesC& aField, TUint32& aValue,const RMessagePtr2* /*aMessage*/) diff -r cc67bf60355a -r b285782036ce networkcontrol/ipnetworklayer/inc/IPProtoCPR.h --- a/networkcontrol/ipnetworklayer/inc/IPProtoCPR.h Tue Jul 20 22:06:16 2010 +0530 +++ b/networkcontrol/ipnetworklayer/inc/IPProtoCPR.h Sat Jul 31 02:05:39 2010 +0530 @@ -194,6 +194,7 @@ TBool iLinkUp:1; TBool iConnectionControlActivity:1; TBool iTimerExpired:1; + TBool iTimerStopped:1; TBool iTimerRunning:1; TBool iSubConnEventDataSent:1; // Hack to cope with multiple DataClientStatusChange notifications for 'stopped' TBool iNodeLocalExtensionsCreated; diff -r cc67bf60355a -r b285782036ce networkcontrol/ipnetworklayer/inc/ipprotodeftscpr.h --- a/networkcontrol/ipnetworklayer/inc/ipprotodeftscpr.h Tue Jul 20 22:06:16 2010 +0530 +++ b/networkcontrol/ipnetworklayer/inc/ipprotodeftscpr.h Sat Jul 31 02:05:39 2010 +0530 @@ -103,6 +103,8 @@ CNifConfigurationControl* iControl; Messages::RNodeInterface iFlow; TBool iIoctlCancelled; +public: + TBool iNetworkConfigurationState; }; #endif //SYMBIAN_IPPROTODEFTSCPR_H diff -r cc67bf60355a -r b285782036ce networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp --- a/networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp Tue Jul 20 22:06:16 2010 +0530 +++ b/networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp Sat Jul 31 02:05:39 2010 +0530 @@ -757,6 +757,7 @@ if (!iTimerExpired) { iTimerExpired = ETrue; + iTimerStopped = ETrue; CancelTimer(); if (CountActivities(ECFActivityStop) == 0 && CountActivities(ECFActivityDestroy) == 0) { diff -r cc67bf60355a -r b285782036ce networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp --- a/networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp Tue Jul 20 22:06:16 2010 +0530 +++ b/networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp Sat Jul 31 02:05:39 2010 +0530 @@ -150,7 +150,7 @@ // stop has been caused by timer expiry, remove self from originators list, because we // are not waiting for TStopped and in certain situations it would arrive after the node has been // destroyed - if (iContext.Node().iTimerExpired) + if (iContext.Node().iTimerStopped) { TInt selfidx = iContext.iNodeActivity->FindOriginator(iContext.Node().SelfInterface()); ASSERT(selfidx != KErrNotFound); @@ -378,6 +378,7 @@ iContext.Node().SetUsageProfile(KConnProfileMedium); iContext.Node().SetTimerMode(CIPProtoConnectionProvider::ETimerMedium); + iContext.Node().iTimerStopped = EFalse; CoreNetStates::TSendStarted transition(iContext); transition.DoL(); } diff -r cc67bf60355a -r b285782036ce networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp --- a/networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp Tue Jul 20 22:06:16 2010 +0530 +++ b/networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp Sat Jul 31 02:05:39 2010 +0530 @@ -164,7 +164,8 @@ ALegacySubConnectionActiveApiExt(this), TIfStaticFetcherNearestInHierarchy(this), iNotify(NULL), - iControl(NULL) + iControl(NULL), + iNetworkConfigurationState(EFalse) { LOG_NODE_CREATE(KIPProtoDeftScprTag, CIPProtoDeftSubConnectionProvider); } @@ -195,10 +196,21 @@ CIPProtoDeftSubConnectionProvider::~CIPProtoDeftSubConnectionProvider() { + if(iNetworkConfigurationState == EFalse) + { + if(iNotify) + { + delete iNotify; + iNotify = NULL; + } + } if (iControl) delete iControl; if (iNotify) + { delete iNotify; + iNotify = NULL; + } LOG_NODE_DESTROY(KIPProtoDeftScprTag, CIPProtoDeftSubConnectionProvider); } diff -r cc67bf60355a -r b285782036ce networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp --- a/networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp Tue Jul 20 22:06:16 2010 +0530 +++ b/networkcontrol/ipnetworklayer/src/ipprotodeftscprstates.cpp Sat Jul 31 02:05:39 2010 +0530 @@ -162,6 +162,7 @@ if (msg.iStateChange.iStage == KLinkLayerOpen) { + iContext.Node().iNetworkConfigurationState = ETrue; return KNetworkConfigured; } @@ -171,6 +172,7 @@ DEFINE_SMELEMENT(TNetworkConfiguredOrErrorTagOrCancelTagOrNoTagBackward, NetStateMachine::MStateFork, IPProtoDeftSCpr::TContext) TInt IPProtoDeftSCpr::TNetworkConfiguredOrErrorTagOrCancelTagOrNoTagBackward::TransitionTag() { + iContext.Node().iNetworkConfigurationState = EFalse; TInt tag = IPProtoDeftSCpr::TNetworkConfiguredOrErrorTagOrCancelTagOrNoTag::TransitionTag(); if (tag == KNoTag) return tag | NetStateMachine::EBackward;