--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplfallbackhandler.cpp Tue Aug 31 15:37:04 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplfallbackhandler.cpp Wed Sep 01 12:24:21 2010 +0100
@@ -115,11 +115,11 @@
{
iTrace->Trace(_L("COMASuplFallBackHandler::GetNextSLPAddressL"),KTraceFileName, __LINE__);
- _LIT(KFormatTxt,"%/0%1%/1%2%/2%3%/3 %-B%:0%J%:1%T%:2%S%:3%+B");
-
- TBuf<256> LogBuffer;
-
- if( aLastErrorCode != KErrNone)// If its KErrNone then its means server name is asked first time and no need for Tls failure check
+ _LIT(KFormatTxt,"%/0%1%/1%2%/2%3%/3 %-B%:0%J%:1%T%:2%S%:3%+B");
+
+ TBuf<256> LogBuffer;
+
+ if( aLastErrorCode != KErrNone)// If its KErrNone then its means server name is asked first time and no need for Tls failure check
{
if( CheckErrorCodeL(aLastErrorCode) )
@@ -154,7 +154,7 @@
LogBuffer.AppendNum(err);
iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
- CleanupStack::PopAndDestroy(newParam);
+ CleanupStack::PopAndDestroy(&newParam);
}
else
{
@@ -175,7 +175,7 @@
delete iapName;
}
- CleanupStack::PopAndDestroy(param);
+ CleanupStack::PopAndDestroy(¶m);
iTrace->Trace(_L("Fallback allowed & TLSAuth failed"),KTraceFileName, __LINE__);
iTrace->Trace(_L("Server being used:"),KTraceFileName, __LINE__);
@@ -204,150 +204,149 @@
return KErrNotFound;
}
}
+
+ //Check to see if the server list is empty. If it is create the HSLP Address from the IMSI and use that
+ // as the server address. This does not add the server to the list and this functionality should only
+ // be tried once
+ if(iSLPList->Count() <= 0 && (!iAttemptedBackupServer))
+ {
+ iTrace->Trace(_L("Going to create and use alternative HSLP Address from IMSI"),KTraceFileName, __LINE__);
- //Check to see if the server list is empty. If it is create the HSLP Address from the IMSI and use that
- // as the server address. This does not add the server to the list and this functionality should only
- // be tried once
- if(iSLPList->Count() <= 0 && (!iAttemptedBackupServer))
- {
- iTrace->Trace(_L("Going to create and use alternative HSLP Address from IMSI"),KTraceFileName, __LINE__);
+ iAttemptedBackupServer = ETrue;
- iAttemptedBackupServer = ETrue;
-
- //Generate the HSLP Address
- GenerateHslpAddressFromIMSIL();
+ //Generate the HSLP Address
+ GenerateHslpAddressFromIMSIL();
- //Copy the generated address into the supplied function arguments
- aHslpToBeUsedAddress.Copy(iGenratedHslpAddress);
- aIAPName.Zero();
- aIAPName.Copy(iDefaultIAPName);
- aTls = ETrue;
- aPskTls = EFalse;
- aIsIapDialogShown = ETrue;
+ //Copy the generated address into the supplied function arguments
+ aHslpToBeUsedAddress.Copy(iGenratedHslpAddress);
+ aIAPName.Zero();
+ aIAPName.Copy(iDefaultIAPName);
+ aTls = ETrue;
+ aPskTls = EFalse;
+ aIsIapDialogShown = ETrue;
- iTrace->Trace(_L("Server being used:"),KTraceFileName, __LINE__);
- LogBuffer.Copy(aHslpToBeUsedAddress);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+ iTrace->Trace(_L("Server being used:"),KTraceFileName, __LINE__);
+ LogBuffer.Copy(aHslpToBeUsedAddress);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
- iTrace->Trace(_L("iap being used:"),KTraceFileName, __LINE__);
- LogBuffer.Copy(aIAPName);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+ iTrace->Trace(_L("iap being used:"),KTraceFileName, __LINE__);
+ LogBuffer.Copy(aIAPName);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+
+ //Add the server to the list for future connections
+ CServerParams* param=CServerParams::NewL();
+ CleanupStack::PushL(param);
+ User::LeaveIfError(param->Set( iGenratedHslpAddress,iDefaultIAPName,ETrue,ETrue,ETrue,EFalse ));
+
+ TInt err = iSuplSettings.AddNewServer( param, aSLPId ); //Ignore error
+ LogBuffer.Copy(_L("AddNewServer() completed with err: "));
+ LogBuffer.AppendNum(err);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
- //Add the server to the list for future connections
- CServerParams* param=CServerParams::NewL();
- CleanupStack::PushL(param);
- User::LeaveIfError(param->Set( iGenratedHslpAddress,iDefaultIAPName,ETrue,ETrue,ETrue,EFalse ));
-
- TInt err = iSuplSettings.AddNewServer( param, aSLPId ); //Ignore error
- LogBuffer.Copy(_L("AddNewServer() completed with err: "));
- LogBuffer.AppendNum(err);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
- CleanupStack::PopAndDestroy(¶m);
+ CleanupStack::PopAndDestroy(¶m);
- return KErrNone;
- }
-
- if( iSLPList->Count() <= 0 || iCurrentServerCounter >= iSLPList->Count() )
- {
- LogBuffer.Copy(_L("No more servers available..."));
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
- return KErrNotFound;
- }
-
- iTrace->Trace(_L("Trying next server..."),KTraceFileName, __LINE__);
-
- //Fallback Timer...
- if(aLastErrorCode == KErrNone) //This means, server name is asked for first time only...
- {
- iTrace->Trace(_L("Start Time: "),KTraceFileName, __LINE__);
- iFallBackStartTime.HomeTime();
- LogBuffer.Zero();
- iFallBackStartTime.FormatL(LogBuffer,KFormatTxt);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
- }
- else
- {
- TTime currentTime;
- currentTime.HomeTime();
- TTimeIntervalMicroSeconds diff = currentTime.MicroSecondsFrom(iFallBackStartTime);
-
-
- iTrace->Trace(_L("Current Time: "),KTraceFileName, __LINE__);
- LogBuffer.Zero();
- currentTime.FormatL(LogBuffer,KFormatTxt);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
- LogBuffer.Copy(_L("Difference between time: "));
- LogBuffer.AppendNum(diff.Int64());
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
- if( diff.Int64() > iAllowedFallBackTimerValue)
+ return KErrNone;
+ }
+
+ if( iSLPList->Count() <= 0 || iCurrentServerCounter >= iSLPList->Count() )
+ {
+ LogBuffer.Copy(_L("No more servers available..."));
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+ return KErrNotFound;
+ }
+
+ iTrace->Trace(_L("Trying next server..."),KTraceFileName, __LINE__);
+
+ //Fallback Timer...
+ if(aLastErrorCode == KErrNone) //This means, server name is asked for first time only...
+ {
+ iTrace->Trace(_L("Start Time: "),KTraceFileName, __LINE__);
+ iFallBackStartTime.HomeTime();
+ LogBuffer.Zero();
+ iFallBackStartTime.FormatL(LogBuffer,KFormatTxt);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+ }
+ else
{
- LogBuffer.Copy(_L("Timeout happened..."));
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
- return KErrTimedOut;
- }
- }
+ TTime currentTime;
+ currentTime.HomeTime();
+ TTimeIntervalMicroSeconds diff = currentTime.MicroSecondsFrom(iFallBackStartTime);
+
+
+ iTrace->Trace(_L("Current Time: "),KTraceFileName, __LINE__);
+ LogBuffer.Zero();
+ currentTime.FormatL(LogBuffer,KFormatTxt);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+
+ LogBuffer.Copy(_L("Difference between time: "));
+ LogBuffer.AppendNum(diff.Int64());
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+
+ if( diff.Int64() > iAllowedFallBackTimerValue)
+ {
+ LogBuffer.Copy(_L("Timeout happened..."));
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
- if(aLastErrorCode == KErrNone) //This will be called only once...for first time only
- {
- aSLPId = (*iSLPList)[0].iSLPId;
- aHslpToBeUsedAddress.Copy((*iSLPList)[0].iHSLPAddress);
- aIAPName.Copy((*iSLPList)[0].iIapName);
- aTls = (*iSLPList)[0].iTls;
- aPskTls = (*iSLPList)[0].iPskTls;
- aIsIapDialogShown = (*iSLPList)[0].iIsIAPDialgShown;
- iCurrentServerCounter++;
-
- iTrace->Trace(_L("Server being used:"),KTraceFileName, __LINE__);
- LogBuffer.Copy(aHslpToBeUsedAddress);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+ return KErrTimedOut;
+ }
+ }
- iTrace->Trace(_L("iap being used:"),KTraceFileName, __LINE__);
- LogBuffer.Copy(aIAPName);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
- iTrace->Trace(_L("iap dlg configuration:"),KTraceFileName, __LINE__);
- LogBuffer.Delete(0,256);
- LogBuffer.AppendNum(aIsIapDialogShown);
- iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
- return KErrNone;
- }
- else
- {
- if(iIsFallBackAllowed && CheckErrorCodeL(aLastErrorCode))// Do not fallback in case if IMSI generated address failed for previous try.
+ if(aLastErrorCode == KErrNone) //This will be called only once...for first time only
{
- aSLPId = (*iSLPList)[iCurrentServerCounter].iSLPId;
- aHslpToBeUsedAddress.Copy((*iSLPList)[iCurrentServerCounter].iHSLPAddress);
- aIAPName.Copy((*iSLPList)[iCurrentServerCounter].iIapName);
- aTls = (*iSLPList)[iCurrentServerCounter].iTls;
- aPskTls = (*iSLPList)[iCurrentServerCounter].iPskTls;
- aIsIapDialogShown = (*iSLPList)[iCurrentServerCounter].iIsIAPDialgShown;
- iCurrentServerCounter++;
- iTrace->Trace(_L("Fallback allowed & TLSAuth passed"),KTraceFileName, __LINE__);
+ aSLPId = (*iSLPList)[0].iSLPId;
+ aHslpToBeUsedAddress.Copy((*iSLPList)[0].iHSLPAddress);
+ aIAPName.Copy((*iSLPList)[0].iIapName);
+ aTls = (*iSLPList)[0].iTls;
+ aPskTls = (*iSLPList)[0].iPskTls;
+ aIsIapDialogShown = (*iSLPList)[0].iIsIAPDialgShown;
+ iCurrentServerCounter++;
+
iTrace->Trace(_L("Server being used:"),KTraceFileName, __LINE__);
LogBuffer.Copy(aHslpToBeUsedAddress);
iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
+
iTrace->Trace(_L("iap being used:"),KTraceFileName, __LINE__);
LogBuffer.Copy(aIAPName);
iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
-
+
iTrace->Trace(_L("iap dlg configuration:"),KTraceFileName, __LINE__);
LogBuffer.Delete(0,256);
LogBuffer.AppendNum(aIsIapDialogShown);
iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+
return KErrNone;
}
else
{
- return KErrNotFound;
+ if(iIsFallBackAllowed && CheckErrorCodeL(aLastErrorCode))// Do not fallback in case if IMSI generated address failed for previous try.
+ {
+ aSLPId = (*iSLPList)[iCurrentServerCounter].iSLPId;
+ aHslpToBeUsedAddress.Copy((*iSLPList)[iCurrentServerCounter].iHSLPAddress);
+ aIAPName.Copy((*iSLPList)[iCurrentServerCounter].iIapName);
+ aTls = (*iSLPList)[iCurrentServerCounter].iTls;
+ aPskTls = (*iSLPList)[iCurrentServerCounter].iPskTls;
+ aIsIapDialogShown = (*iSLPList)[iCurrentServerCounter].iIsIAPDialgShown;
+ iCurrentServerCounter++;
+ iTrace->Trace(_L("Fallback allowed & TLSAuth passed"),KTraceFileName, __LINE__);
+ iTrace->Trace(_L("Server being used:"),KTraceFileName, __LINE__);
+ LogBuffer.Copy(aHslpToBeUsedAddress);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+
+ iTrace->Trace(_L("iap being used:"),KTraceFileName, __LINE__);
+ LogBuffer.Copy(aIAPName);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+
+ iTrace->Trace(_L("iap dlg configuration:"),KTraceFileName, __LINE__);
+ LogBuffer.Delete(0,256);
+ LogBuffer.AppendNum(aIsIapDialogShown);
+ iTrace->Trace(LogBuffer,KTraceFileName, __LINE__);
+ return KErrNone;
+ }
+ else
+ {
+ return KErrNotFound;
+ }
}
- }
-
}
// -----------------------------------------------------------------------------