# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1279214702 -10800 # Node ID 3652a10b304ad710a41120fdf6bf56d647bb211f # Parent d566d76acea1cb16feae948fc3210c3d80641c19 Revision: 201027 Kit: 2010127 diff -r d566d76acea1 -r 3652a10b304a linklayercontrol/networkinterfacemgr/agentprcore/inc/tunnelagentcpr.h --- a/linklayercontrol/networkinterfacemgr/agentprcore/inc/tunnelagentcpr.h Mon Jun 21 17:25:18 2010 +0300 +++ b/linklayercontrol/networkinterfacemgr/agentprcore/inc/tunnelagentcpr.h Thu Jul 15 20:25:02 2010 +0300 @@ -42,17 +42,30 @@ } -class CTunnelAgentConnectionProvider : public CAgentConnectionProvider +class CTunnelAgentConnectionProvider : public CAgentConnectionProvider, + public ESock::MPlatsecApiExt, + public ITFHIERARCHY_LINK_1(CTunnelAgentConnectionProvider, CAgentConnectionProvider, ESock::MPlatsecApiExt) + { friend class TunnelAgentCprStates::TJoinRealIAP; public: + typedef ITFHIERARCHY_LINK_1(CTunnelAgentConnectionProvider, CAgentConnectionProvider, ESock::MPlatsecApiExt) TIfStaticFetcherNearestInHierarchy; + +public: IMPORT_C static CTunnelAgentConnectionProvider* NewL(ESock::CConnectionProviderFactoryBase& aFactory); IMPORT_C ~CTunnelAgentConnectionProvider(); + using CAgentConnectionProvider::ReturnInterfacePtrL; + void ReturnInterfacePtrL(ESock::MPlatsecApiExt*& aInterface); protected: CTunnelAgentConnectionProvider(ESock::CConnectionProviderFactoryBase& aFactory); CTunnelAgentConnectionProvider(ESock::CConnectionProviderFactoryBase& aFactory, const MeshMachine::TNodeActivityMap& aActivityMap); + // MPlatSecApiExt + TInt SecureId(TSecureId& aResult) const; + TInt VendorId(TVendorId& aResult) const; + TBool HasCapability(const TCapability aCapability) const; + TInt CheckPolicy(const TSecurityPolicy& aPolicy) const; }; diff -r d566d76acea1 -r 3652a10b304a linklayercontrol/networkinterfacemgr/agentprcore/src/agentcpr.cpp --- a/linklayercontrol/networkinterfacemgr/agentprcore/src/agentcpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/linklayercontrol/networkinterfacemgr/agentprcore/src/agentcpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -53,12 +53,6 @@ using namespace ESock; using namespace NetStateMachine; -//We reserve space for two preallocated activities that may start concurrently on the CPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KAgentCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - // Agent SCPR Going Down Activity namespace AgentDataClientGoneDownActivity { @@ -116,7 +110,7 @@ { CAgentConnectionProvider* self = new (ELeave) CAgentConnectionProvider(aFactory); CleanupStack::PushL(self); - self->ConstructL(KAgentCPRPreallocatedActivityBufferSize); + self->ConstructL(); CleanupStack::Pop(self); return self; } diff -r d566d76acea1 -r 3652a10b304a linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpr.cpp --- a/linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -56,12 +56,6 @@ using namespace ESock; using namespace NetStateMachine; -//We reserve space for two preallocated activities that may start concurrently on the SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KAgentSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - /** Creates an Agent SubConnection Provider @param aFactory The parent factory which has created the SCPr @@ -71,7 +65,7 @@ { CAgentSubConnectionProvider* self = new (ELeave) CAgentSubConnectionProvider(aFactory, AgentSCprActivities::agentSCprActivities::Self()); CleanupStack::PushL(self); - self->ConstructL(KAgentSCPRPreallocatedActivityBufferSize); + self->ConstructL(); CleanupStack::Pop(self); return self; } diff -r d566d76acea1 -r 3652a10b304a linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpractivities.cpp --- a/linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpractivities.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpractivities.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -74,7 +74,7 @@ namespace AgentSCprStopActivity { // Note: use of TStopYourFlows/TAwaitingFlowDown/TNoTag (i.e. no looping) as there is only one flow at the Agent level. -DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStopDataClient, AgentSCprStop, TCFDataClient::TStop, MeshMachine::CNodeRetryActivity::NewL) +DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStopDataClient, AgentSCprStop, TCFDataClient::TStop, MeshMachine::CPreallocatedNodeRetryActivity::New) FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingDataClientStop, PRDataClientStopActivity::TNoTagOrProviderStoppedBlockedByStart) NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag) diff -r d566d76acea1 -r 3652a10b304a linklayercontrol/networkinterfacemgr/agentprcore/src/tunnelagentcpr.cpp --- a/linklayercontrol/networkinterfacemgr/agentprcore/src/tunnelagentcpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/linklayercontrol/networkinterfacemgr/agentprcore/src/tunnelagentcpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -22,6 +22,7 @@ #include #include #include +#include #include "tunnelagentcpr.h" #include "tunnelagentcprstates.h" @@ -46,12 +47,6 @@ using namespace AgentCprStates; using namespace TunnelAgentCprStates; -//We reserve space for two preallocated activities that may start concurrently on the CPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KTunnelCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - namespace TunnelAgentCprStartActivity { DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStart, TunnelCprStart, TCFServiceProvider::TStart, PRActivities::CStartActivity::NewL) @@ -103,14 +98,15 @@ { CTunnelAgentConnectionProvider* self = new (ELeave) CTunnelAgentConnectionProvider(aFactory); CleanupStack::PushL(self); - self->ConstructL(KTunnelCPRPreallocatedActivityBufferSize); + self->ConstructL(); CleanupStack::Pop(self); return self; } CTunnelAgentConnectionProvider::CTunnelAgentConnectionProvider(CConnectionProviderFactoryBase& aFactory) - : CAgentConnectionProvider(aFactory, TunnelAgentCprStates::TunnelAgentCprActivities::Self()) + : CAgentConnectionProvider(aFactory, TunnelAgentCprStates::TunnelAgentCprActivities::Self()), + TIfStaticFetcherNearestInHierarchy(this) { LOG_NODE_CREATE(KTunnelAgentCprTag, CTunnelAgentConnectionProvider); } @@ -124,5 +120,35 @@ LOG_NODE_DESTROY(KTunnelAgentCprTag, CTunnelAgentConnectionProvider); } +// +// MPlatSecApiExt +// +void CTunnelAgentConnectionProvider::ReturnInterfacePtrL(MPlatsecApiExt*& aInterface) + { + aInterface = this; + } +TInt CTunnelAgentConnectionProvider::SecureId(TSecureId& /*aResult*/) const + { + return KErrNotSupported; + } + +TInt CTunnelAgentConnectionProvider::VendorId(TVendorId& /*aResult*/) const + { + return KErrNotSupported; + } + +TBool CTunnelAgentConnectionProvider::HasCapability(const TCapability /*aCapability*/) const + { + return KErrNotSupported; + } + +TInt CTunnelAgentConnectionProvider::CheckPolicy(const TSecurityPolicy& /*aPolicy*/) const + { + // This is the whole reason that we need to implement MPlatSecApiExt in this node at all. When TunnelAgentCpr issues + // a TStop towards IpCpr, IpCpr requires the sending node (normally ESockSvr but TunnelAgentCpr in this case) + // to implement MPlatSecApiExt through which IpCpr can check platsec capabilities (IpCprStates::TCheckStopCapabilities). + // If TunnelAgentCpr does not impement MPlatSecApiExt, then IpCpr will error the stop request with KErrInterfaceNotSupported. + return KErrNone; + } diff -r d566d76acea1 -r 3652a10b304a linklayerprotocols/pppnif/SPPP/pppscpr.cpp --- a/linklayerprotocols/pppnif/SPPP/pppscpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/linklayerprotocols/pppnif/SPPP/pppscpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -38,12 +38,6 @@ _LIT8(KPppSCprSubTag, "pppscpr"); #endif -//We reserve space for two preallocated activities that may start concurrently on the SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KPPPSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - namespace PppSCprStates { @@ -101,7 +95,7 @@ { CPppSubConnectionProvider* self = new (ELeave) CPppSubConnectionProvider(aFactory, PppSCprActivities::pppSCprActivities::Self()); CleanupStack::PushL(self); - self->ConstructL(KPPPSCPRPreallocatedActivityBufferSize); + self->ConstructL(); CleanupStack::Pop(); return self; } diff -r d566d76acea1 -r 3652a10b304a networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp --- a/networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -57,14 +57,6 @@ using namespace NetStateMachine; using namespace PRActivities; - - -//We reserve space for two preallocated activities that may start concurrently on the CPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPProtoCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - //-========================================================= // // Activities @@ -297,7 +289,7 @@ iTimer = COneShotTimer::NewL(ESocketTimerPriority, this); ADataMonitoringProvider::ConstructL(); - CCoreConnectionProvider::ConstructL(KIPProtoCPRPreallocatedActivityBufferSize); + CCoreConnectionProvider::ConstructL(); } void CIPProtoConnectionProvider::ReturnInterfacePtrL(ADataMonitoringProtocolReq*& aInterface) diff -r d566d76acea1 -r 3652a10b304a networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp --- a/networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -154,7 +154,11 @@ { TInt selfidx = iContext.iNodeActivity->FindOriginator(iContext.Node().SelfInterface()); ASSERT(selfidx != KErrNotFound); - iContext.iNodeActivity->RemoveOriginator(selfidx); + + if(selfidx != KErrNotFound) + { + iContext.iNodeActivity->RemoveOriginator(selfidx); + } } TInt stopCode = KErrCancel; diff -r d566d76acea1 -r 3652a10b304a networkcontrol/ipnetworklayer/src/IPProtoSCPR.cpp --- a/networkcontrol/ipnetworklayer/src/IPProtoSCPR.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/ipnetworklayer/src/IPProtoSCPR.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -33,12 +33,6 @@ using namespace IPProtoSCpr; using namespace MeshMachine; -//We reserve space for two preallocated activities that may start concurrently on the SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPProtoSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - //-========================================================= // // Activities @@ -142,7 +136,7 @@ void CIPProtoSubConnectionProvider::ConstructL() { ADataMonitoringProvider::ConstructL(); - CCoreSubConnectionProvider::ConstructL(KIPProtoSCPRPreallocatedActivityBufferSize); + CCoreSubConnectionProvider::ConstructL(); } diff -r d566d76acea1 -r 3652a10b304a networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp --- a/networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -35,12 +35,6 @@ using namespace IPProtoDeftSCpr; using namespace MeshMachine; -//We reserve space for two preallocated activities that may start concurrently on the default SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPProtoDeftSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - //-========================================================= // // Activities @@ -58,7 +52,7 @@ namespace IPProtoDeftSCprDataClientStopActivity { -DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStopDataClient, IPProtoDeftSCprStop, TCFDataClient::TStop, MeshMachine::CNodeRetryActivity::NewL) +DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStopDataClient, IPProtoDeftSCprStop, TCFDataClient::TStop, MeshMachine::CPreallocatedNodeRetryActivity::New) FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingDataClientStop, TNoTagOrProviderStoppedOrDaemonReleased) NODEACTIVITY_ENTRY(KNoTag, TStopNetCfgExt, TAwaitingStateChange, TDaemonReleasedStateChangedOrNoTag) NODEACTIVITY_ENTRY(KNoTag, TForwardToControlProviderAndResetSentTo, TAwaitingStateChange, TDaemonReleasedStateChangedOrNoTagBackward) @@ -173,7 +167,7 @@ void CIPProtoDeftSubConnectionProvider::ConstructL() { ADataMonitoringProvider::ConstructL(); - CCoreSubConnectionProvider::ConstructL(KIPProtoDeftSCPRPreallocatedActivityBufferSize); + CCoreSubConnectionProvider::ConstructL(); } diff -r d566d76acea1 -r 3652a10b304a networkcontrol/iptransportlayer/src/IPCpr.cpp --- a/networkcontrol/iptransportlayer/src/IPCpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/iptransportlayer/src/IPCpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -41,12 +41,6 @@ using namespace NetStateMachine; using namespace MeshMachine; -//We reserve space for two preallocated activities that may start concurrently on the CPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - //-========================================================= // // CIPConnectionProvider methods @@ -56,7 +50,7 @@ { CIPConnectionProvider* provider = new (ELeave) CIPConnectionProvider(aFactory); CleanupStack::PushL(provider); - provider->ConstructL(KIPCPRPreallocatedActivityBufferSize); + provider->ConstructL(); CleanupStack::Pop(provider); return provider; } diff -r d566d76acea1 -r 3652a10b304a networkcontrol/iptransportlayer/src/ipdeftbasescpr.cpp --- a/networkcontrol/iptransportlayer/src/ipdeftbasescpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/iptransportlayer/src/ipdeftbasescpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -50,12 +50,6 @@ using namespace PRActivities; using namespace CoreNetStates; -//We reserve space for two preallocated activities that may start concurrently on the default base SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPDeftBaseSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - //-========================================================= // // States @@ -359,7 +353,7 @@ { CIpDefaultBaseSubConnectionProvider* provider = new (ELeave) CIpDefaultBaseSubConnectionProvider(aFactory, IPDeftBaseSCprActivities::ipdeftbasescprActivityMap::Self()); CleanupStack::PushL(provider); - provider->ConstructL(KIPDeftBaseSCPRPreallocatedActivityBufferSize); + provider->ConstructL(); CleanupStack::Pop(provider); return provider; diff -r d566d76acea1 -r 3652a10b304a networkcontrol/iptransportlayer/src/ipdeftscpr.cpp --- a/networkcontrol/iptransportlayer/src/ipdeftscpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/iptransportlayer/src/ipdeftscpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -42,12 +42,6 @@ using namespace PRActivities; using namespace CoreNetStates; -//We reserve space for two preallocated activities that may start concurrently on the default SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPDefaultSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - //-========================================================= // // States @@ -185,7 +179,7 @@ { CIpDefaultSubConnectionProvider* provider = new (ELeave) CIpDefaultSubConnectionProvider(aFactory); CleanupStack::PushL(provider); - provider->ConstructL(KIPDefaultSCPRPreallocatedActivityBufferSize); + provider->ConstructL(); CleanupStack::Pop(provider); return provider; diff -r d566d76acea1 -r 3652a10b304a networkcontrol/iptransportlayer/src/ipscpr.cpp --- a/networkcontrol/iptransportlayer/src/ipscpr.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networkcontrol/iptransportlayer/src/ipscpr.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -41,12 +41,6 @@ using namespace ESock; using namespace NetStateMachine; -//We reserve space for two preallocated activities that may start concurrently on the SCPR -//node: destroy and data client stop. -static const TUint KDefaultMaxPreallocatedActivityCount = 2; -static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); -static const TUint KIPSCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; - namespace IPSCprAddressUpdate { DECLARE_DEFINE_NODEACTIVITY(IPDeftSCprBaseActivities::ECFActivityAddressUpdate, IPSCprAddressUpdate, TCFIPMessage::TDataClientRouted) @@ -168,7 +162,7 @@ IP SubConnection Provider Second Phase Constructor */ { - CIpSubConnectionProviderBase::ConstructL(KIPSCPRPreallocatedActivityBufferSize); + CIpSubConnectionProviderBase::ConstructL(); } RNodeInterface* CIpSubConnectionProvider::NewClientInterfaceL(const TClientType& aClientType, TAny* /*aClientInfo*/) diff -r d566d76acea1 -r 3652a10b304a networksecurity/tlsprovider/source/tlsprovider/Ctlsclntauthenticate.cpp --- a/networksecurity/tlsprovider/source/tlsprovider/Ctlsclntauthenticate.cpp Mon Jun 21 17:25:18 2010 +0300 +++ b/networksecurity/tlsprovider/source/tlsprovider/Ctlsclntauthenticate.cpp Thu Jul 15 20:25:02 2010 +0300 @@ -88,7 +88,7 @@ void CTlsClntAuthenticate::GetAvailableKeyListL() { TLSPROV_LOG(_L("CTlsClntAuthenticate::GetAvailableKeyListL()...")) - iFs.Connect(); + User::LeaveIfError(iFs.Connect()); iPtrUnifiedKeyStore = CUnifiedKeyStore::NewL(iFs); iStatus = KRequestPending;