Revision: 201027 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 15 Jul 2010 20:25:02 +0300
branchRCL_3
changeset 19 3652a10b304a
parent 17 d566d76acea1
child 20 7e41d162e158
Revision: 201027 Kit: 2010127
linklayercontrol/networkinterfacemgr/agentprcore/inc/tunnelagentcpr.h
linklayercontrol/networkinterfacemgr/agentprcore/src/agentcpr.cpp
linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpr.cpp
linklayercontrol/networkinterfacemgr/agentprcore/src/agentscpractivities.cpp
linklayercontrol/networkinterfacemgr/agentprcore/src/tunnelagentcpr.cpp
linklayerprotocols/pppnif/SPPP/pppscpr.cpp
networkcontrol/ipnetworklayer/src/IPProtoCPR.cpp
networkcontrol/ipnetworklayer/src/IPProtoCprStates.cpp
networkcontrol/ipnetworklayer/src/IPProtoSCPR.cpp
networkcontrol/ipnetworklayer/src/ipprotodeftscpr.cpp
networkcontrol/iptransportlayer/src/IPCpr.cpp
networkcontrol/iptransportlayer/src/ipdeftbasescpr.cpp
networkcontrol/iptransportlayer/src/ipdeftscpr.cpp
networkcontrol/iptransportlayer/src/ipscpr.cpp
networksecurity/tlsprovider/source/tlsprovider/Ctlsclntauthenticate.cpp
--- 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;