diff -r 7f379d8ed02d -r 96b4f933d69a telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp Tue Oct 19 18:11:09 2010 +0300 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmussdtsy.cpp Thu Nov 04 20:30:45 2010 +0200 @@ -195,7 +195,7 @@ } break; case EMobileUssdMessagingSendMessageDefaultHandler: - { + { iUssdNoFdnCheckFlag = EUssdNoFdnCheckNotUsed; iSendToDefaultHandler = ETrue; ret = SendMessageL( @@ -563,7 +563,7 @@ TDes8* unpackedReceiveUssdMessagePtr = NULL; RMobileUssdMessaging::TMobileUssdAttributesV1* unpackedReceiveUssdMessageAttributesPtr = NULL; aDataPackage->UnPackData (&unpackedReceiveUssdMessagePtr, &unpackedReceiveUssdMessageAttributesPtr); - + if(iReceiveUssdMessagePtr->MaxLength() >= unpackedReceiveUssdMessagePtr->Length()) { *iReceiveUssdMessagePtr = *unpackedReceiveUssdMessagePtr; @@ -572,7 +572,7 @@ else { aError = KErrArgument; - } + } } ReqCompleted( reqHandle, aError ); } @@ -623,12 +623,10 @@ } else //default handler { - ret = iMmPhone->MessageManager()->HandleRequestL( + ret = iMmPhone->MessageManager()->HandleRequestL( EMobileUssdMessagingSendMessageDefaultHandler, &package ); } } - - iSsTransactionOngoing = ETrue; } @@ -762,7 +760,7 @@ else// default handler { reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( - EMultimodeUssdSendMessageDefaultHandler ); + EMultimodeUssdSendMessageDefaultHandler ); } // If the session is already in progress then no session management // action is required. Otherwise we either promote the reserved @@ -776,8 +774,10 @@ SetSessionOwnerByTsyHandle( reqHandle ); } else // default handler - { - SetSessionOwnerByTsyHandleAndIpc( reqHandle, EMultimodeUssdSendMessageDefaultHandler ); + { + //this function call will transfer received message to the + //default handler which already has EMobileUssdMessagingReceiveMessage request. + SetSessionOwnerByTsyHandleAndIpc( reqHandle, EMobileUssdMessagingReceiveMessage ); } } else