diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/SIP/ConnectionMgr/src/CSecureSocketContainer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CSecureSocketContainer.cpp Tue Feb 02 01:03:15 2010 +0200 @@ -0,0 +1,241 @@ +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// Name : CSecureSocketContainer.cpp +// Part of : ConnectionMgr +// Version : SIP/5.0 +// + + + +#include + +#include "CSecureSocketContainer.h" + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::NewLC +// ----------------------------------------------------------------------------- +// +CSecureSocketContainer* CSecureSocketContainer::NewL( RSocket& aSocket ) + { + CSecureSocketContainer* self = NewLC( aSocket ); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::NewLC +// ----------------------------------------------------------------------------- +// +CSecureSocketContainer* CSecureSocketContainer::NewLC( RSocket& aSocket ) + { + CSecureSocketContainer* self = + new ( ELeave ) CSecureSocketContainer( aSocket ); + CleanupStack::PushL( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::~CSecureSocketContainer +// ----------------------------------------------------------------------------- +// +CSecureSocketContainer::~CSecureSocketContainer() + { + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::Send +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::Send( + const TDesC8& aDesc, + TUint aFlags, + TRequestStatus& aStatus ) + { + if ( HasSecureSocket() ) + { + iSecureSocket->Send( aDesc, aStatus ); + } + else + { + CSocketContainer::Send( aDesc, aFlags, aStatus ); + } + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::CancelSend +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::CancelSend() + { + if ( HasSecureSocket() ) + { + iSecureSocket->CancelSend(); + } + else + { + CSocketContainer::CancelSend(); + } + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::RecvOneOrMore +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::RecvOneOrMore( + TDes8& aDes, + TUint aFlags, + TRequestStatus& aStatus, + TSockXfrLength& aLen ) + { + if ( HasSecureSocket() ) + { + iSecureSocket->RecvOneOrMore( aDes, aStatus, aLen ); + } + else + { + CSocketContainer::RecvOneOrMore( aDes, aFlags, aStatus, aLen ); + } + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::CancelRecv +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::CancelRecv() + { + if ( HasSecureSocket() ) + { + iSecureSocket->CancelRecv(); + } + else + { + CSocketContainer::CancelRecv(); + } + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::Connect +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::Connect( + TSockAddr& aAddr, + TRequestStatus& aStatus ) + { + if ( HasSecureSocket() ) + { + // Since secure socket is opened on top of connected tcp, + // connect will initiate handshake. + iSecureSocket->StartClientHandshake( aStatus ); + } + else + { + CSocketContainer::Connect( aAddr, aStatus ); + } + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::CancelConnect +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::CancelConnect() + { + if ( HasSecureSocket() ) + { + // Connect method call initiated handshake if CSecureSocket existed. + iSecureSocket->CancelHandshake(); + } + else + { + CSocketContainer::CancelConnect(); + } + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::RemoteName +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::RemoteName( TSockAddr& aAddr ) + { + CSocketContainer::RemoteName( aAddr ); + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::SetOpt +// ----------------------------------------------------------------------------- +// +TInt CSecureSocketContainer::SetOpt( + TUint aOptionName, + TUint aOptionLevel, + const TDesC8& aOption ) + { + if ( HasSecureSocket() ) + { + return iSecureSocket->SetOpt( aOptionName, aOptionLevel, aOption ); + } + return CSocketContainer::SetOpt( aOptionName, aOptionLevel, aOption ); + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::SetOpt +// ----------------------------------------------------------------------------- +// +TInt CSecureSocketContainer::SetOpt( + TUint aOptionName, + TUint aOptionLevel, + TInt aOption ) + { + if ( HasSecureSocket() ) + { + return iSecureSocket->SetOpt( aOptionName, aOptionLevel, aOption ); + } + return CSocketContainer::SetOpt( aOptionName, aOptionLevel, aOption ); + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::HasSecureSocket +// ----------------------------------------------------------------------------- +// +TBool CSecureSocketContainer::HasSecureSocket() const + { + return ( iSecureSocket != 0 ); + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::SecureSocket +// ----------------------------------------------------------------------------- +// +CSecureSocket* CSecureSocketContainer::SecureSocket() + { + return iSecureSocket; + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::SetSecureSocket +// ----------------------------------------------------------------------------- +// +void CSecureSocketContainer::SetSecureSocket( CSecureSocket* aSecureSocket ) + { + iSecureSocket = aSecureSocket; + } + +// ----------------------------------------------------------------------------- +// CSecureSocketContainer::CSecureSocketContainer +// ----------------------------------------------------------------------------- +// +CSecureSocketContainer::CSecureSocketContainer( RSocket& aSocket ) : + CSocketContainer( aSocket ) + { + } + +// End of file