diff -r fc69e1e37771 -r fe8b59ab9fa0 telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp --- 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