--- 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