telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp
branchRCL_3
changeset 16 fe8b59ab9fa0
parent 0 3553901f7fa8
child 65 630d2f34d719
--- a/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp	Mon Mar 15 12:45:06 2010 +0200
+++ b/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp	Wed Mar 31 23:24:02 2010 +0300
@@ -121,9 +121,6 @@
     TInt ret = KErrNone;
     TInt trapError = KErrNone;
 
-    // reset last tsy request type
-    iReqHandleType = EMultimodeUssdReqHandleUnknown;
-
     // before processing further the request, check if offline mode status
     // is enabled and if the given request can be perfomed in that case.
     if ( ERfsStateInfoInactive == iMmPhone->GetRfStateInfo() && 
@@ -150,19 +147,8 @@
             {
             ReqCompleted( aTsyReqHandle, ret );
             }
-
-        // save request handle
-        if ( EMultimodeUssdReqHandleUnknown != iReqHandleType )
-            {
-#ifdef REQHANDLE_TIMER
-            SetTypeOfResponse( iReqHandleType, aTsyReqHandle );
-#else
-            iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, 
-                aTsyReqHandle );
-#endif // REQHANDLE_TIMER
-            }
         }
-        
+    
     return KErrNone;
     }
 
@@ -894,13 +880,37 @@
 				{
 				RMobileUssdMessaging::TMobileUssdAttributesV1* tempReturnNotifyUssdMessageAttributesPtr;
 				aDataPackage->UnPackData ( &tempReturnNotifyPtr, &tempReturnNotifyUssdMessageAttributesPtr );
-				*iReturnNotifyPtr = *tempReturnNotifyPtr;
-				*iReturnNotifyUssdMessageAttributesPtr = *tempReturnNotifyUssdMessageAttributesPtr;
+				if (tempReturnNotifyPtr != NULL)
+				    {
+				    *iReturnNotifyPtr = *tempReturnNotifyPtr;
+				    }
+				else
+				    {
+                    iReturnNotifyPtr->iOpCode = KErrNone;
+                    iReturnNotifyPtr->iAdditionalInfo.Append( KErrNone );
+				    }
+				if (tempReturnNotifyUssdMessageAttributesPtr != NULL)
+					{
+					*iReturnNotifyUssdMessageAttributesPtr = *tempReturnNotifyUssdMessageAttributesPtr;
+					}
+				else
+				    {
+                    iReturnNotifyUssdMessageAttributesPtr->iFormat = RMobileUssdMessaging::EFormatUnspecified;
+                    iReturnNotifyUssdMessageAttributesPtr->iType = RMobileUssdMessaging::EUssdUnknown;
+				    }
 				}
             else
 				{
 				aDataPackage->UnPackData ( &tempReturnNotifyPtr );
-				*iReturnNotifyPtr = *tempReturnNotifyPtr;
+				if(tempReturnNotifyPtr != NULL)
+				    {
+                    *iReturnNotifyPtr = *tempReturnNotifyPtr;
+				    }
+				else
+				    {
+                    iReturnNotifyPtr->iOpCode = KErrNone;
+                    iReturnNotifyPtr->iAdditionalInfo.Append( KErrNone );
+				    }
 				}
             }
          // Null ret pointers