--- a/telephonyprotocols/pdplayer/src/pdpmcpr.cpp Tue Feb 02 01:41:59 2010 +0200
+++ b/telephonyprotocols/pdplayer/src/pdpmcpr.cpp Fri Mar 19 09:55:57 2010 +0200
@@ -20,15 +20,16 @@
@internalComponent
*/
+#include <etelqos.h>
+#include <comms-infras/agentmcpractivities.h>
+#include <comms-infras/coremcpractivities.h>
+#include <comms-infras/ss_msgintercept.h>
+#include <elements/nm_messages_errorrecovery.h>
#include <comms-infras/ss_log.h>
#include "pdpmcpr.h"
#include "pdpmcprstates.h"
#include "PDPProvision.h"
#include "psdavailabilitylistener.h"
-#include <comms-infras/agentmcpractivities.h>
-#include <comms-infras/coremcpractivities.h>
-#include <comms-infras/ss_msgintercept.h>
-#include <elements/nm_messages_errorrecovery.h>
using namespace Messages;
using namespace MeshMachine;
@@ -153,17 +154,26 @@
mec.AppendExtensionL(gprsProvision);
CleanupStack::Pop(gprsProvision);
- //It's legal for the qos defaults to be absent.
- //in this case they're going to be supplied by
- //GuQoS.
+ //It's not legal for the qos defaults to be absent.
CDefaultPacketQoSProvision* defaultQoS = NULL;
- TRAP_IGNORE(defaultQoS = CDefaultPacketQoSProvision::NewL(iapView));
- if (defaultQoS)
- {
- CleanupStack::PushL(defaultQoS);
- mec.AppendExtensionL(defaultQoS);
- CleanupStack::Pop(defaultQoS);
- }
+ TRAPD(ret, defaultQoS = CDefaultPacketQoSProvision::NewL(iapView));
+ if ((KErrNone == ret) && defaultQoS)
+ {
+ CleanupStack::PushL(defaultQoS);
+ mec.AppendExtensionL(defaultQoS);
+ CleanupStack::Pop(defaultQoS);
+ }
+ else
+ {
+ if (KErrNoMemory == ret)
+ {
+ User::Leave(KErrNoMemory);
+ }
+ else
+ {
+ User::Leave(KErrCorrupt);
+ }
+ }
CRawIpAgentConfig* rawIpAgentConfig = CRawIpAgentConfig::NewLC(iapView, &gprsProvision->GetScratchContextAs<TPacketDataConfigBase>());
mec.AppendExtensionL(rawIpAgentConfig);