diff -r 17af172ffa5f -r 630d2f34d719 smsprotocols/smsstack/wapprot/Src/ws_prvdr.cpp --- a/smsprotocols/smsstack/wapprot/Src/ws_prvdr.cpp Thu Aug 19 11:03:36 2010 +0300 +++ b/smsprotocols/smsstack/wapprot/Src/ws_prvdr.cpp Tue Aug 31 16:23:08 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 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" @@ -19,6 +19,12 @@ @file */ + +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "ws_prvdrTraces.h" +#endif + #include #include #include "ws_main.h" @@ -27,33 +33,34 @@ #include "ws_obsvr.h" #include "smsprot.h" #include +#include "smsstacklog.h" // // implementation of CWapSmsProvider // - // CWapSmsProvider policies - static _LIT_SECURITY_POLICY_C1(wapSmsProviderSetLocalNamePolicy, ECapabilityNetworkServices ); - static _LIT_SECURITY_POLICY_C1(wapSmsProviderSetOptionPolicy, ECapability_None); - static _LIT_SECURITY_POLICY_C1(wapSmsProviderGetLengthIoctlPolicy,ECapability_None); - static _LIT_SECURITY_POLICY_C1(wapSmsProviderGetMessageParamLengthIoctlPolicy,ECapability_None); - static _LIT_SECURITY_POLICY_C1(wapSmsProviderGetMessageParametersIoctlPolicy,ECapabilityReadDeviceData); - static _LIT_SECURITY_POLICY_C1(wapSmsProviderWritePolicy,ECapabilityNetworkServices); + // CWapSmsProvider policies + static _LIT_SECURITY_POLICY_C1(wapSmsProviderSetLocalNamePolicy, ECapabilityNetworkServices ); + static _LIT_SECURITY_POLICY_C1(wapSmsProviderSetOptionPolicy, ECapability_None); + static _LIT_SECURITY_POLICY_C1(wapSmsProviderGetLengthIoctlPolicy,ECapability_None); + static _LIT_SECURITY_POLICY_C1(wapSmsProviderGetMessageParamLengthIoctlPolicy,ECapability_None); + static _LIT_SECURITY_POLICY_C1(wapSmsProviderGetMessageParametersIoctlPolicy,ECapabilityReadDeviceData); + static _LIT_SECURITY_POLICY_C1(wapSmsProviderWritePolicy,ECapabilityNetworkServices); /** * Factory */ CWapSmsProvider* CWapSmsProvider::NewL(CWapSmsProtocol* aProtocol) - { - LOGWAPPROT1("CWapSmsProvider::NewL()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_NEWL_1, "CWapSmsProvider::NewL()"); - CWapSmsProvider* provider=new(ELeave) CWapSmsProvider(aProtocol); - CleanupStack::PushL(provider); - provider->iWapSmsProviderWrite = CWapSmsProviderWrite::NewL(*provider); - CleanupStack::Pop(); - return provider; - } // CWapSmsProvider::NewL + CWapSmsProvider* provider=new(ELeave) CWapSmsProvider(aProtocol); + CleanupStack::PushL(provider); + provider->iWapSmsProviderWrite = CWapSmsProviderWrite::NewL(*provider); + CleanupStack::Pop(); + return provider; + } // CWapSmsProvider::NewL /** @@ -63,9 +70,9 @@ :iMessageType(ESmartMessage) ,iProtocol(aProtocol) ,iSendPending(EFalse) - ,iIoctlOutstanding(EFalse) - ,iIsNewStyleClient(EFalse) - ,iStatusReportScheme(EWapSmsDefault) + ,iIoctlOutstanding(EFalse) + ,iIsNewStyleClient(EFalse) + ,iStatusReportScheme(EWapSmsDefault) { iRecvdMsgQueue.SetOffset(CWapDatagram::LinkOffset()); } // CWapSmsProvider::CWapSmsProvider @@ -93,16 +100,16 @@ * Return WAPSMS options */ TInt CWapSmsProvider::GetOption(TUint aLevel,TUint aName, TDes8& aOption)const - { - LOGWAPPROT1("CWapSmsProvider::GetOption"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_GETOPTION_1, "CWapSmsProvider::GetOption"); - TInt ret=KErrNone; - if (TInt(aLevel)==KWapSmsOptionLevel && TInt(aName)==KWapSmsOptionNameDCS) - aOption = TPtrC8((TText8*)&iDataCodingScheme,sizeof(TWapSmsDataCodingScheme)); - else - ret=iProtocol->GetOption(aLevel,aName,aOption,NULL); - return ret; - } // CWapSmsProvider::GetOption + TInt ret=KErrNone; + if (TInt(aLevel)==KWapSmsOptionLevel && TInt(aName)==KWapSmsOptionNameDCS) + aOption = TPtrC8((TText8*)&iDataCodingScheme,sizeof(TWapSmsDataCodingScheme)); + else + ret=iProtocol->GetOption(aLevel,aName,aOption,NULL); + return ret; + } // CWapSmsProvider::GetOption /** @@ -112,76 +119,76 @@ * */ TInt CWapSmsProvider::SetOption(TUint aLevel, TUint aName, const TDesC8& aOption) - { - LOGWAPPROT1("CWapSmsProvider::SetOption"); - if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderSetOptionPolicy,"CWapSmsProvider SetOption policy check") != KErrNone)) - { - return KErrPermissionDenied; - } + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_SETOPTION_1, "CWapSmsProvider::SetOption"); + if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderSetOptionPolicy,"CWapSmsProvider SetOption policy check") != KErrNone)) + { + return KErrPermissionDenied; + } - TInt ret=KErrNone; - if (TInt(aLevel)==KWapSmsOptionLevel) - { - switch(TInt(aName)) - { - case KWapSmsOptionNameDCS: - { - iDataCodingScheme = static_cast(*aOption.Ptr()); - break; - } - case KWapSmsOptionWapDatagram: - { - iMessageType=EWapDatagram; - break; - } - case KWapSmsStatusReportScheme: - { - iStatusReportScheme = static_cast(*aOption.Ptr()); - break; - } - case KWapSmsOptionNewStyleClient: - { - iIsNewStyleClient = ETrue; - break; - } - case KWapSmsOptionOKToDeleteMessage: - { - //Get the first message from the queue - CWapDatagram* msg = iRecvdMsgQueue.First(); - //Find and delete from SAR - TBool found=iProtocol->FindAndDeleteMsg(*msg); - if(!found) - { - LOGWAPPROT1("CWapSmsProvider::SetOption: Error. Couldn't find the message in the SAR for deletion"); - break; - } - //Remove from the queue - iRecvdMsgQueue.Remove(*msg); - delete msg; - break; - } - default: - ret=KErrNotSupported; - } + TInt ret=KErrNone; + if (TInt(aLevel)==KWapSmsOptionLevel) + { + switch(TInt(aName)) + { + case KWapSmsOptionNameDCS: + { + iDataCodingScheme = static_cast(*aOption.Ptr()); + break; + } + case KWapSmsOptionWapDatagram: + { + iMessageType=EWapDatagram; + break; + } + case KWapSmsStatusReportScheme: + { + iStatusReportScheme = static_cast(*aOption.Ptr()); + break; + } + case KWapSmsOptionNewStyleClient: + { + iIsNewStyleClient = ETrue; + break; + } + case KWapSmsOptionOKToDeleteMessage: + { + //Get the first message from the queue + CWapDatagram* msg = iRecvdMsgQueue.First(); + //Find and delete from SAR + TBool found=iProtocol->FindAndDeleteMsg(*msg); + if(!found) + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_SETOPTION_2, "CWapSmsProvider::SetOption: Error. Couldn't find the message in the SAR for deletion"); + break; + } + //Remove from the queue + iRecvdMsgQueue.Remove(*msg); + delete msg; + break; + } + default: + ret=KErrNotSupported; + } - } - else - { - ret=iProtocol->SetOption(aLevel,aName,aOption,NULL); - } - return ret; - } // CWapSmsProvider::SetOption + } + else + { + ret=iProtocol->SetOption(aLevel,aName,aOption,NULL); + } + return ret; + } // CWapSmsProvider::SetOption /** * Shutdown the SAP */ void CWapSmsProvider::Shutdown(TCloseType aType) - { - LOGWAPPROT1("CWapSmsProvider::Shutdown"); - if (aType!=CServProviderBase::EImmediate) - iSocket->CanClose(); - } // CWapSmsProvider::Shutdown + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_SHUTDOWN_1, "CWapSmsProvider::Shutdown"); + if (aType!=CServProviderBase::EImmediate) + iSocket->CanClose(); + } // CWapSmsProvider::Shutdown /** @@ -191,160 +198,160 @@ * @capability NetworkServices */ TInt CWapSmsProvider::Write(RMBufChain& aBufChain, TUint /*options*/, TSockAddr* aAddr) - { - LOGWAPPROT1("CWapSmsProvider::Write()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_WRITE_1, "CWapSmsProvider::Write()"); - if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderWritePolicy,"CWapSmsProvider Write policy check") != KErrNone)) - { - return KErrPermissionDenied; - } - // @note: LOGIFH2A2 macro for logging esock write + if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderWritePolicy,"CWapSmsProvider Write policy check") != KErrNone)) + { + return KErrPermissionDenied; + } + // @note: LOGIFH2A2 macro for logging esock write #ifdef SMSLOGGERIF - TInt length = aBufChain.Length(); - LOGWAPPROT2("CWapSmsProvider::Write [%d bytes]", length); - TBuf8<0x100> dumpBuf; - if(length > 0x100) - { + TInt length = aBufChain.Length(); + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_WRITE_2, "CWapSmsProvider::Write [%d bytes]", length); + TBuf8<0x100> dumpBuf; + if(length > 0x100) + { - TInt parts=0; - TInt offset = 0; - while (offset < length) - { - aBufChain.CopyOut(dumpBuf, offset); - offset += length; - LOGIF2(_L8("ESock WAP concantonated part: %d"),parts++); - LOGIF2(_L8("ESOCK WRITE: %S"),&dumpBuf); - LOGIFH2A2(_L8("ESOCK WRITE: "),dumpBuf); - } + TInt parts=0; + TInt offset = 0; + while (offset < length) + { + aBufChain.CopyOut(dumpBuf, offset); + offset += length; + LOGIF2(_L8("ESock WAP concantonated part: %d"),parts++); + LOGIF2(_L8("ESOCK WRITE: %S"),&dumpBuf); + LOGIFH2A2(_L8("ESOCK WRITE: "),dumpBuf); + } - } - else - { - aBufChain.CopyOut(dumpBuf, 0); - LOGIF2(_L8("ESOCK WRITE: %S"),&dumpBuf); - LOGIFH2A2(_L8("ESOCK WRITE: "),dumpBuf); - } + } + else + { + aBufChain.CopyOut(dumpBuf, 0); + LOGIF2(_L8("ESOCK WRITE: %S"),&dumpBuf); + LOGIFH2A2(_L8("ESOCK WRITE: "),dumpBuf); + } #endif - // Note that if this fails somehow it still frees the buf chain and sets itself active - it's - // not clear to me whether this is good behaviour but it's the pre-mbuf behaviour too - iWapSmsProviderWrite->Start(aBufChain, *aAddr); - return KErrNone; - } // CWapSmsProvider::Write + // Note that if this fails somehow it still frees the buf chain and sets itself active - it's + // not clear to me whether this is good behaviour but it's the pre-mbuf behaviour too + iWapSmsProviderWrite->Start(aBufChain, *aAddr); + return KErrNone; + } // CWapSmsProvider::Write /** * Read a datagram off the queue */ TInt CWapSmsProvider::GetData(RMBufChain& aBufChain, TUint aLength, TUint /*options*/,TSockAddr* aAddr) - { - LOGWAPPROT1("CWapSmsProvider::GetData()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_GETDATA_1, "CWapSmsProvider::GetData()"); - CWapDatagram* msg = iRecvdMsgQueue.First(); - if(!iIsNewStyleClient) - { - iRecvdMsgQueue.Remove(*msg); - } - TInt err = msg->WapDatagram(aBufChain, aLength); + CWapDatagram* msg = iRecvdMsgQueue.First(); + if(!iIsNewStyleClient) + { + iRecvdMsgQueue.Remove(*msg); + } + TInt err = msg->WapDatagram(aBufChain, aLength); - //@note: LOGIFH2A2 macro for logging esock getdata - LOGWAPPROT1("CWapSmsProvider::GetData"); - // Logging migrated to WapDatagram() for ease of descriptor ref + //@note: LOGIFH2A2 macro for logging esock getdata + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_GETDATA_2, "CWapSmsProvider::GetData"); + // Logging migrated to WapDatagram() for ease of descriptor ref - if (err > 0 && aAddr) - { - TWapAddr* wapAddr = reinterpret_cast(aAddr); - TInt toPort,fromPort; - msg->Ports(fromPort,toPort); - wapAddr->SetWapPort(static_cast(fromPort)); - TBuf8 addrBuf; - addrBuf.Copy(msg->FromAddress()); - wapAddr->SetWapAddress(addrBuf); - } - if(!iIsNewStyleClient) - { - delete msg; - } - return err > 0? 1: err; // datagrams are atoms not byte counts - } // CWapSmsProvider::GetData + if (err > 0 && aAddr) + { + TWapAddr* wapAddr = reinterpret_cast(aAddr); + TInt toPort,fromPort; + msg->Ports(fromPort,toPort); + wapAddr->SetWapPort(static_cast(fromPort)); + TBuf8 addrBuf; + addrBuf.Copy(msg->FromAddress()); + wapAddr->SetWapAddress(addrBuf); + } + if(!iIsNewStyleClient) + { + delete msg; + } + return err > 0? 1: err; // datagrams are atoms not byte counts + } // CWapSmsProvider::GetData /** * New data has arrived notify ESOCK. */ void CWapSmsProvider::NewData(CWapDatagram* aMsg) - { - TBool notifyEsock = EFalse; - LOGWAPPROT1("CWapSmsProvider::NewData"); + { + TBool notifyEsock = EFalse; + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_NEWDATA_1, "CWapSmsProvider::NewData"); - if(iIoctlOutstanding && iName==KSOGetLength && iIsNewStyleClient) - { - TPckgBuf buf= aMsg->WapDatagramLength(); - iSocket->IoctlComplete(&buf); - iIoctlOutstanding= EFalse; - iName= NULL; - notifyEsock = ETrue; - } - else if(iIoctlOutstanding && iName==KSOGetMessageParametersLength && iIsNewStyleClient) - { - CBufFlat* buffer = aMsg->SmsExternalisedStream(); - TPckgBuf buf = buffer->Size(); - iSocket->IoctlComplete(&buf); - iIoctlOutstanding= EFalse; - iName= NULL; - notifyEsock = ETrue; - } - else if(iIoctlOutstanding && iName==KSOGetMessageParameters && iIsNewStyleClient) - { - CBufFlat* buffer = aMsg->SmsExternalisedStream(); - TPtr8 buf = buffer->Ptr(0); - iSocket->IoctlComplete(&buf); - iIoctlOutstanding= EFalse; - iName= NULL; - notifyEsock = ETrue; - } - else if(iName!=KSOGetLength && iName!=KSOGetMessageParametersLength && iName!=KSOGetMessageParameters && iIsNewStyleClient) - { - notifyEsock= EFalse; - } + if(iIoctlOutstanding && iName==KSOGetLength && iIsNewStyleClient) + { + TPckgBuf buf= aMsg->WapDatagramLength(); + iSocket->IoctlComplete(&buf); + iIoctlOutstanding= EFalse; + iName= NULL; + notifyEsock = ETrue; + } + else if(iIoctlOutstanding && iName==KSOGetMessageParametersLength && iIsNewStyleClient) + { + CBufFlat* buffer = aMsg->SmsExternalisedStream(); + TPckgBuf buf = buffer->Size(); + iSocket->IoctlComplete(&buf); + iIoctlOutstanding= EFalse; + iName= NULL; + notifyEsock = ETrue; + } + else if(iIoctlOutstanding && iName==KSOGetMessageParameters && iIsNewStyleClient) + { + CBufFlat* buffer = aMsg->SmsExternalisedStream(); + TPtr8 buf = buffer->Ptr(0); + iSocket->IoctlComplete(&buf); + iIoctlOutstanding= EFalse; + iName= NULL; + notifyEsock = ETrue; + } + else if(iName!=KSOGetLength && iName!=KSOGetMessageParametersLength && iName!=KSOGetMessageParameters && iIsNewStyleClient) + { + notifyEsock= EFalse; + } - if(!iIsNewStyleClient || notifyEsock) - iSocket->NewData(1); - //else we notify ESock in IOCTL for new client - } // CWapSmsProvider::NewData + if(!iIsNewStyleClient || notifyEsock) + iSocket->NewData(1); + //else we notify ESock in IOCTL for new client + } // CWapSmsProvider::NewData /** * Error happened, notify ESOCK */ void CWapSmsProvider::Error(TInt aError, TUint aOperationMask) - { - LOGWAPPROT3("CWapSmsProvider::Error [aError=%d, mask=%d] ", aError, aOperationMask); + { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_ERROR_1, "CWapSmsProvider::Error [aError=%d, mask=%u] ", aError, aOperationMask); - iSocket->Error(aError, aOperationMask); - } // CWapSmsProvider::Error + iSocket->Error(aError, aOperationMask); + } // CWapSmsProvider::Error /** * Return the offset to the dblquelink */ TInt CWapSmsProvider::LinkOffset() - { - LOGWAPPROT1("CWapSmsProvider::LinkOffset"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_LINKOFFSET_1, "CWapSmsProvider::LinkOffset"); - return _FOFF(CWapSmsProvider,iSAPLink); - } // CWapSmsProvider::LinkOffset + return _FOFF(CWapSmsProvider,iSAPLink); + } // CWapSmsProvider::LinkOffset /** * Return the address associated with the sap */ void CWapSmsProvider::LocalName(TSockAddr& aAddr) const - { - LOGWAPPROT1("CWapSmsProvider::LocalName"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_LOCALNAME_1, "CWapSmsProvider::LocalName"); - Mem::Copy(&aAddr,&iLocalAddress,sizeof(TSockAddr)); - } // CWapSmsProvider::LocalName + Mem::Copy(&aAddr,&iLocalAddress,sizeof(TSockAddr)); + } // CWapSmsProvider::LocalName /** @@ -353,61 +360,61 @@ * @capability NetworkServices */ TInt CWapSmsProvider::SetLocalName(TSockAddr& aAddr) - { - LOGWAPPROT1("CWapSmsProvider::SetLocalName()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_SETLOCALNAME_1, "CWapSmsProvider::SetLocalName()"); - if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderSetLocalNamePolicy,"CWapSmsProvider SetLocalName policy check") != KErrNone)) - { - return KErrPermissionDenied; - } - TWapAddr* wapAddr = reinterpret_cast(&aAddr); - LOGWAPPROT2("CWapSmsProvider::SetLocalName %d",wapAddr->WapPort()); - // Due ESOCK interface port EWapPortUnspecified value (-1) can be transferred as a maximum unsigned 16 int - if (wapAddr->WapPort()==EWapPortUnspecified || wapAddr->WapPort()==static_cast(EWapPortUnspecified)) - { - if(!iProtocol->AllocateLocalAddress(iLocalAddress)) - return KErrInUse; - else return KErrNone; - } + if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderSetLocalNamePolicy,"CWapSmsProvider SetLocalName policy check") != KErrNone)) + { + return KErrPermissionDenied; + } + TWapAddr* wapAddr = reinterpret_cast(&aAddr); + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_SETLOCALNAME_2, "CWapSmsProvider::SetLocalName %d",wapAddr->WapPort()); + // Due ESOCK interface port EWapPortUnspecified value (-1) can be transferred as a maximum unsigned 16 int + if (wapAddr->WapPort()==EWapPortUnspecified || wapAddr->WapPort()==static_cast(EWapPortUnspecified)) + { + if(!iProtocol->AllocateLocalAddress(iLocalAddress)) + return KErrInUse; + else return KErrNone; + } - TInt ret=iProtocol->AddrAlreadyUsedByWAP(*wapAddr,this); - if(ret == KErrInUse) return ret; - else if(ret == KErrAlreadyExists) return KErrNone; + TInt ret=iProtocol->AddrAlreadyUsedByWAP(*wapAddr,this); + if(ret == KErrInUse) return ret; + else if(ret == KErrAlreadyExists) return KErrNone; - TSmsAddr addr; - if(wapAddr->Port() <=255) - addr.SetSmsAddrFamily(ESmsAddrApplication8BitPort); - else - addr.SetSmsAddrFamily(ESmsAddrApplication16BitPort); + TSmsAddr addr; + if(wapAddr->Port() <=255) + addr.SetSmsAddrFamily(ESmsAddrApplication8BitPort); + else + addr.SetSmsAddrFamily(ESmsAddrApplication16BitPort); - addr.SetPort(wapAddr->Port()); + addr.SetPort(wapAddr->Port()); - if((iProtocol->SmsProtocol()->SmsAddrIsAlreadyUsed(NULL,addr))) - return KErrInUse; + if((iProtocol->SmsProtocol()->SmsAddrIsAlreadyUsed(NULL,addr))) + return KErrInUse; - Mem::Copy(&iLocalAddress,&aAddr,sizeof(TSockAddr)); - TInt err; - TRAP(err,ret = iProtocol->CheckSarL(*wapAddr,this)); - if(err!=KErrNone) - return err; - if(ret!=KErrNone) - { - Error(ret,MSocketNotify::EErrorAllOperations); - } - return KErrNone; - } // RSocket::Bind + Mem::Copy(&iLocalAddress,&aAddr,sizeof(TSockAddr)); + TInt err; + TRAP(err,ret = iProtocol->CheckSarL(*wapAddr,this)); + if(err!=KErrNone) + return err; + if(ret!=KErrNone) + { + Error(ret,MSocketNotify::EErrorAllOperations); + } + return KErrNone; + } // RSocket::Bind /** * Returns true if aAddr matches the local address of the sap */ TBool CWapSmsProvider::MatchesLocalAddress(const TWapAddr& aAddr) - { - LOGWAPPROT1("CWapSmsProvider::MatchesLocalAddress"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_MATCHESLOCALADDRESS_1, "CWapSmsProvider::MatchesLocalAddress"); - return (iLocalAddress == aAddr); - } // CWapSmsProvider::MatchesLocalAddress + return (iLocalAddress == aAddr); + } // CWapSmsProvider::MatchesLocalAddress // @@ -427,195 +434,195 @@ * */ void CWapSmsProvider::Ioctl(TUint aLevel,TUint aName,TDes8 * /*aOption*/) - { - LOGWAPPROT3("CWapSmsProvider::Ioctl [aLevel=%d, aName=%d]", aLevel, aName); - LOGWAPPROT2("CWapSmsProtocol::Ioctl [provider=0x%08x]",this); + { + OstTraceDefExt2(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_IOCTL_1, "CWapSmsProvider::Ioctl [aLevel=%u, aName=%u]", aLevel, aName); + OstTraceDef1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_IOCTL_2, "CWapSmsProtocol::Ioctl [provider=0x%08x]",this); - iName=aName; - switch (aLevel) - { - case KSolWapProv: - { - if(iIoctlOutstanding || !iIsNewStyleClient) - { - Error(KErrInUse,MSocketNotify::EErrorIoctl); - break; - } - switch (iName) - { - case KSOGetLength: - // - // Get the length - // - { - if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderGetLengthIoctlPolicy,"CWapSmsProvider GetLength Ioctl policy check") != KErrNone)) - { - Error(KErrPermissionDenied,MSocketNotify::EErrorIoctl); - return; - } - iIoctlOutstanding = ETrue; - //check the queue for any other message for this client and call new data if any exist - if(!iRecvdMsgQueue.IsEmpty()) - { - CWapDatagram* msg = iRecvdMsgQueue.First(); - //check the datagram. - if(msg->IsComplete()) - { - NewData(msg); - } - else - { - // else notify the client with error. - // Note:this can happen if client uses 8-Bit port number for 7-Bit datagram - Error(KErrGeneral,MSocketNotify::EErrorIoctl); - iIoctlOutstanding = EFalse; - } + iName=aName; + switch (aLevel) + { + case KSolWapProv: + { + if(iIoctlOutstanding || !iIsNewStyleClient) + { + Error(KErrInUse,MSocketNotify::EErrorIoctl); + break; + } + switch (iName) + { + case KSOGetLength: + // + // Get the length + // + { + if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderGetLengthIoctlPolicy,"CWapSmsProvider GetLength Ioctl policy check") != KErrNone)) + { + Error(KErrPermissionDenied,MSocketNotify::EErrorIoctl); + return; + } + iIoctlOutstanding = ETrue; + //check the queue for any other message for this client and call new data if any exist + if(!iRecvdMsgQueue.IsEmpty()) + { + CWapDatagram* msg = iRecvdMsgQueue.First(); + //check the datagram. + if(msg->IsComplete()) + { + NewData(msg); + } + else + { + // else notify the client with error. + // Note:this can happen if client uses 8-Bit port number for 7-Bit datagram + Error(KErrGeneral,MSocketNotify::EErrorIoctl); + iIoctlOutstanding = EFalse; + } - } - break; - } - - case KSOGetMessageParametersLength: - // - // Get the Message Parameters Length - // - { - if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderGetMessageParamLengthIoctlPolicy,"CWapSmsProvider KSOGetMessageParametersLength Ioctl policy check") != KErrNone)) - { - Error(KErrPermissionDenied,MSocketNotify::EErrorIoctl); - return; - } - iIoctlOutstanding = ETrue; - //check the queue for any other message for this client and call new data if any exist - if(!iRecvdMsgQueue.IsEmpty()) - { - CWapDatagram* msg = iRecvdMsgQueue.First(); - //check the datagram. - if(msg->IsComplete()) - { - NewData(msg); - } - else - { - // else notify the client with error. - // Note:this can happen if client uses 8-Bit port number for 7-Bit datagram - Error(KErrGeneral,MSocketNotify::EErrorIoctl); - iIoctlOutstanding = EFalse; - } + } + break; + } + + case KSOGetMessageParametersLength: + // + // Get the Message Parameters Length + // + { + if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderGetMessageParamLengthIoctlPolicy,"CWapSmsProvider KSOGetMessageParametersLength Ioctl policy check") != KErrNone)) + { + Error(KErrPermissionDenied,MSocketNotify::EErrorIoctl); + return; + } + iIoctlOutstanding = ETrue; + //check the queue for any other message for this client and call new data if any exist + if(!iRecvdMsgQueue.IsEmpty()) + { + CWapDatagram* msg = iRecvdMsgQueue.First(); + //check the datagram. + if(msg->IsComplete()) + { + NewData(msg); + } + else + { + // else notify the client with error. + // Note:this can happen if client uses 8-Bit port number for 7-Bit datagram + Error(KErrGeneral,MSocketNotify::EErrorIoctl); + iIoctlOutstanding = EFalse; + } - } - break; - } - - case KSOGetMessageParameters: - // - // Get the Message Parameters - // - { - if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderGetMessageParametersIoctlPolicy,"CWapSmsProvider GetMessageParameters Ioctl policy check") != KErrNone)) - { - Error(KErrPermissionDenied,MSocketNotify::EErrorIoctl); - return; - } - iIoctlOutstanding = ETrue; - //check the queue for any other message for this client and call new data if any exist - if(!iRecvdMsgQueue.IsEmpty()) - { - CWapDatagram* msg = iRecvdMsgQueue.First(); - //check the datagram. - if(msg->IsComplete()) - { - NewData(msg); - } - else - { - // else notify the client with error. - // Note:this can happen if client uses 8-Bit port number for 7-Bit datagram - Error(KErrGeneral,MSocketNotify::EErrorIoctl); - iIoctlOutstanding = EFalse; - } + } + break; + } + + case KSOGetMessageParameters: + // + // Get the Message Parameters + // + { + if(!iSecurityChecker || (iSecurityChecker->CheckPolicy(wapSmsProviderGetMessageParametersIoctlPolicy,"CWapSmsProvider GetMessageParameters Ioctl policy check") != KErrNone)) + { + Error(KErrPermissionDenied,MSocketNotify::EErrorIoctl); + return; + } + iIoctlOutstanding = ETrue; + //check the queue for any other message for this client and call new data if any exist + if(!iRecvdMsgQueue.IsEmpty()) + { + CWapDatagram* msg = iRecvdMsgQueue.First(); + //check the datagram. + if(msg->IsComplete()) + { + NewData(msg); + } + else + { + // else notify the client with error. + // Note:this can happen if client uses 8-Bit port number for 7-Bit datagram + Error(KErrGeneral,MSocketNotify::EErrorIoctl); + iIoctlOutstanding = EFalse; + } - } - break; - } + } + break; + } - default: - // - // Unsupported ioctl name - // - { - // Error gracefully - Error(KErrNotSupported,MSocketNotify::EErrorIoctl); - } - } - break; - } - default: - // Gracefully error in release build - Error(KErrNotSupported,MSocketNotify::EErrorIoctl); - } - } // CServProviderBase::Ioctl + default: + // + // Unsupported ioctl name + // + { + // Error gracefully + Error(KErrNotSupported,MSocketNotify::EErrorIoctl); + } + } + break; + } + default: + // Gracefully error in release build + Error(KErrNotSupported,MSocketNotify::EErrorIoctl); + } + } // CServProviderBase::Ioctl /** * Cancel IOCTL- can only have one outstanding IOCTL at a time */ void CWapSmsProvider::CancelIoctl(TUint aLevel,TUint aName) - { - LOGWAPPROT1("CWapSmsProvider::CancelIoctl()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_CANCELIOCTL_1, "CWapSmsProvider::CancelIoctl()"); - if(!iIoctlOutstanding || (aName!=iName) || (aLevel!=KSolWapProv)) - { - Error(KErrNotFound,MSocketNotify::EErrorIoctl); - } - else - { - iIoctlOutstanding=EFalse; - } - } // CWapSmsProvider::CancelIoctl + if(!iIoctlOutstanding || (aName!=iName) || (aLevel!=KSolWapProv)) + { + Error(KErrNotFound,MSocketNotify::EErrorIoctl); + } + else + { + iIoctlOutstanding=EFalse; + } + } // CWapSmsProvider::CancelIoctl /** * Start the provider- does nothing */ void CWapSmsProvider::Start() - { - LOGWAPPROT1("CWapSmsProvider::Start()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_START_1, "CWapSmsProvider::Start()"); - } // CWapSmsProvider::Start + } // CWapSmsProvider::Start void CWapSmsProvider::AddToQueue(CWapDatagram* aMsg) /** * Adding the datagram to received messages queue */ - { - LOGWAPPROT1("CWapSmsProvider::AddToQueue..."); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_ADDTOQUEUE_1, "CWapSmsProvider::AddToQueue..."); - iRecvdMsgQueue.AddLast(*aMsg); - NewData(aMsg); - } // CWapSmsProvider::AddToQueue + iRecvdMsgQueue.AddLast(*aMsg); + NewData(aMsg); + } // CWapSmsProvider::AddToQueue TInt CWapSmsProvider::SecurityCheck(MProvdSecurityChecker* aSecurityChecker) - { - LOGWAPPROT1("CWapSmsProvider::SecurityCheck()"); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDER_SECURITYCHECK_1, "CWapSmsProvider::SecurityCheck()"); - iSecurityChecker=aSecurityChecker; - return KErrNone; - } // CWapSmsProvider::SecurityCheck + iSecurityChecker=aSecurityChecker; + return KErrNone; + } // CWapSmsProvider::SecurityCheck TWapSmsStatusReportScheme CWapSmsProvider::GetStatusReportScheme() - { - return iStatusReportScheme; - } + { + return iStatusReportScheme; + } - + TWapSmsDataCodingScheme CWapSmsProvider::GetDataCodingScheme() - { - return iDataCodingScheme; - } + { + return iDataCodingScheme; + } // @@ -627,14 +634,14 @@ * 2 phase constructor */ CWapSmsProviderWrite* CWapSmsProviderWrite::NewL(CWapSmsProvider& aWapSmsProvider) - { - LOGWAPPROT1("CWapSmsProviderWrite::NewL"); - CWapSmsProviderWrite* self = new (ELeave) CWapSmsProviderWrite(aWapSmsProvider); - CleanupStack::PushL(self); - self->iMsgSender = CWapSapMessageSender::NewL(aWapSmsProvider.iProtocol->SmsProtocol(), &aWapSmsProvider); - CleanupStack::Pop(self); - return self; - } // CWapSmsProviderWrite::NewL + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_NEWL_1, "CWapSmsProviderWrite::NewL"); + CWapSmsProviderWrite* self = new (ELeave) CWapSmsProviderWrite(aWapSmsProvider); + CleanupStack::PushL(self); + self->iMsgSender = CWapSapMessageSender::NewL(aWapSmsProvider.iProtocol->SmsProtocol(), &aWapSmsProvider); + CleanupStack::Pop(self); + return self; + } // CWapSmsProviderWrite::NewL /** @@ -644,7 +651,7 @@ :CActive(EPriorityStandard) ,iWapSmsProvider(aWapSmsProvider) { - LOGWAPPROT1("CWapSmsProviderWrite::CWapSmsProviderWrite()"); + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_CTOR_1, "CWapSmsProviderWrite::CWapSmsProviderWrite()"); CActiveScheduler::Add(this); } // CWapSmsProviderWrite::CWapSmsProviderWrite @@ -662,76 +669,80 @@ void CWapSmsProviderWrite::Start(RMBufChain& aBufChain, TSockAddr& aAddr) - { - LOGWAPPROT1("CWapSmsProviderWrite::Start"); - iWapAddr = reinterpret_cast(aAddr); - delete iDes; - iDes = NULL; - TRAPD(err, (iDes = HBufC8::NewL(aBufChain.Length())) ); - if(err == KErrNone) - { - TPtr8 desBuf(iDes->Des()); - desBuf.SetLength(aBufChain.Length()); - aBufChain.CopyOut(desBuf, 0); - // Logging migrated from CWapSmsProvider::GetData - LOGSMSIF2("ESOCK READ: \"%S\"", iDes); - LOGSMSIFHEXBUF(_L8("ESOCK READ"), *iDes); - LOGSMSIFTIMESTAMP(); - } - aBufChain.Free(); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_START_1, "CWapSmsProviderWrite::Start"); + iWapAddr = reinterpret_cast(aAddr); + delete iDes; + iDes = NULL; + TRAPD(err, (iDes = HBufC8::NewL(aBufChain.Length())) ); + if(err == KErrNone) + { + TPtr8 desBuf(iDes->Des()); + desBuf.SetLength(aBufChain.Length()); + aBufChain.CopyOut(desBuf, 0); + // Logging migrated from CWapSmsProvider::GetData + OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_START_2, "ESOCK READ: \"%s\"", *iDes); +#if (OST_TRACE_CATEGORY & OST_TRACE_CATEGORY_DEBUG) + LogSmsIfHexBuf(_L8("ESOCK READ"), *iDes); + TBuf<40> timestamp; + SmsTimeStampL(timestamp); + OstTraceDefExt1(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS,CSMSSTACKTESTUTILS_PRINTANDTESTDECODEL_1, "%S",timestamp); +#endif + } + aBufChain.Free(); - TRequestStatus* status = &iStatus; - User::RequestComplete(status, err); - SetActive(); - } // CWapSmsProviderWrite::Start + TRequestStatus* status = &iStatus; + User::RequestComplete(status, err); + SetActive(); + } // CWapSmsProviderWrite::Start void CWapSmsProviderWrite::RunL() - { - LOGWAPPROT1("CWapSmsProviderWrite::RunL"); - User::LeaveIfError(iStatus.Int()); + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_RUNL_1, "CWapSmsProviderWrite::RunL"); + User::LeaveIfError(iStatus.Int()); - //no need to use cleanup stack - CWapDatagram* datagram = CWapDatagram::NewL(*iDes); + //no need to use cleanup stack + CWapDatagram* datagram = CWapDatagram::NewL(*iDes); - if (iWapSmsProvider.iDataCodingScheme == EWapSms7BitDCS) - datagram->SetAlphabet(TSmsDataCodingScheme::ESmsAlphabet7Bit); - else - datagram->SetAlphabet(TSmsDataCodingScheme::ESmsAlphabet8Bit); - - if (iWapSmsProvider.iStatusReportScheme == EWapSmsTPSRR) - { - datagram->SetStatusReportScheme(ETPSRRScheme); - } - else - { - datagram->SetStatusReportScheme(EDefaultScheme); - } - - TBuf addrBuf; - addrBuf.Copy(iWapAddr.WapAddress()); - datagram->SetToAddress(addrBuf); - TInt fromPort = iWapSmsProvider.iLocalAddress.WapPort(); - datagram->SetPorts(fromPort, iWapAddr.WapPort()); + if (iWapSmsProvider.iDataCodingScheme == EWapSms7BitDCS) + datagram->SetAlphabet(TSmsDataCodingScheme::ESmsAlphabet7Bit); + else + datagram->SetAlphabet(TSmsDataCodingScheme::ESmsAlphabet8Bit); + + if (iWapSmsProvider.iStatusReportScheme == EWapSmsTPSRR) + { + datagram->SetStatusReportScheme(ETPSRRScheme); + } + else + { + datagram->SetStatusReportScheme(EDefaultScheme); + } + + TBuf addrBuf; + addrBuf.Copy(iWapAddr.WapAddress()); + datagram->SetToAddress(addrBuf); + TInt fromPort = iWapSmsProvider.iLocalAddress.WapPort(); + datagram->SetPorts(fromPort, iWapAddr.WapPort()); - iMsgSender->SendDatagramL(datagram); // takes ownership of datagram - } // CWapSmsProviderWrite::RunL + iMsgSender->SendDatagramL(datagram); // takes ownership of datagram + } // CWapSmsProviderWrite::RunL TInt CWapSmsProviderWrite::RunError(TInt aError) - { - LOGWAPPROT1("CWapSmsProviderWrite::RunError"); - iWapSmsProvider.Error(aError, MSocketNotify::EErrorSend); - return KErrNone; - } // CWapSmsProviderWrite::RunError + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_RUNERROR_1, "CWapSmsProviderWrite::RunError"); + iWapSmsProvider.Error(aError, MSocketNotify::EErrorSend); + return KErrNone; + } // CWapSmsProviderWrite::RunError void CWapSmsProviderWrite::DoCancel() - { - LOGWAPPROT1("CWapSmsProviderWrite::DoCancel"); - TRequestStatus* status = &iStatus; - User::RequestComplete(status, KErrCancel); - } // CWapSmsProviderWrite::DoCancel + { + OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CWAPSMSPROVIDERWRITE_DOCANCEL_1, "CWapSmsProviderWrite::DoCancel"); + TRequestStatus* status = &iStatus; + User::RequestComplete(status, KErrCancel); + } // CWapSmsProviderWrite::DoCancel // EOF - WS_PRVDR.CPP