diff -r 02ba3f1733c6 -r 2b4ea9893b66 supl/locationsuplfw/gateway/src/epos_csuplnetinitiatedsession.cpp --- a/supl/locationsuplfw/gateway/src/epos_csuplnetinitiatedsession.cpp Thu Aug 19 10:20:18 2010 +0300 +++ b/supl/locationsuplfw/gateway/src/epos_csuplnetinitiatedsession.cpp Tue Aug 31 15:37:04 2010 +0300 @@ -62,7 +62,13 @@ TInt err = aSessnMgr.GetSUPLMessageVersionL(majorVersion,aClientBuf->Des()); if(majorVersion == 2) - suplService = RSuplTerminalSubSession::ESUPL_2_0; + { + if(!CheckSuplTriggerServiceStatus()) + { + User::Leave(KErrNotSupported); + } + suplService = RSuplTerminalSubSession::ESUPL_2_0; + } else suplService = RSuplTerminalSubSession::ESUPL_1_0; @@ -184,5 +190,41 @@ aSessionMgr->DestroySession(iSuplSession); } +// --------------------------------------------------------- +// CSuplNetInitiatedSession::CheckSuplTriggerServiceStatus +// +// (other items were commented in a header). +// --------------------------------------------------------- +// +TBool CSuplNetInitiatedSession::CheckSuplTriggerServiceStatus() +{ + + CSuplSettings* suplStorageSettings = NULL; + + CSuplSettings::TSuplTriggerStatus suplTriggerStatus; + + // create local object iSuplStorageSettings + TRAPD(err,suplStorageSettings = CSuplSettings::NewL()); + if(err == KErrNone) + { + suplStorageSettings->GetSuplTriggeredServiceStatus(suplTriggerStatus); + delete suplStorageSettings; + suplStorageSettings = NULL; + + if(suplTriggerStatus == CSuplSettings::ESuplTriggerOn) + { + return ETrue; + } + else + { + return EFalse; + } + } + else + { + return ETrue; + } +} + // End of File