--- 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;
};
--- 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;
}
--- 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;
}
--- 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<CoreNetStates::KProviderStopped>)
--- 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 <comms-infras/ss_log.h>
#include <elements/sm_core.h>
#include <comms-infras/corecpractivities.h>
+#include <comms-infras/ss_corepractivities.h>
#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;
+ }
--- 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;
}
--- 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)
--- 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;
--- 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();
}
--- 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();
}
--- 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;
}
--- 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;
--- 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;
--- 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*/)
--- 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;