linklayercontrol/networkinterfacemgr/agentprcore/src/tunnelagentcpr.cpp
changeset 51 78fceed50f62
parent 25 d15a50675083
child 60 d69860d28da4
equal deleted inserted replaced
42:88121cf79045 51:78fceed50f62
   109 	return self;
   109 	return self;
   110 	}
   110 	}
   111 
   111 
   112 
   112 
   113 CTunnelAgentConnectionProvider::CTunnelAgentConnectionProvider(CConnectionProviderFactoryBase& aFactory)
   113 CTunnelAgentConnectionProvider::CTunnelAgentConnectionProvider(CConnectionProviderFactoryBase& aFactory)
   114    : CAgentConnectionProvider(aFactory, TunnelAgentCprStates::TunnelAgentCprActivities::Self())
   114    : CAgentConnectionProvider(aFactory, TunnelAgentCprStates::TunnelAgentCprActivities::Self()),
       
   115      TIfStaticFetcherNearestInHierarchy(this)
   115 	{
   116 	{
   116 	LOG_NODE_CREATE(KTunnelAgentCprTag, CTunnelAgentConnectionProvider);
   117 	LOG_NODE_CREATE(KTunnelAgentCprTag, CTunnelAgentConnectionProvider);
   117 	}
   118 	}
   118 
   119 
   119 
   120 
   123 EXPORT_C CTunnelAgentConnectionProvider::~CTunnelAgentConnectionProvider()
   124 EXPORT_C CTunnelAgentConnectionProvider::~CTunnelAgentConnectionProvider()
   124 	{
   125 	{
   125 	LOG_NODE_DESTROY(KTunnelAgentCprTag, CTunnelAgentConnectionProvider);
   126 	LOG_NODE_DESTROY(KTunnelAgentCprTag, CTunnelAgentConnectionProvider);
   126 	}
   127 	}
   127 
   128 
       
   129 //
       
   130 // MPlatSecApiExt
       
   131 //
   128 
   132 
       
   133 void CTunnelAgentConnectionProvider::ReturnInterfacePtrL(MPlatsecApiExt*& aInterface)
       
   134     {
       
   135     aInterface = this;
       
   136     }
   129 
   137 
       
   138 TInt CTunnelAgentConnectionProvider::SecureId(TSecureId& /*aResult*/) const
       
   139 	{
       
   140 	return KErrNotSupported;
       
   141 	}
       
   142 
       
   143 TInt CTunnelAgentConnectionProvider::VendorId(TVendorId& /*aResult*/) const
       
   144 	{
       
   145 	return KErrNotSupported;
       
   146 	}
       
   147 
       
   148 TBool CTunnelAgentConnectionProvider::HasCapability(const TCapability /*aCapability*/) const
       
   149 	{
       
   150 	return KErrNotSupported;
       
   151 	}
       
   152 
       
   153 TInt CTunnelAgentConnectionProvider::CheckPolicy(const TSecurityPolicy& /*aPolicy*/) const
       
   154 	{
       
   155 	// This is the whole reason that we need to implement MPlatSecApiExt in this node at all.  When TunnelAgentCpr issues
       
   156 	// a TStop towards IpCpr, IpCpr requires the sending node (normally ESockSvr but TunnelAgentCpr in this case)
       
   157 	// to implement MPlatSecApiExt through which IpCpr can check platsec capabilities (IpCprStates::TCheckStopCapabilities).
       
   158 	// If TunnelAgentCpr does not impement MPlatSecApiExt, then IpCpr will error the stop request with KErrInterfaceNotSupported.
       
   159 	return KErrNone;
       
   160 	}