# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1274958307 -10800 # Node ID 8ab6687fb94c62c3a6f0ca3b2acf8cf43b598f1a # Parent 8767c6acf3342687330f05847dcef8b0320d7e8f Revision: 201021 Kit: 2010121 diff -r 8767c6acf334 -r 8ab6687fb94c basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs/TE_C32BcaUnit.ini --- a/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs/TE_C32BcaUnit.ini Fri May 14 17:02:16 2010 +0300 +++ b/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/configs/TE_C32BcaUnit.ini Thu May 27 14:05:07 2010 +0300 @@ -135,14 +135,19 @@ ExpectedCommRole = DCE [ValidChannelId] +PDD_Name = ECDRV +LDD_Name = ECOMM +CSY_Name = PKTLOOPBACK +Port_Name = PKTLOOPBACK::501 +BcaCSY_Name = PKTLOOPBACK UUT_Name = UUT Peer_Name = Peer UUT_PortName = BOGUS Peer_PortName = BOGUS -UUT_IapId = 4 +UUT_IapId = 1 Peer_IapId = 2 -Port_Name1 = ECUART::COMM::0 -Port_Name2 = COMM::0 +Port_Name1 = PKTLOOPBACK::PKTLOOPBACK::501 +Port_Name2 = PKTLOOPBACK::501 [HiddenIAPRecord] PDD_Name = ECDRV diff -r 8767c6acf334 -r 8ab6687fb94c basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts/TE_C32BcaUnit.script --- a/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts/TE_C32BcaUnit.script Fri May 14 17:02:16 2010 +0300 +++ b/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/scripts/TE_C32BcaUnit.script Thu May 27 14:05:07 2010 +0300 @@ -520,42 +520,42 @@ START_TESTCASE NET-BasebandAdaptation-c32bca-0133 //! @SYMTestCaseID NET-BasebandAdaptation-c32bca-0133 -//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port. +//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port (using packetloopback.csy as current phone hardware does not support a serial driver). //! @SYMFssID NETWORKING/BCA //! @SYMTestActions Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc //! @SYMTestExpectedResults Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc. //! @SYMTestPriority High //! @SYMTestStatus Implemented //! @SYMTestType UT -RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort1 z:\TestData\Configs\TE_C32BcaUnit.ini SerialPortConfig0 +RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort1 z:\TestData\Configs\TE_C32BcaUnit.ini CommRoleDTE DELAY 1000 END_TESTCASE NET-BasebandAdaptation-c32bca-0133 START_TESTCASE NET-BasebandAdaptation-c32bca-0134 //! @SYMTestCaseID NET-BasebandAdaptation-c32bca-0134 -//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port. +//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port (using packetloopback.csy as current phone hardware does not support a serial driver). //! @SYMFssID NETWORKING/BCA //! @SYMTestActions Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc //! @SYMTestExpectedResults Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc. //! @SYMTestPriority Critical //! @SYMTestStatus Implemented //! @SYMTestType UT -RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort2 z:\TestData\Configs\TE_C32BcaUnit.ini SerialPortConfig0 +RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort2 z:\TestData\Configs\TE_C32BcaUnit.ini CommRoleDTE DELAY 1000 END_TESTCASE NET-BasebandAdaptation-c32bca-0134 START_TESTCASE NET-BasebandAdaptation-c32bca-0135 //! @SYMTestCaseID NET-BasebandAdaptation-c32bca-0135 -//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port. +//! @SYMTestCaseDesc Tests C32Bca Ioctl for serial port (using packetloopback.csy as current phone hardware does not support a serial driver). //! @SYMFssID NETWORKING/BCA //! @SYMTestActions Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc //! @SYMTestExpectedResults Refer to SGL.GT0233.603.C32Bca_Unit_test_spec.doc. //! @SYMTestPriority High //! @SYMTestStatus Implemented //! @SYMTestType UT -RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort3 z:\TestData\Configs\TE_C32BcaUnit.ini SerialPortConfig0 +RUN_TEST_STEP 100 TE_C32BcaSvr CIoctlSerialPort3 z:\TestData\Configs\TE_C32BcaUnit.ini CommRoleDTE DELAY 1000 END_TESTCASE NET-BasebandAdaptation-c32bca-0135 diff -r 8767c6acf334 -r 8ab6687fb94c basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src/te_C32BcaUnitSteps.cpp --- a/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src/te_C32BcaUnitSteps.cpp Fri May 14 17:02:16 2010 +0300 +++ b/basebandadaptationplugins/basebandchanneladaptorforc32/te_c32bca/src/te_C32BcaUnitSteps.cpp Thu May 27 14:05:07 2010 +0300 @@ -1540,30 +1540,31 @@ TVerdict CIoctlSerialPort1::RunTestStepL() { LoadC32SettingsFromConfigFileL(); - + LoadCsyNameFromConfigFileL(); OpenRealCommPortL(iCommPort, iC32CsyName, iC32PortName); - + LoadUutL(); SetProxyCsyL(*iUut, iC32CsyName); - + iUut->Open(iC32PortName); iUut->WaitForOpenL(KErrNone); - + TCommConfig actualCommConfig; iCommPort.Config(actualCommConfig); actualCommConfig().iTerminatorCount = 1; actualCommConfig().iTerminator[0] = 0x7E; - LogAndLeaveIfErrorL(iCommPort.SetConfig(actualCommConfig), _L("Setting COMM Config on RComm")); - + + LogAndLeaveIfErrorL(iCommPort.SetConfig(actualCommConfig), _L("Setting COMM Config on RComm")); + TCommConfig balCommConfig; // sanity check TRAPD(err, CheckBuffersEqualL(balCommConfig, actualCommConfig)); if(KErrNone == err) - { - INFO_PRINTF1(_L("Santify Check Failure: buffers were equal before TCommConfig was retrieved from BCA.")); - return EInconclusive; - } + { + INFO_PRINTF1(_L("Santify Check Failure: buffers were equal before TCommConfig was retrieved from BCA.")); + return EInconclusive; + } TPckgBuf argPckg(balCommConfig); iUut->Ioctl(KBcaOptLevelExtSerial, KSerialConfig, argPckg); @@ -1571,15 +1572,33 @@ balCommConfig = argPckg(); CheckBuffersEqualL(balCommConfig, actualCommConfig); - + + // Now check that we can accept a V2 structure, although only the V1 attributes are configured for use. + TCommConfig2 actualCommConfig2; + actualCommConfig2.FillZ(); + actualCommConfig2().iTerminatorCount = 2; + actualCommConfig2().iTerminator[0] = 0x7E; + LogAndLeaveIfErrorL(iCommPort.SetConfig(actualCommConfig2), _L("Setting COMM Config using V2 on RComm")); + + // Now check that we can retrieve a V1 structure correctly. + TCommConfig balCommConfig1; + balCommConfig1.FillZ(); + TPckgBuf argPckg1(balCommConfig1); + iUut->Ioctl(KBcaOptLevelExtSerial, KSerialConfig, argPckg1); + iUut->WaitForIoctlL(KErrNone); + balCommConfig1 = argPckg1(); + + actualCommConfig().iTerminatorCount = 2; //Modify Comparison Structure to be aligned to balCommConfig1 + CheckBuffersEqualL(balCommConfig1, actualCommConfig); + iCommPort.Close(); - + iUut->Shutdown(); iUut->WaitForShutdownL(KErrNone); - + UnloadUut(); - - return EPass; + + return EPass; } /** @@ -1777,7 +1796,7 @@ /** Test C32 BCA open functionality with the different combinations of ChannelId*/ TVerdict CValidChannelId::RunTestStepL() { - TPtrC channelId; + TPtrC channelId; if(!GetStringFromConfig(ConfigSection(), _L("Port_Name1"), channelId)) { @@ -1785,10 +1804,19 @@ return EAbort; } - // Pass channelId in the form of csyname::portname (ECUART::COMM::0) to the BCA + // Pass channelId in the form of: + // csyname::portname (ECUART::COMM::0) to the BCA + // where csyname = ECUART + // portname = COMM::0 + // OR alternatively + // csyname::portname (PKTLOOPBACK::PKTLOOPBACK::501) + // where csyname = PKTLOOPBACK + // portname = PKTLOOPBACK::501 + // (PKTLOOPBACK port names contain a seemingly redundant PKTLOOPBACK in their specification). + LoadUutL(); + + // Scenario 1 - the CSY name is specified in the descriptor argument passed to the Open() - LoadUutL(); - iUut->Open(channelId); iUut->WaitForOpenL(KErrNone); @@ -1800,10 +1828,16 @@ return EAbort; } - // Pass channelId in the form of portname (COMM::0) to the BCA - + // Pass channelId in the form of portname (COMM::0) to the BCA + // OR + // (PKTLOOPBACK::501) + + // Scenario 2 - the CSY name is not specified in the descriptor argument passed to the Open() + // In this case, the CSY name is retrieved from CommsDat, based on the IAP. + // The client specifies the IAP by call SetProxyIapIdL(); + LoadUutL(); - + SetProxyIapIdL(*iUut, iUutIapId); iUut->Open(channelId); diff -r 8767c6acf334 -r 8ab6687fb94c hwpluginsimulation/mocksy/bwins/distribution.policy --- a/hwpluginsimulation/mocksy/bwins/distribution.policy Fri May 14 17:02:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Category T -OSD: Reference/Test Tools diff -r 8767c6acf334 -r 8ab6687fb94c hwpluginsimulation/mocksy/eabi/distribution.policy --- a/hwpluginsimulation/mocksy/eabi/distribution.policy Fri May 14 17:02:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Category T -OSD: Reference/Test Tools diff -r 8767c6acf334 -r 8ab6687fb94c hwpluginsimulation/mocksy/group/distribution.policy --- a/hwpluginsimulation/mocksy/group/distribution.policy Fri May 14 17:02:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Category T -OSD: Reference/Test Tools diff -r 8767c6acf334 -r 8ab6687fb94c hwpluginsimulation/mocksy/inc/distribution.policy --- a/hwpluginsimulation/mocksy/inc/distribution.policy Fri May 14 17:02:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Category T -OSD: Reference/Test Tools diff -r 8767c6acf334 -r 8ab6687fb94c hwpluginsimulation/mocksy/src/distribution.policy --- a/hwpluginsimulation/mocksy/src/distribution.policy Fri May 14 17:02:16 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -Category T -OSD: Reference/Test Tools diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/csdagt/src/ND_DIRCT.CPP --- a/telephonyprotocols/csdagt/src/ND_DIRCT.CPP Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/csdagt/src/ND_DIRCT.CPP Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2003-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" @@ -90,10 +90,18 @@ iDbAccess->GetCommPortRoleL(role); TInt len; iDbAccess->GetScriptDetailsL(iUseScript,len); + if (!iUseScript || len==0) { // set them consistently iUseScript=EFalse; } + + if (iNdScript != NULL) + { + delete iNdScript; + iNdScript = NULL; + } + iNdScript=CNetDialScript::NewL(iDbAccess,iDlgPrc,commPort,role,len); // create it whatever because we need other stuff } diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/csdagt/src/Nd_Bases.cpp --- a/telephonyprotocols/csdagt/src/Nd_Bases.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/csdagt/src/Nd_Bases.cpp Thu May 27 14:05:07 2010 +0300 @@ -29,7 +29,8 @@ // Netdial SM base class CNetdialSM::CNetdialSM(MAgentNotify& aControllerObserver, CDialogProcessor* aDlgPrc, CCommsDbAccess& aDbAccess) - : CAgentSMBase(aControllerObserver,aDlgPrc,aDbAccess) + : CAgentSMBase(aControllerObserver,aDlgPrc,aDbAccess), + iNdScript(NULL) /** Constructor. diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/inc/PDPSCPR.h --- a/telephonyprotocols/pdplayer/inc/PDPSCPR.h Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/inc/PDPSCPR.h Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2006-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" @@ -58,6 +58,7 @@ class TRetrieveSipAddr; class TModifyActivePDPContext; class TSetMbmsParameters; + class TCleanupFSM; } namespace PDPSCprActivities @@ -93,6 +94,7 @@ friend class PDPSCprStates::TRetrieveSipAddr; friend class PDPSCprStates::TSetMbmsParameters; friend class PDPSCprStates::TModifyActivePDPContext; + friend class PDPSCprStates::TCleanupFSM; public: diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/inc/PDPSCPRStates.h --- a/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h Thu May 27 14:05:07 2010 +0300 @@ -377,6 +377,16 @@ virtual TInt TransitionTag(); DECLARE_SMELEMENT_FOOTER( TNoTagOrProviderStopped ) +DECLARE_SMELEMENT_HEADER( TCleanupFSM, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TCleanupFSM) + +DECLARE_AGGREGATED_TRANSITION2( + TCleanupFSMAndDataClients, + PDPSCprStates::TCleanupFSM, + PRStates::TDestroyOrphanedDataClients + ) + //=========================================================== // Sip Address retrieval diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/src/PDPDeftSCPR.cpp --- a/telephonyprotocols/pdplayer/src/PDPDeftSCPR.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/src/PDPDeftSCPR.cpp Thu May 27 14:05:07 2010 +0300 @@ -65,7 +65,7 @@ NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag) THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KNoDataClientsToStop, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrProviderStopped) NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TDestroyPDPContext, PDPSCprStates::TAwaitingPDPContextDestroyed, MeshMachine::TTag) - THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PRStates::TDestroyOrphanedDataClients, MeshMachine::TTag) + THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TCleanupFSMAndDataClients, MeshMachine::TTag) LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, MeshMachine::TRaiseActivityError) NODEACTIVITY_END() } @@ -103,21 +103,21 @@ // to TRejoin, whereas TRejoin doesn't mean swap - suggesting to // introduce PDP level msg: TRejoinAndSwap. DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityGoneDown, PDPDeftSCprGoneDown, TPDPMessages::TPDPFSMMessage, PDPSCprStates::CPrimaryPDPGoneDownActivity::NewL) - FIRST_NODEACTIVITY_ENTRY(PDPSCprStates::TAwaitingPDPContextGoneDown, MeshMachine::TActiveOrNoTag) - THROUGH_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, PDPSCprStates::CPrimaryPDPGoneDownActivity::TNoTagOrProviderStopped) + FIRST_NODEACTIVITY_ENTRY(PDPSCprStates::TAwaitingPDPContextGoneDown, MeshMachine::TActiveOrNoTag) + THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TCleanupFSM, PDPSCprStates::CPrimaryPDPGoneDownActivity::TNoTagOrProviderStopped) THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TStoreOriginalDataClient, MeshMachine::TNoTag) - NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TRejoinDataClient, CoreNetStates::TAwaitingRejoinDataClientComplete, MeshMachine::TNoTag) - NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TApplyNewDefault, TAwaitingApplyResponseOrError, MeshMachine::TNoTag) - THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TSwitchToNewDefault, MeshMachine::TNoTag) - NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TStopOriginalDataClient, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TNoTag) - - LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TClearError) - THROUGH_NODEACTIVITY_ENTRY(KActiveTag, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrContentionTag) - //Awaiting for contention result, do not stop the start activity. - LAST_NODEACTIVITY_ENTRY(PDPSCprStates::KContentionTag, MeshMachine::TDoNothing) - - LAST_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TCancelDataClientStartInPDP) - + NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TRejoinDataClient, CoreNetStates::TAwaitingRejoinDataClientComplete, MeshMachine::TNoTag) + NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TApplyNewDefault, TAwaitingApplyResponseOrError, MeshMachine::TNoTag) + THROUGH_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TSwitchToNewDefault, MeshMachine::TNoTag) + NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::CPrimaryPDPGoneDownActivity::TStopOriginalDataClient, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TNoTag) + + LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TClearError) + THROUGH_NODEACTIVITY_ENTRY(KActiveTag, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrContentionTag) + //Awaiting for contention result, do not stop the start activity. + LAST_NODEACTIVITY_ENTRY(PDPSCprStates::KContentionTag, MeshMachine::TDoNothing) + + LAST_NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TCancelDataClientStartInPDP) + NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, CoreNetStates::TStopSelf, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag) LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TSendGoneDown) NODEACTIVITY_END() diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/src/PDPSCPR.cpp --- a/telephonyprotocols/pdplayer/src/PDPSCPR.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/src/PDPSCPR.cpp Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2006-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" @@ -91,7 +91,7 @@ NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag) THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KNoDataClientsToStop, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrProviderStopped) NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TDestroyPDPContext, PDPSCprStates::TAwaitingPDPContextDestroyed, MeshMachine::TTag) - THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PRStates::TDestroyOrphanedDataClients, MeshMachine::TTag) + THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TCleanupFSMAndDataClients, MeshMachine::TTag) LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, MeshMachine::TRaiseActivityError) NODEACTIVITY_END() } @@ -106,7 +106,7 @@ NODEACTIVITY_ENTRY(KNoTag, SCprStates::TStopYourFlows, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TTag) THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, MeshMachine::TDoNothing, PDPSCprStates::TNoTagOrProviderStopped) NODEACTIVITY_ENTRY(KNoTag, PDPSCprStates::TDestroyPDPContext, PDPSCprStates::TAwaitingPDPContextDestroyed, MeshMachine::TTag) - THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PRStates::TDestroyOrphanedDataClients, MeshMachine::TTag) + THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TCleanupFSMAndDataClients, MeshMachine::TTag) LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, PDPSCprStates::TSendDataClientStopped) NODEACTIVITY_END() } diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp --- a/telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp Thu May 27 14:05:07 2010 +0300 @@ -226,7 +226,9 @@ //It's not legal for the qos defaults to be absent. CDefaultPacketQoSProvision* defaultQoS = NULL; + TRAPD(ret, defaultQoS = CDefaultPacketQoSProvision::NewL(aIapView)); + if ((KErrNone == ret) && defaultQoS) { CleanupStack::PushL(defaultQoS); @@ -658,115 +660,192 @@ User::LeaveIfError(tNode.iProvisionFailure); ASSERT(tNode.iPdpFsmInterface); - - iContext.Node().PostToClients( + + tNode.PostToClients( iContext.NodeId(), TCFMessage::TStateChange( Elements::TStateChange(KPsdStartingConfiguration, KErrNone)).CRef(), TClientType(TCFClientType::ECtrlProvider)); - - CGPRSProvision* gprsProvision = const_cast(static_cast( - iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CGPRSProvision::EUid,CGPRSProvision::ETypeId)))); - - //retrieve QoS (should be provisioned, but can also be overriden with SetParams). - RPacketQoS::TQoSR5Requested qosOverridenParams; - const RPacketQoS::TQoSR5Requested* qosParams = NULL; - if (! iContext.Node().iParameterBundle.IsNull() && ! iContext.Node().iParameterBundle.FindFamily(KSubConQoSFamily).IsNull()) - { - MPDPParamMapper::MapQosParamBundleToEtelL(iContext.Node().iParameterBundle, qosOverridenParams); - qosParams = &qosOverridenParams; - } - else - { - const CDefaultPacketQoSProvision* defaultQoSProvision = static_cast( - iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CDefaultPacketQoSProvision::EUid,CDefaultPacketQoSProvision::ETypeId))); - qosParams = defaultQoSProvision ? &defaultQoSProvision->iParams : NULL; - + + CGPRSProvision* gprsProvision = const_cast(static_cast( + tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CGPRSProvision::EUid,CGPRSProvision::ETypeId)))); + + if (gprsProvision == NULL) + { + User::Leave(KErrCorrupt); + } + + //retrieve QoS (should be provisioned, but can also be overriden with SetParams). + RPacketQoS::TQoSR5Requested qosOverridenParams; + + const RPacketQoS::TQoSR5Requested* qosParams = NULL; + + if ((!tNode.iParameterBundle.IsNull()) &&\ + (!tNode.iParameterBundle.FindFamily(KSubConQoSFamily).IsNull())) + { + MPDPParamMapper::MapQosParamBundleToEtelL(tNode.iParameterBundle, qosOverridenParams); + qosParams = &qosOverridenParams; + } + else + { + const CDefaultPacketQoSProvision* defaultQoSProvision = static_cast( + tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CDefaultPacketQoSProvision::EUid,CDefaultPacketQoSProvision::ETypeId))); + + if (defaultQoSProvision) + { + qosParams = &defaultQoSProvision->iParams; + } + else + { + User::Leave(KErrCorrupt); + } + //Here we're taking the qos defaults from the provision info, hence skipping the iParameterBundle. //The lack of iParameterBundle however and the respective ERequested params is badly tolerated by the rest //of the code (e.g.: when subsequently raising granted params it is assumed something has been requested). - //Let's create a phoney requested params. - //iContext.Node().CreateParameterBundleL(); - //RParameterFamily family = iContext.Node().iParameterBundle.CreateFamilyL(KSubConQoSFamily); //PJLEFT - - RCFParameterFamilyBundle newBundle; - newBundle.CreateL(); - iContext.Node().iParameterBundle.Open(newBundle); - RParameterFamily family = newBundle.CreateFamilyL(KSubConQoSFamily); - CSubConQosGenericParamSet::NewL(family, RParameterFamily::ERequested); - } - TTFTInfo tft; //We'll use empty/thus default TFT - if (gprsProvision == NULL || qosParams == NULL) - { - User::Leave(KErrCorrupt); - } - - const CImsExtProvision* imsprov = static_cast( - iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CImsExtProvision::EUid, CImsExtProvision::ETypeId))); - - TRAP_IGNORE(iContext.Node().iIsModeGsm = IsModeGsmL()); - - switch (gprsProvision->UmtsGprsRelease()) - { - case TPacketDataConfigBase::KConfigGPRS: - { - SetImsSignallingFlagL(gprsProvision->GetScratchContextAs().iProtocolConfigOption, imsprov->iImsSignalIndicator); + + // These parameter bundles are also used in a situation when a context has failed to create because of a lack + // of modem / network resources, as the SCPR isn't torn down, the parameter bundles need to hold the + // information of the default QoS otherwise bad things happen [bad QoS]. + + RCFParameterFamilyBundle newBundle; + newBundle.CreateL(); + tNode.iParameterBundle.Open(newBundle); + RParameterFamily family = newBundle.CreateFamilyL(KSubConQoSFamily); + + TInt tRelease = gprsProvision->UmtsGprsRelease(); + + CSubConQosR99ParamSet* extRequestedR99 = NULL; + CSubConQosR99ParamSet* extAcceptableR99 = NULL; + CSubConQosR5ParamSet* extRequestedR5 = NULL; + CSubConQosR5ParamSet* extAcceptableR5 = NULL; + + if (tRelease == TPacketDataConfigBase::KConfigRel5) + { + // R5 - basically R4 + a few parameters + + extRequestedR5 = CSubConQosR5ParamSet::NewL(family,RParameterFamily::ERequested); + extAcceptableR5 = CSubConQosR5ParamSet::NewL(family,RParameterFamily::EAcceptable); - // Only request SIP server address retrieval when network not in GSM/GPRS mode - // e.g. UMTS/WCDMA - if (!iContext.Node().iIsModeGsm) - { - SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); - } - - SetChapInformationL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); - - } - break; - - case TPacketDataConfigBase::KConfigRel5: - case TPacketDataConfigBase::KConfigRel99Rel4: - { - SetImsSignallingFlagL(gprsProvision->GetScratchContextAs().iProtocolConfigOption, imsprov->iImsSignalIndicator); - - // Only request SIP server address retrieval when network not in GSM/GPRS mode - // e.g. UMTS/WCDMA - if (!iContext.Node().iIsModeGsm) - { - SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); - } - - SetChapInformationL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); - - } - break; - } - - iContext.Node().iPDPFsmContextId = iContext.Node().iPdpFsmInterface->NewFsmContextL(iContext.Node(),SpudMan::EPrimary); - - iContext.Node().PostToClients( + // Requested QoS Parameters + extRequestedR5->SetSourceStatisticsDescriptor(qosParams->iSourceStatisticsDescriptor); + extRequestedR5->SetSignallingIndicator(qosParams->iSignallingIndication); + + extRequestedR99 = dynamic_cast(extRequestedR5); + + // Acceptable QoS Parameters + + extAcceptableR5->SetSourceStatisticsDescriptor(qosParams->iSourceStatisticsDescriptor); + extAcceptableR5->SetSignallingIndicator(qosParams->iSignallingIndication); + + extAcceptableR99 = dynamic_cast(extAcceptableR5); + + } + else + { + // R4 and R99 + extRequestedR99 = CSubConQosR99ParamSet::NewL(family,RParameterFamily::ERequested); + extAcceptableR99 = CSubConQosR99ParamSet::NewL(family,RParameterFamily::EAcceptable); + } + + // Requested QoS Parameters + extRequestedR99->SetTrafficClass(qosParams->iReqTrafficClass); + extRequestedR99->SetDeliveryOrder(qosParams->iReqDeliveryOrderReqd); + extRequestedR99->SetErroneousSDUDelivery(qosParams->iReqDeliverErroneousSDU); + extRequestedR99->SetResidualBitErrorRatio(qosParams->iReqBER); + extRequestedR99->SetSDUErrorRatio(qosParams->iReqSDUErrorRatio); + extRequestedR99->SetTrafficHandlingPriority(qosParams->iReqTrafficHandlingPriority); + extRequestedR99->SetTransferDelay(qosParams->iReqTransferDelay); + extRequestedR99->SetMaxSduSize(qosParams->iReqMaxSDUSize); + extRequestedR99->SetMaxBitrateUplink(qosParams->iReqMaxRate.iUplinkRate); + extRequestedR99->SetMaxBitrateDownlink(qosParams->iReqMaxRate.iDownlinkRate); + extRequestedR99->SetGuaBitrateUplink(qosParams->iReqGuaranteedRate.iUplinkRate); + extRequestedR99->SetGuaBitrateDownlink(qosParams->iReqGuaranteedRate.iDownlinkRate); + + // Acceptable QoS Parameters + extAcceptableR99->SetTrafficClass(qosParams->iMinTrafficClass); + extAcceptableR99->SetDeliveryOrder(qosParams->iMinDeliveryOrderReqd); + extAcceptableR99->SetErroneousSDUDelivery(qosParams->iMinDeliverErroneousSDU); + extAcceptableR99->SetResidualBitErrorRatio(qosParams->iMaxBER); + extAcceptableR99->SetSDUErrorRatio(qosParams->iMaxSDUErrorRatio); + extAcceptableR99->SetTrafficHandlingPriority(qosParams->iMinTrafficHandlingPriority); + extAcceptableR99->SetTransferDelay(qosParams->iMaxTransferDelay); + extAcceptableR99->SetMaxSduSize(qosParams->iMinAcceptableMaxSDUSize); + extAcceptableR99->SetMaxBitrateUplink(qosParams->iMinAcceptableMaxRate.iUplinkRate); + extAcceptableR99->SetMaxBitrateDownlink(qosParams->iMinAcceptableMaxRate.iDownlinkRate); + extAcceptableR99->SetGuaBitrateUplink(qosParams->iMinGuaranteedRate.iUplinkRate); + extAcceptableR99->SetGuaBitrateDownlink(qosParams->iMinGuaranteedRate.iDownlinkRate); + + } + + TTFTInfo tft; //We'll use empty/thus default TFT + + const CImsExtProvision* imsprov = static_cast( + tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CImsExtProvision::EUid, CImsExtProvision::ETypeId))); + + TRAP_IGNORE(tNode.iIsModeGsm = IsModeGsmL()); + + switch (gprsProvision->UmtsGprsRelease()) + { + case TPacketDataConfigBase::KConfigGPRS: + { + SetImsSignallingFlagL(gprsProvision->GetScratchContextAs().iProtocolConfigOption, imsprov->iImsSignalIndicator); + + // Only request SIP server address retrieval when network not in GSM/GPRS mode + // e.g. UMTS/WCDMA + if (!tNode.iIsModeGsm) + { + SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); + } + + SetChapInformationL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); + + } + break; + + case TPacketDataConfigBase::KConfigRel5: + case TPacketDataConfigBase::KConfigRel99Rel4: + { + SetImsSignallingFlagL(gprsProvision->GetScratchContextAs().iProtocolConfigOption, imsprov->iImsSignalIndicator); + + // Only request SIP server address retrieval when network not in GSM/GPRS mode + // e.g. UMTS/WCDMA + if (!tNode.iIsModeGsm) + { + SetupSipServerAddrRetrievalL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); + } + + SetChapInformationL(gprsProvision->GetScratchContextAs().iProtocolConfigOption); + + } + break; + } + + tNode.iPDPFsmContextId = tNode.iPdpFsmInterface->NewFsmContextL(tNode,SpudMan::EPrimary); + + tNode.PostToClients( iContext.NodeId(), TCFMessage::TStateChange( Elements::TStateChange(KPsdFinishedConfiguration, KErrNone)).CRef(), TClientType(TCFClientType::ECtrlProvider)); - - iContext.Node().PostToClients( + + tNode.PostToClients( iContext.NodeId(), TCFMessage::TStateChange( Elements::TStateChange(KPsdStartingActivation, KErrNone)).CRef(), TClientType(TCFClientType::ECtrlProvider)); - - ASSERT(iContext.Node().iPDPFsmContextId == KPrimaryContextId); - iContext.Node().iContextType=SpudMan::EPrimary; - iContext.Node().iPdpFsmInterface->Set(KPrimaryContextId, gprsProvision->GetScratchContextAs()); - //Set default QoS - iContext.Node().iPdpFsmInterface->Set(KPrimaryContextId, *qosParams); + + ASSERT(tNode.iPDPFsmContextId == KPrimaryContextId); + tNode.iContextType=SpudMan::EPrimary; + tNode.iPdpFsmInterface->Set(KPrimaryContextId, gprsProvision->GetScratchContextAs()); + //Set default QoS + tNode.iPdpFsmInterface->Set(KPrimaryContextId, *qosParams); //Set default TFTs - iContext.Node().iPdpFsmInterface->Set(KPrimaryContextId, tft); // ignore any error + tNode.iPdpFsmInterface->Set(KPrimaryContextId, tft); // ignore any error //Start the primary. - User::LeaveIfError(iContext.Node().iPdpFsmInterface->Input(KPrimaryContextId, SpudMan::ECreatePrimaryPDPContext)); + User::LeaveIfError(tNode.iPdpFsmInterface->Input(KPrimaryContextId, SpudMan::ECreatePrimaryPDPContext)); iContext.iNodeActivity->ClearPostedTo(); - iContext.Node().iActivityAwaitingResponse = iContext.iNodeActivity->ActivityId(); + tNode.iActivityAwaitingResponse = iContext.iNodeActivity->ActivityId(); } DEFINE_SMELEMENT(TOverrideProvision, NetStateMachine::MStateTransition, PDPSCprStates::TContext) @@ -1464,33 +1543,48 @@ iContext.Node().iActivityAwaitingResponse = iContext.iNodeActivity->ActivityId(); } +DEFINE_SMELEMENT(TCleanupFSM, NetStateMachine::MStateTransition, PDPSCprStates::TContext) +void TCleanupFSM::DoL() + { + CPDPSubConnectionProvider &tNode = static_cast(iContext.Node()); + + if (tNode.iPDPFsmContextId != CPDPSubConnectionProvider::EInvalidContextId) + { + + // removing the memory associated with the context - this should hopefully + // ensure that the memory allocations that happen afterwards can be + // accomplished without OOM errors + + tNode.iPdpFsmInterface->DeleteFsmContext(tNode.iPDPFsmContextId); + + if (tNode.ContentionRequested() == EFalse) + { + CSubConGenEventSubConDown* event = CSubConGenEventSubConDown::NewL(); + CleanupStack::PushL(event); + tNode.NotifyClientsL(*event); + CleanupStack::Pop(event); + } + + if (tNode.iPDPFsmContextId == KPrimaryContextId) + { + tNode.PostToClients( + iContext.NodeId(), + TCFMessage::TStateChange( + Elements::TStateChange(KPsdFinishedDeactivation, KErrNone)).CRef(), + TClientType(TCFClientType::ECtrlProvider)); + } + + tNode.iPDPFsmContextId = CPDPSubConnectionProvider::EInvalidContextId; + + } + } + + DEFINE_SMELEMENT(TAwaitingPDPContextDestroyed, NetStateMachine::MState, PDPSCprStates::TContext) TBool TAwaitingPDPContextDestroyed::Accept() { if (TAwaitingPDPFSMMessage::Accept(KContextDeleteEvent)) { - if (iContext.Node().iPDPFsmContextId != CPDPSubConnectionProvider::EInvalidContextId) - { - if (!iContext.Node().ContentionRequested()) - { - CSubConGenEventSubConDown* event = CSubConGenEventSubConDown::NewL(); - CleanupStack::PushL(event); - iContext.Node().NotifyClientsL(*event); - CleanupStack::Pop(event); - } - - if (iContext.Node().iPDPFsmContextId == KPrimaryContextId) - { - iContext.Node().PostToClients( - iContext.NodeId(), - TCFMessage::TStateChange( - Elements::TStateChange(KPsdFinishedDeactivation, KErrNone)).CRef(), - TClientType(TCFClientType::ECtrlProvider)); - } - - iContext.Node().iPdpFsmInterface->DeleteFsmContext(iContext.Node().iPDPFsmContextId); - iContext.Node().iPDPFsmContextId = CPDPSubConnectionProvider::EInvalidContextId; - } return ETrue; } return EFalse; diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/test/controlplane/group/BLD.INF --- a/telephonyprotocols/pdplayer/test/controlplane/group/BLD.INF Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/test/controlplane/group/BLD.INF Thu May 27 14:05:07 2010 +0300 @@ -31,11 +31,11 @@ ../configs/te_controlplanenetworksideloopbackcsy.ini z:/testdata/configs/te_controlplanenetworksideloopbackcsy.ini -../scripts/te_PDP_ControlPlane.script z:/testdata/scripts/te_PDP_ControlPlane.script -../scripts/te_PDP_ControlPlane28.script z:/testdata/scripts/te_PDP_ControlPlane28.script -../scripts/te_PDP_ControlPlane29.script z:/testdata/scripts/te_PDP_ControlPlane29.script +../scripts/te_PDP_ControlPlane.script z:/testdata/scripts/te_pdp_controlplane.script +../scripts/te_PDP_ControlPlane28.script z:/testdata/scripts/te_pdp_controlplane28.script +../scripts/te_PDP_ControlPlane29.script z:/testdata/scripts/te_pdp_controlplane29.script -te_PDPControlPlane.iby /epoc32/rom/include/te_PDPControlPlane.iby +te_PDPControlPlane.iby /epoc32/rom/include/te_pdpcontrolplane.iby PRJ_MMPFILES diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/pdplayer/umts/test/Te_UmtsGprsSCPR/scripts/te_cap_umtsgprsscpr_noqostestnif.script --- a/telephonyprotocols/pdplayer/umts/test/Te_UmtsGprsSCPR/scripts/te_cap_umtsgprsscpr_noqostestnif.script Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/pdplayer/umts/test/Te_UmtsGprsSCPR/scripts/te_cap_umtsgprsscpr_noqostestnif.script Thu May 27 14:05:07 2010 +0300 @@ -179,7 +179,7 @@ //! @SYMTestStatus Implemented //! @SYMTestType CIT RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script -CED -i z:\testdata\configs\te_umtsgprsscpr_captest.xml ced.log +CED -i z:\testdata\configs\te_umtsgprsscpr_captest.cfg ced.log RUN_SCRIPT Z:\TestData\Scripts\te_Cap_UmtsGprsScprConfig1Case2.script END_TESTCASE NET-UMTS-UmtsGprsSCPR-0206 diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/qos3gppcpr/group/bld.inf --- a/telephonyprotocols/qos3gppcpr/group/bld.inf Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/qos3gppcpr/group/bld.inf Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-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" @@ -18,7 +18,7 @@ PRJ_EXPORTS ../inc/Qos3GPP_subconparams.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(networking/qos3gpp_subconparams.h) ../inc/Qos3GPP_subconparams.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(networking/qos3gpp_subconparams.inl) -../inc/Qos3GPP_subconparams_factory.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(networking/qos3GPP_subconparams_factory.h) +../inc/Qos3GPP_subconparams_factory.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(networking/qos3gpp_subconparams_factory.h) ../group/Qos3GPP.iby /epoc32/rom/include/qos3gpp.iby diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h --- a/telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-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" @@ -26,8 +26,6 @@ #define QOS3GPP_SUBCONPARAMS_H #include -#include -#include #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS #include @@ -253,7 +251,7 @@ }; #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS -#include +#include #endif #include diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/rawipnif/group/BLD.INF --- a/telephonyprotocols/rawipnif/group/BLD.INF Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/rawipnif/group/BLD.INF Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-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" @@ -37,8 +37,8 @@ PRJ_TESTEXPORTS // epoc.ini alternative and batchfile for replacement -../DATA/epocrawip.ini z:/testdata/configs/epocrawip.ini -../DATA/replaceepocrawipini.bat z:/testdata/configs/replaceepocrawipini.bat +../data/epocrawip.ini z:/testdata/configs/epocrawip.ini +../data/replaceepocrawipini.bat z:/testdata/configs/replaceepocrawipini.bat PRJ_MMPFILES diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/rawipnif/inc/Receiver.h --- a/telephonyprotocols/rawipnif/inc/Receiver.h Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/rawipnif/inc/Receiver.h Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2002-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" @@ -37,7 +37,9 @@ // Inherited from CActive. virtual void RunL(); + virtual TInt RunError(TInt aError); virtual void DoCancel(); + void StartListening(); private: diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/rawipnif/src/Receiver.cpp --- a/telephonyprotocols/rawipnif/src/Receiver.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/rawipnif/src/Receiver.cpp Thu May 27 14:05:07 2010 +0300 @@ -143,6 +143,13 @@ } } +TInt CReceiver::RunError(TInt aError) + { + _LOG_L2C1(_L8("WARNING! CReceiver::RunError Read failed")); + iObserver.Stop(aError); + return KErrNone; + } + void CReceiver::DoCancel() /** * Cancel active request diff -r 8767c6acf334 -r 8ab6687fb94c telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group/BLD.INF --- a/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group/BLD.INF Fri May 14 17:02:16 2010 +0300 +++ b/telephonyprotocols/secondarypdpcontextumtsdriver/te_spudNetworkSide/group/BLD.INF Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2005-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" @@ -28,13 +28,13 @@ ../scripts/version1/TE_spudNetworkSide.script z:/testdata/scripts/te_spudnetworkside.script ../scripts/version1/TE_spudNetworkSide_nifman.script z:/testdata/scripts/te_spudnetworkside_nifman.script ../scripts/version1/TE_PppSize_spud.script z:/testdata/scripts/te_pppsize_spud.script -../scripts/version1/TE_SpudNetworkside_Channel.script z:/testdata/scripts/Te_SpudNetworkside_Channel.script +../scripts/version1/TE_SpudNetworkside_Channel.script z:/testdata/scripts/te_spudnetworkside_channel.script #else // script files ../scripts/TE_spudNetworkSide.script z:/testdata/scripts/te_spudnetworkside.script ../scripts/TE_spudNetworkSide_nifman.script z:/testdata/scripts/te_spudnetworkside_nifman.script ../scripts/TE_PppSize_spud.script z:/testdata/scripts/te_pppsize_spud.script -../scripts/TE_SpudNetworkside_Channel.script z:/testdata/scripts/Te_SpudNetworkside_Channel.script +../scripts/TE_SpudNetworkside_Channel.script z:/testdata/scripts/te_spudnetworkside_channel.script ../scripts/TE_spudNetworkSide_R4_and_R5.script z:/testdata/scripts/te_spudnetworkside_r4_and_r5.script #endif @@ -59,7 +59,7 @@ ../configs/version1/TE_PppSize_spud.xml z:/testdata/configs/te_pppsize_spud.xml ../configs/version1/TE_PppSize_config.txt z:/testdata/configs/te_pppsize_config.txt -../configs/version1/TE_SpudNetworkSide_Channel_config.txt z:/testdata/configs/TE_SpudNetworkSide_Channel_config.txt +../configs/version1/TE_SpudNetworkSide_Channel_config.txt z:/testdata/configs/te_spudnetworkside_channel_config.txt // Some error codes are platsec dependent ../configs/version1/TE_SpudNetworkSide_9x.ini z:/testdata/configs/te_spudnetworkside_platsec.ini @@ -81,7 +81,7 @@ ../configs/TE_PppSize_spud.xml z:/testdata/configs/te_pppsize_spud.xml ../configs/TE_PppSize_config.txt z:/testdata/configs/te_pppsize_config.txt -../configs/TE_SpudNetworkSide_Channel_config.txt z:/testdata/configs/TE_SpudNetworkSide_Channel_config.txt +../configs/TE_SpudNetworkSide_Channel_config.txt z:/testdata/configs/te_spudnetworkside_channel_config.txt // Some error codes are platsec dependent ../configs/TE_SpudNetworkSide_9x.ini z:/testdata/configs/te_spudnetworkside_platsec.ini diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/commontsy/inc/tflogger.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/tflogger.h Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/tflogger.h Thu May 27 14:05:07 2010 +0300 @@ -31,7 +31,6 @@ // UDEB BUILD: #define TF_LOGGING_METHOD 3 // 0 = No logging, // 1 = Flogger, - // 2 = RDebug // 3 = CommsDebug #endif @@ -47,10 +46,6 @@ _LIT(KTfLogFolder,"TF"); _LIT(KTfLogFile,"TFLOG.TXT"); -#elif TF_LOGGING_METHOD == 2 // RDebug - -#include - #elif TF_LOGGING_METHOD == 3 // CommsDebug #include @@ -77,15 +72,6 @@ #define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KTfLogFolder(),KTfLogFile(),EFileLoggingModeAppend,TRefByValue(tempLogDes()),BBB,CCC,DDD); } while (0) -#elif TF_LOGGING_METHOD == 2 // RDebug - -#define TFLOGTEXT(AAA) RDebug::Print(AAA) -#define TFLOGSTRING(AAA) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes); } while (0) -#define TFLOGSTRING2(AAA,BBB) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB); } while (0) -#define TFLOGSTRING3(AAA,BBB,CCC) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB, CCC); } while (0) -#define TFLOGSTRING4(AAA,BBB,CCC,DDD) /*lint --e{717}, --e{1534} */ do { _LIT(tempLogDes,AAA); RDebug::Print(tempLogDes, BBB, CCC, DDD); } while (0) - - #elif TF_LOGGING_METHOD == 3 // CommsDebug _LIT8(KTSYSubSystem, "tsy"); #ifdef TF_SAT_LOGGING @@ -110,7 +96,7 @@ #endif // TF_LOGGING_METHOD -#if TF_LOGGING_METHOD == 1 || TF_LOGGING_METHOD == 2 +#if TF_LOGGING_METHOD == 1 // Note, #x and __FILE__ must be stored to char string first, making them 16bit // strings with _LIT will not work in all compilers. @@ -130,7 +116,7 @@ #define TF_ASSERT(x) #define TF_ASSERT_NOT_REACHED() -#endif // TF_LOGGING_METHOD == 1 || TF_LOGGING_METHOD == 2 +#endif // TF_LOGGING_METHOD == 1 #endif // __TFLOGGER_H__ diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/group/bld.inf --- a/telephonyserverplugins/common_tsy/group/bld.inf Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/group/bld.inf Thu May 27 14:05:07 2010 +0300 @@ -108,8 +108,8 @@ // ConfML files ../conf/ctsy.confml OS_LAYER_EXPORTS_CONFML(ctsy.confml) -../conf/ctsy_10282DFE.crml OS_LAYER_EXPORTS_CRML(ctsy_10282DFE.crml) -../conf/ctsy_102029A2.crml OS_LAYER_EXPORTS_CRML(ctsy_102029A2.crml) +../conf/ctsy_10282DFE.crml OS_LAYER_EXPORTS_CRML(ctsy_10282dfe.crml) +../conf/ctsy_102029A2.crml OS_LAYER_EXPORTS_CRML(ctsy_102029a2.crml) ../conf/ctsy_10282826.crml OS_LAYER_EXPORTS_CRML(ctsy_10282826.crml) ../conf/ctsy_10282827.crml OS_LAYER_EXPORTS_CRML(ctsy_10282827.crml) diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group/bld.inf --- a/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group/bld.inf Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsydll/group/bld.inf Thu May 27 14:05:07 2010 +0300 @@ -14,8 +14,8 @@ // PRJ_TESTEXPORTS -../inc/rmockltsy.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(test/rmockltsy.h) -../inc/tmockltsydata.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(test/tmockltsydata.h) +../inc/rmockltsy.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(test/rmockltsy.h) +../inc/tmockltsydata.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(test/tmockltsydata.h) PRJ_TESTMMPFILES mockltsydll.mmp diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/test/integration/group/bld.inf --- a/telephonyserverplugins/common_tsy/test/integration/group/bld.inf Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/integration/group/bld.inf Thu May 27 14:05:07 2010 +0300 @@ -13,6 +13,9 @@ // Description: // +//To resolve RPS dependency for integration tests +// RPS +#include "../../RPS/group/bld.inf" PRJ_EXPORTS @@ -120,8 +123,6 @@ PRJ_TESTMMPFILES -//To resolve RPS dependency for integration tests -// RPS -#include "../../RPS/group/bld.inf" + te_ctsyintegrationtestsuite.mmp diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestairtimeduration.cpp --- a/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestairtimeduration.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/integration/src/cctsyintegrationtestairtimeduration.cpp Thu May 27 14:05:07 2010 +0300 @@ -103,12 +103,6 @@ // // TEST START // - - // Check RMobilePhone::GetAirTimeDuration returns duration == 0. - TTimeIntervalSeconds timeBeforeDial; - TTimeIntervalSeconds timeAfterDial; - ASSERT_EQUALS(customApi.GetAirTimeDuration(timeBeforeDial), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error")) - ASSERT_EQUALS(timeBeforeDial.Int(),0,_L("RMmCustomAPI::GetAirTimeDuration did not return zero time duration as expected")) // Dial a number that answers. TPtrC number; @@ -120,14 +114,19 @@ ASSERT_EQUALS(WaitForRequestWithTimeOut(dialStatus, ETimeMedium), KErrNone, _L("RCall::Dial timed-out")) ASSERT_EQUALS(dialStatus.Int(), KErrNone, _L("RCall::Dial returned with an error")) + // Note that the air time reported before dialing a call is the last call airtime + TTimeIntervalSeconds timeOne; + TTimeIntervalSeconds timeTwo; + ASSERT_EQUALS(customApi.GetAirTimeDuration(timeOne), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error")) + // Wait for two second and check RMobilePhone::GetAirTimeDuration returns duration > previous duration. Repeat for 20 seconds. TInt count=1; do { User::After(KOneSecond*2); - ASSERT_EQUALS(customApi.GetAirTimeDuration(timeAfterDial), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error")) - ASSERT_TRUE(timeAfterDial.Int()>timeBeforeDial.Int(),_L("RMmCustomAPI::GetAirTimeDuration did not return bigger time duration then the previous one")) - timeBeforeDial=timeAfterDial; + ASSERT_EQUALS(customApi.GetAirTimeDuration(timeTwo), KErrNone, _L("RMmCustomAPI::GetAirTimeDuration returned with an error")) + ASSERT_TRUE(timeTwo.Int()>timeOne.Int(),_L("RMmCustomAPI::GetAirTimeDuration did not return bigger time duration then the previous one")) + timeOne=timeTwo; count++; }while(count!=10); diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/test/integration/src/comparisonfunctions.cpp --- a/telephonyserverplugins/common_tsy/test/integration/src/comparisonfunctions.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/integration/src/comparisonfunctions.cpp Thu May 27 14:05:07 2010 +0300 @@ -206,18 +206,28 @@ { if(aLogError == ELogError) { + TBuf<255> apn, username, password; + apn.Copy(iValue.iAccessPointName); + username.Copy(iValue.iProtocolConfigOption.iAuthInfo.iUsername); + password.Copy(iValue.iProtocolConfigOption.iAuthInfo.iPassword); _LIT(KAssertRPacketContextErrorEqualsTextA,"FAILURE"); _LIT(KAssertRPacketContextErrorEqualsTextB," Got apn=%S,username=%S,password=%S"); _LIT(KAssertRPacketContextErrorEqualsTextC," Expected apn=%S,username=%S,password=%S"); ERR_PRINTF1(KAssertRPacketContextErrorEqualsTextA); ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextB, - &iValue.iAccessPointName, - &iValue.iProtocolConfigOption.iAuthInfo.iUsername, - &iValue.iProtocolConfigOption.iAuthInfo.iPassword); + &apn, + &username, + &password); + apn.SetLength(0); + username.SetLength(0); + password.SetLength(0); + apn.Copy(iExpected.iAccessPointName); + username.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iUsername); + password.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iPassword); ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextC, - &iExpected.iAccessPointName, - &iExpected.iProtocolConfigOption.iAuthInfo.iUsername, - &iExpected.iProtocolConfigOption.iAuthInfo.iPassword); + &apn, + &username, + &password); } return EFalse; } @@ -246,18 +256,30 @@ { if(aLogError == ELogError) { + TBuf<255> apn, username, password; + apn.Copy(iValue.iAccessPointName); + username.Copy(iValue.iProtocolConfigOption.iAuthInfo.iUsername); + password.Copy(iValue.iProtocolConfigOption.iAuthInfo.iPassword); + _LIT(KAssertRPacketContextErrorEqualsTextA,"FAILURE"); _LIT(KAssertRPacketContextErrorEqualsTextB," Got apn=%S,username=%S,password=%S"); _LIT(KAssertRPacketContextErrorEqualsTextC," Expected apn=%S,username=%S,password=%S"); ERR_PRINTF1(KAssertRPacketContextErrorEqualsTextA); ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextB, - &iValue.iAccessPointName, - &iValue.iProtocolConfigOption.iAuthInfo.iUsername, - &iValue.iProtocolConfigOption.iAuthInfo.iPassword); + &apn, + &username, + &password); + apn.SetLength(0); + username.SetLength(0); + password.SetLength(0); + apn.Copy(iExpected.iAccessPointName); + username.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iUsername); + password.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iPassword); ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextC, - &iExpected.iAccessPointName, - &iExpected.iProtocolConfigOption.iAuthInfo.iUsername, - &iExpected.iProtocolConfigOption.iAuthInfo.iPassword); + &apn, + &username, + &password); + } return EFalse; } @@ -286,18 +308,28 @@ { if(aLogError == ELogError) { + TBuf<255> apn, username, password; + apn.Copy(iValue.iAccessPointName); + username.Copy(iValue.iProtocolConfigOption.iAuthInfo.iUsername); + password.Copy(iValue.iProtocolConfigOption.iAuthInfo.iPassword); _LIT(KAssertRPacketContextErrorEqualsTextA,"FAILURE"); _LIT(KAssertRPacketContextErrorEqualsTextB," Got apn=%S,username=%S,password=%S"); _LIT(KAssertRPacketContextErrorEqualsTextC," Expected apn=%S,username=%S,password=%S"); ERR_PRINTF1(KAssertRPacketContextErrorEqualsTextA); ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextB, - &iValue.iAccessPointName, - &iValue.iProtocolConfigOption.iAuthInfo.iUsername, - &iValue.iProtocolConfigOption.iAuthInfo.iPassword); + &apn, + &username, + &password); + apn.SetLength(0); + username.SetLength(0); + password.SetLength(0); + apn.Copy(iExpected.iAccessPointName); + username.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iUsername); + password.Copy(iExpected.iProtocolConfigOption.iAuthInfo.iPassword); ERR_PRINTF4(KAssertRPacketContextErrorEqualsTextC, - &iExpected.iAccessPointName, - &iExpected.iProtocolConfigOption.iAuthInfo.iUsername, - &iExpected.iProtocolConfigOption.iAuthInfo.iPassword); + &apn, + &username, + &password); } return EFalse; } diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/common_tsy/test/integration/testdata/ctsyintegration_ntn_data.ini --- a/telephonyserverplugins/common_tsy/test/integration/testdata/ctsyintegration_ntn_data.ini Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/common_tsy/test/integration/testdata/ctsyintegration_ntn_data.ini Thu May 27 14:05:07 2010 +0300 @@ -156,5 +156,5 @@ PhoneLock=12345 [SIMParams] -Puk1= -Puk2= +Puk1=11111111 +Puk2=22222222 diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/ctsydispatchlayer/src/cphonebookdispatcher.cpp --- a/telephonyserverplugins/ctsydispatchlayer/src/cphonebookdispatcher.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/ctsydispatchlayer/src/cphonebookdispatcher.cpp Thu May 27 14:05:07 2010 +0300 @@ -1049,7 +1049,7 @@ * @param aPhonebook The phonebook to reset the cache for. */ { - TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d"), aError, aPhonebook); + TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d"), aError, aPhonebook); __ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter)); @@ -1071,8 +1071,8 @@ * @param aMaxNumberLength The maximum number length in the Fdn phonebook. */ { - TSYLOGENTRYEXITARGS(_L8("aError=%d,aTotalEntries=%d,aMaxTextLength=%d,aMaxNumberLength=%d"), - aError,aTotalEntries,aMaxTextLength,aMaxNumberLength); + TSYLOGENTRYEXITARGS(_L8("aError=%d, aTotalEntries=%d, aMaxTextLength=%d, aMaxNumberLength=%d"), + aError, aTotalEntries, aMaxTextLength, aMaxNumberLength); TName phoneBookName(KETelIccFdnPhoneBook); CPhoneBookDataPackage phoneBookDataPackage; @@ -1104,7 +1104,7 @@ * @see CPhoneBookEntry::ExternalizeToTlvEntry() */ { - TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d"), aError, aPhonebook); + TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d"), aError, aPhonebook); __ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter)); @@ -1115,11 +1115,11 @@ if((aError == KErrNone) && (aPhonebook != DispatcherPhonebook::EUnknown)) { - //fill the CTSY pointer - CArrayPtrSeg* readEntries = new(ELeave) CArrayPtrSeg(1); - iPhonebookReadPtrs[aPhonebook] = readEntries; - - TRAP(aError,FillCtsyPhoneBookStoreL(aPhonebookEntries,*(iPhonebookReadPtrs[aPhonebook]))); + //fill the CTSY pointer + TRAP ( aError, + CArrayPtrSeg* readEntries = new(ELeave) CArrayPtrSeg(1); + iPhonebookReadPtrs[aPhonebook] = readEntries; + FillCtsyPhoneBookStoreL(aPhonebookEntries,*(iPhonebookReadPtrs[aPhonebook]))); } CPhoneBookDataPackage phoneBookDataPackage; @@ -1174,7 +1174,7 @@ * @see CPhoneBookEntry::ExternalizeToTlvEntry() */ { - TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d"), aError, aPhonebook); + TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d"), aError, aPhonebook); __ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter)); @@ -1185,10 +1185,10 @@ if((aError == KErrNone) && (aPhonebook != DispatcherPhonebook::EUnknown)/* && (iPhonebookCachePtrs[aPhonebook])*/) { - CArrayPtrSeg* readEntries = new(ELeave) CArrayPtrSeg(1); - iPhonebookCachePtrs[aPhonebook] = readEntries; - - TRAP(aError,FillCtsyPhoneBookStoreL(aPhonebookEntries, *(iPhonebookCachePtrs[aPhonebook]))); + TRAP(aError, + CArrayPtrSeg* readEntries = new(ELeave) CArrayPtrSeg(1); + iPhonebookCachePtrs[aPhonebook] = readEntries; + FillCtsyPhoneBookStoreL(aPhonebookEntries, *(iPhonebookCachePtrs[aPhonebook]))); if(aError) { @@ -1337,7 +1337,7 @@ * @see RMobilePhoneBookStore::Write() */ { - TSYLOGENTRYEXITARGS(_L8("aError=%d,aPhonebook=%d,aIndex=%d,aMaxNumberLength=%d"), aError, aPhonebook, aIndex, aMaxNumberLength); + TSYLOGENTRYEXITARGS(_L8("aError=%d, aPhonebook=%d, aIndex=%d, aMaxNumberLength=%d"), aError, aPhonebook, aIndex, aMaxNumberLength); __ASSERT_DEBUG(aPhonebook != DispatcherPhonebook::EUnknown, CtsyDispatcherPanic(EInvalidParameter)); diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/simtsy/inc/CSimMbmsPacketContext.h --- a/telephonyserverplugins/simtsy/inc/CSimMbmsPacketContext.h Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/simtsy/inc/CSimMbmsPacketContext.h Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-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" @@ -196,7 +196,7 @@ TInt GetMbmsSessionsPhase2(const TTsyReqHandle aTsyReqHandle, TClientId* aClient, TDes8* aBufSize); TInt GetMbmsSessionsCancel(const TTsyReqHandle aTsyReqHandle); - TInt UpdateMbmsSessionListL(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId); + TInt UpdateMbmsSessionList(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId); TInt UpdateMbmsSessionListCancel(const TTsyReqHandle aTsyReqHandle); TInt InitialiseContext(const TTsyReqHandle aTsyReqHandle, TDes8* aDataChannelV2Pckg); // This method supersedes the LoanCommPort() and RecoverCommPort() methods. diff -r 8767c6acf334 -r 8ab6687fb94c telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp --- a/telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp Fri May 14 17:02:16 2010 +0300 +++ b/telephonyserverplugins/simtsy/src/CSimMbmsPacketContext.cpp Thu May 27 14:05:07 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-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" @@ -477,7 +477,7 @@ return GetStatus(aTsyReqHandle, REINTERPRET_CAST(RPacketContext::TContextStatus*, dataPtr)); case EPacketContextUpdateMbmsSessionList: - return UpdateMbmsSessionListL(aTsyReqHandle, + return UpdateMbmsSessionList(aTsyReqHandle, REINTERPRET_CAST(TMbmsAction*, dataPtr), REINTERPRET_CAST(TUint*, dataPtr2)); case EPacketContextInitialiseContext: @@ -1130,7 +1130,7 @@ return KErrNone; } -TInt CSimMbmsPacketContext::UpdateMbmsSessionListL(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId) +TInt CSimMbmsPacketContext::UpdateMbmsSessionList(const TTsyReqHandle aTsyReqHandle,TMbmsAction* aAction, TUint* aSessionId) /** * client's interest in updating the MBMS session's list. * This is achieved by updating the list maintained internally by the context @@ -1141,7 +1141,7 @@ * @return KErrNone */ { - LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL called"); + LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList called"); TInt error=KErrNone; iUpdateSessionHandle = aTsyReqHandle; @@ -1151,29 +1151,34 @@ switch(*aAction) { case SIMTSY_PACKET_MBMS_ADD_ENTRIES: - LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: ADD "); - TRAP(error,iSessionIdList->AppendL(*aSessionId)); - if(error == KErrNone) - { - //iSessionIdList->At(0) = ++iNumOfSessionId; - iSessionIdList->Delete(0); - iSessionIdList->InsertL(0,++iNumOfSessionId); - iMbmsUpdateSessionTimer->Start(RandTime(),this,ETimerIdMbmsUpdateSessionId); - } - else + LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: ADD "); + + // TRAP can contain multiple statments + TRAP(error,iSessionIdList->AppendL(*aSessionId); + //iSessionIdList->At(0) = ++iNumOfSessionId; + iSessionIdList->Delete(0); + iSessionIdList->InsertL(0,++iNumOfSessionId)); + + iMbmsUpdateSessionTimer->Start(RandTime(),this,ETimerIdMbmsUpdateSessionId); + + if(error != KErrNone) { ReqCompleted(iUpdateSessionHandle,error); } break; case SIMTSY_PACKET_MBMS_REM_ENTRIES: - LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: REMOVE "); + LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE "); iSessionIdList->Find(*aSessionId,key,position); if(position != -1) { iSessionIdList->Delete(position); //iSessionIdList->At(0) = --iNumOfSessionId; - iSessionIdList->InsertL(0,--iNumOfSessionId); + TRAP(error, iSessionIdList->InsertL(0,--iNumOfSessionId)); + if(error != KErrNone) + { + ReqCompleted(iUpdateSessionHandle,error); + } iMbmsUpdateSessionTimer->Start(RandTime(),this,ETimerIdMbmsUpdateSessionId); } else @@ -1184,16 +1189,20 @@ break; case SIMTSY_PACKET_MBMS_REM_ALL_ENTRIES: - LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: REMOVE_ALL "); + LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: REMOVE_ALL "); iNumOfSessionId=0; //iSessionIdList->At(0) = iNumOfSessionId; - iSessionIdList->InsertL(0,iNumOfSessionId); + TRAP(error, iSessionIdList->InsertL(0,iNumOfSessionId)); + if(error != KErrNone) + { + ReqCompleted(iUpdateSessionHandle,error); + } iSessionIdList->Delete(1,iSessionIdList->Count()); // removing all session ids from the list ReqCompleted(aTsyReqHandle, KErrNone); break; default: - LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionListL Action: Default "); + LOGPACKET1("CSimMbmsPacketContext::UpdateMbmsSessionList Action: Default "); ReqCompleted(aTsyReqHandle,KErrNotFound); break; }