diff -r d746aee05493 -r 02ba3f1733c6 supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp --- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp Thu Jul 15 19:06:58 2010 +0300 +++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplconnrequestor.cpp Thu Aug 19 10:20:18 2010 +0300 @@ -16,6 +16,7 @@ */ +#include #include "epos_comasuplprotocolmanager1.h" #include "epos_csuplcommunicationmanager.h" @@ -26,6 +27,8 @@ #include "epos_momasuplconnobserver.h" #include "epos_comasupltrace.h" #include "epos_comasuplfallbackhandler.h" +#include "epos_csuplsettingsinternalcrkeys.h" + #include "epos_comasupldialogtimer.h" _LIT(KTraceFileName,"SUPL_OMA_SESSION::epos_comasuplconnrequestor.cpp"); @@ -50,7 +53,7 @@ iObserver( aObserver), iIapDialogShown(EFalse), iIapDlgTimerExpired(EFalse), - iIsTimeoutDialogTimerStarted(EFalse) + iIsTimeoutDialogTimerStarted(EFalse),iPrompt(EFalse),iWlanOnly(EFalse),iIsStaleLocIdPresent(EFalse) { } @@ -72,7 +75,7 @@ iHslpAddrFromImsiUsed = EFalse; iFallBackHandler = COMASuplFallBackHandler::NewL(*iSuplSettings); - + iRepository = CRepository::NewL(KCRUidSuplSettings); iLastConnectionError = KErrNone; iCurrentSLPId = KErrNotFound; @@ -116,6 +119,8 @@ delete iSuplSettings; delete iTrace; delete iFallBackHandler; + delete iRepository; + iRepository = NULL; } // ----------------------------------------------------------------------------- @@ -181,6 +186,39 @@ } } + // ----------------------------------------------------------------------------- +// COMASuplConnRequestor::CreateConnection for OCC +// ----------------------------------------------------------------------------- +// +void COMASuplConnRequestor::CreateConnectionL(TBool aPrompt,TBool aWlanOnly) + { + TBuf<30> GeoTagServerName; + TBuf<128> buffer; + iState = EConnecting; + + iPrompt = aPrompt; + iWlanOnly = aWlanOnly; + iIsStaleLocIdPresent = ETrue; + iIsTimeoutDialogTimerStarted = EFalse; + iDialogTimer->Cancel(); + + TInt err; + err = iRepository->Get(KSuplGeoInfoConvServerName, GeoTagServerName); + User::LeaveIfError(err); + buffer.Copy(_L("Connecting to")); + buffer.Append(GeoTagServerName); + iTrace->Trace(buffer,KTraceFileName, __LINE__); + iTls = ETrue; + iPskTls = EFalse; + iIAPId = 0; + + + iConnection = iCommMgr.CreateConnectionL(GeoTagServerName,iTls,iPskTls,iPort,iIAPId); + + OpenConnection(); + + } + // ----------------------------------------------------------------------------- // COMASuplConnRequestor::OpenConnection // ----------------------------------------------------------------------------- @@ -230,11 +268,21 @@ if(iIsSettingInitilized) { - if(iConnection) + + if(iConnection) { iState = EConnecting; - iConnection->Connect(iStatus); - SetActive(); + if(iIsStaleLocIdPresent) + { + iTrace->Trace(_L("OpenConnection OCC"),KTraceFileName, __LINE__); + iConnection->Connect(iStatus,iPrompt,iWlanOnly); + } + else + { + iConnection->Connect(iStatus); + } + SetActive(); + } } else @@ -303,7 +351,17 @@ { iHostAddress.Zero(); CloseConnection(); - CreateConnectionL(); + if(iIsStaleLocIdPresent) + { + iTrace->Trace(_L("Request completed with error..."), KTraceFileName, __LINE__); + iObserver.OperationCompleteL(iLastConnectionError); + } + else + { + iTrace->Trace(_L("Setting API Initilizing Completed..."), KTraceFileName, __LINE__); + CreateConnectionL(); + } + } else {