--- a/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalapi.cpp Thu Aug 19 10:20:18 2010 +0300
+++ b/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalapi.cpp Tue Aug 31 15:37:04 2010 +0300
@@ -859,7 +859,7 @@
}
parValues.ResetAndDestroy();
- aParamValues.ResetAndDestroy();
+ //coverity[deref_ptr_in_call]
TInt error = iSuplStorageSettings->GetAllSlp(parValues); //handle return value...
if (error!=KErrNone)
{
@@ -905,6 +905,7 @@
delete serverAddress;
delete iapName;
aParamValues.Close();
+ //coverity[check_after_deref]
if (iSuplStorageSettings)
{
delete iSuplStorageSettings;
@@ -1025,7 +1026,15 @@
{
__ASSERT_ALWAYS(SubSessionHandle(),
User::Panic(KSuplClientFault, ESuplServerBadHandle));
-
+
+
+ if(!CheckSuplTriggerServiceStatus()) //To check that triggering service is allowed by user...
+ {
+ TRequestStatus *status = &aStatus;
+ User::RequestComplete(status,KErrNotSupported);
+ return;
+ }
+
if( iSuplService != ESUPL_2_0 )
{
TRequestStatus *status = &aStatus;
@@ -1094,6 +1103,13 @@
__ASSERT_ALWAYS(SubSessionHandle(),
User::Panic(KSuplClientFault, ESuplServerBadHandle));
+ if(!CheckSuplTriggerServiceStatus()) //To check that triggering service is allowed by user...
+ {
+ TRequestStatus *status = &aStatus;
+ User::RequestComplete(status,KErrNotSupported);
+ return;
+ }
+
if( iSuplService != ESUPL_2_0 )
{
TRequestStatus *status = &aStatus;
@@ -1193,6 +1209,13 @@
__ASSERT_ALWAYS(SubSessionHandle(),
User::Panic(KSuplClientFault, ESuplServerBadHandle));
+ if(!CheckSuplTriggerServiceStatus()) //To check that triggering service is allowed by user...
+ {
+ TRequestStatus *status = &aStatus;
+ User::RequestComplete(status,KErrNotSupported);
+ return;
+ }
+
if( iSuplService != ESUPL_2_0 )
{
TRequestStatus *status = &aStatus;
@@ -1232,4 +1255,41 @@
SendReceive(ESuplTerminalSubssnNotifyTriggerFired, args, aStatus);
}
+// ---------------------------------------------------------
+// RSuplTerminalSubSession::CheckSuplTriggerServiceStatus
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TBool RSuplTerminalSubSession::CheckSuplTriggerServiceStatus()
+{
+
+ delete iSuplStorageSettings;
+ iSuplStorageSettings = NULL;
+
+ CSuplSettings::TSuplTriggerStatus suplTriggerStatus;
+
+ // create local object iSuplStorageSettings
+ TRAPD(err,iSuplStorageSettings = CSuplSettings::NewL());
+ if(err == KErrNone)
+ {
+ iSuplStorageSettings->GetSuplTriggeredServiceStatus(suplTriggerStatus);
+ delete iSuplStorageSettings;
+ iSuplStorageSettings = NULL;
+
+ if(suplTriggerStatus == CSuplSettings::ESuplTriggerOn)
+ {
+ return ETrue;
+ }
+ else
+ {
+ return EFalse;
+ }
+ }
+ else
+ {
+ return ETrue;
+ }
+}
+
// end of file