networkprotocolmodules/suplproxyprotocolmodule/suplproxyprotocolmodule/src/suplproxymodule.cpp
--- a/networkprotocolmodules/suplproxyprotocolmodule/suplproxyprotocolmodule/src/suplproxymodule.cpp Tue Feb 02 01:50:39 2010 +0200
+++ b/networkprotocolmodules/suplproxyprotocolmodule/suplproxyprotocolmodule/src/suplproxymodule.cpp Fri Apr 16 16:28:16 2010 +0300
@@ -549,6 +549,15 @@
const TLbsNetPosRequestOptionsBase& aOptions)
{
LBSLOG(ELogP1, "CSuplProxyProtocol::RequestNetworkLocation() Begin\n");
+
+ if(!iSuplTiApiWrapper)
+ {
+ //Error, TI Plugin not available. Complete the request with error
+ LBSLOG_ERR(ELogP1, "Error, TI Plugin not available, not able to complete request");
+ LBSLOG2(ELogP1, "-->ProcessSessionComplete(0x%x)\n", aSessionId.SessionNum());
+ iObserver.ProcessSessionComplete(aSessionId, KErrNotReady);
+ return;
+ }
const TLbsNetPosRequestOptions reqParams =
static_cast<const TLbsNetPosRequestOptions&> (aOptions);
@@ -642,6 +651,13 @@
LBSLOG2(ELogP1, "-->ProcessSessionComplete(0x%x)\n", aSessionId.SessionNum());
iObserver.ProcessSessionComplete(aSessionId, KErrNone);
}
+ else if(!iSuplTiApiWrapper)
+ {
+ //Error, TI Plugin not available. Complete the request with error
+ LBSLOG_ERR(ELogP1, "Error, TI Plugin not available, not able to complete request");
+ LBSLOG2(ELogP1, "-->ProcessSessionComplete(0x%x)\n", aSessionId.SessionNum());
+ iObserver.ProcessSessionComplete(aSessionId, KErrNotReady);
+ }
else
{
@@ -857,6 +873,7 @@
void CSuplProxyProtocol::ConstructL()
{
LBSLOG(ELogP1, "CSuplProxyProtocol::ConstructL() Begin\n");
+ TInt err = KErrNone;
CRepository* cenRep = CRepository::NewLC(KLbsSuplProxyProtocolModuleCenRepUid);
TInt refLocSourceId(KErrNone);
@@ -876,14 +893,18 @@
LBSLOG(ELogP9, "->A CLbsSuplTiApi::NewL() SUPL-FW\n");
LBSLOG2(ELogP9, " > Uid = 0x%08X\n", suplTiPluginImplUid);
- iSuplTiApiWrapper = CLbsSuplTiApi::NewL(*this, TUid::Uid(suplTiPluginImplUid));
+ TRAP(err, iSuplTiApiWrapper = CLbsSuplTiApi::NewL(*this, TUid::Uid(suplTiPluginImplUid)));
+ if(err != KErrNone)
+ {
+ LBSLOG_ERR2(ELogP1, "Failed to load the Terminal Initiation API Plugin (error: %d)", err);
+ }
CLbsAdmin* admin = CLbsAdmin::NewL();
CleanupStack::PushL(admin);
// Read admin setting for maximum number of external locate requests
TUint maxExternalLocateRequests = KLbsDefaultMaximumExternalLocateRequests;
- TInt err = admin->Get(KLbsSettingMaximumExternalLocateRequests, maxExternalLocateRequests);
+ err = admin->Get(KLbsSettingMaximumExternalLocateRequests, maxExternalLocateRequests);
if (err != KErrNone)
{
LBSLOG_ERR2(ELogP4, "Failed to get KLbsSettingMaximumExternalLocateRequests (err %d)", err);
@@ -1523,7 +1544,7 @@
const TLbsNetSessionId& aSessionId)
{
LBSLOG(ELogP1, "CSuplProxyProtocol::RequestComplete() Begin\n");
-
+
TInt index = iLbsNetSessions.Find(aSessionId,
CLbsNetSession::IsSessionMatch);