--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp Fri Apr 16 15:23:31 2010 +0300
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp Mon May 03 12:54:42 2010 +0300
@@ -83,6 +83,7 @@
#include "epos_omasuplconfigurationkeys.h"
#include "epos_csuplsettingparams.h"
#include "epos_comasuplasnbase.h"
+#include "epos_csuplsettingsconstants.h"
_LIT(KTraceFileName,"SUPL_OMA_SESSION::EPos_COMASuplSession.cpp");
@@ -1512,7 +1513,8 @@
TOMASuplUtcTime UtcTime;
TOMASuplPositionEstimate PosEstimate;
TDateTime TimeStamp;
- TInt ZoneCode,Zone,altitude,AltitudeUncertainty, HorizontalAccuracy;
+ TInt ZoneCode,Zone,altitude, HorizontalAccuracy;
+ TInt AltitudeUncertainty = 0;
TOMASuplAltitudeInfo AltitudeInfo;
TInt latitude,longitude;
TOMASuplPositionEstimate::TOMASuplLatitudeSign LatSign;
@@ -1696,7 +1698,8 @@
TOMASuplUtcTime UtcTime;
TOMASuplPositionEstimate PosEstimate;
TDateTime TimeStamp;
- TInt ZoneCode,Zone,altitude,AltitudeUncertainty, HorizontalAccuracy;
+ TInt ZoneCode,Zone,altitude, HorizontalAccuracy;
+ TInt AltitudeUncertainty = 0;
TOMASuplAltitudeInfo AltitudeInfo;
TInt latitude,longitude;
TOMASuplPositionEstimate::TOMASuplLatitudeSign LatSign;
@@ -1947,101 +1950,126 @@
//
void COMASuplSession::HandleOMASuplMessageL(COMASuplAsnMessageBase* aDecodedAsnMessage,TRequestStatus& aStatus,TInt aSessionIdSeed,TInt aErrorCode)
{
- delete iSuplState;
- iSuplState = NULL;
-
- iSETSessionUniqueId = aSessionIdSeed;
- iRunRequestStatus = & aStatus;
- *iRunRequestStatus = KRequestPending;
-
- TInt networkMode = 1;
- networkMode = GetNetworkModeL();
-
- TBuf<64> msg;
- if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed )
- {
- msg.Copy(_L("The device is in OFFLINE mode."));
- iTrace->Trace(msg,KTraceFileName, __LINE__);
- iSessionObserver.TerminateSession(this, KErrGeneral);
- return;
- }
- else
- {
- msg.Copy(_L("The device is in ON LINE mode."));
- iTrace->Trace(msg,KTraceFileName, __LINE__);
- }
-
- CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
-
- if (usage == CSuplSettings::ESuplUsageDisabled)
- {
- msg.Copy(_L("SUPL Usage is disabled"));
- iTrace->Trace(msg,KTraceFileName, __LINE__);
- iSessionObserver.TerminateSession(this, KErrGeneral);
- return;
+ delete iSuplState;
+ iSuplState = NULL;
+
+ iSETSessionUniqueId = aSessionIdSeed;
+ iRunRequestStatus = & aStatus;
+ *iRunRequestStatus = KRequestPending;
+
+ TInt networkMode = 1;
+ networkMode = GetNetworkModeL();
+
+ TBuf<64> msg;
+ if ( networkMode == ECoreAppUIsNetworkConnectionNotAllowed )
+ {
+ msg.Copy(_L("The device is in OFFLINE mode."));
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
+ else
+ {
+ msg.Copy(_L("The device is in ON LINE mode."));
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ }
+
+ CSuplSettings::TSuplSettingsUsage usage = iSuplSettings->SUPLUsage();
+
+ if (usage == CSuplSettings::ESuplUsageDisabled)
+ {
+ msg.Copy(_L("SUPL Usage is disabled"));
+ iTrace->Trace(msg,KTraceFileName, __LINE__);
+ iSessionObserver.TerminateSession(this, KErrGeneral);
+ return;
+ }
+
+ COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType();
+
+ if(messageType == COMASuplAsnMessageBase::ESUPL_INIT && aErrorCode == KErrNone)
+ {
+ HandleOMASuplMessageL(aDecodedAsnMessage);
+ }
+ else //Other messages than SUPL_INIT.... Send End
+ {
+ CreateCloneMessageL(aDecodedAsnMessage);
+ UpdateSuplSessionIDL();
+ if (iRequestType == ESUPL_NETWORK && messageType == COMASuplAsnMessageBase::ESUPL_INIT)
+ {
+ ServerAddressCheckForSuplInitL();
}
-
- COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType();
-
- if(messageType == COMASuplAsnMessageBase::ESUPL_INIT && aErrorCode == KErrNone)
- {
- HandleOMASuplMessageL(aDecodedAsnMessage);
- }
- else //Other messages than SUPL_INIT.... Send End
- {
- CreateCloneMessageL(aDecodedAsnMessage);
- UpdateSuplSessionIDL();
-
- iSuplSessionState = ESUPL_INITIALIZED;
- iSuplMsgType = ESUPL_END;
-
- if((aErrorCode == KErrCompletion && messageType == COMASuplAsnMessageBase::ESUPL_INIT) ||
- (aErrorCode == KErrOMASuplOutOfRangeParameter && messageType == COMASuplAsnMessageBase::ESUPL_INIT) ||
- (aErrorCode == KErrOMASuplMessageLengthMismatch && messageType == COMASuplAsnMessageBase::ESUPL_INIT) ||
- (aErrorCode == KErrOMASuplShortFrame && messageType == COMASuplAsnMessageBase::ESUPL_INIT))
- {
- iErrorStatusCode = COMASuplEnd::EUnexpectedDataValue;
- if(aErrorCode == KErrOMASuplMessageLengthMismatch)
- {
- iErrorStatusCode = COMASuplEnd::EProtocolError;
- }
- if(aErrorCode == KErrOMASuplShortFrame)
- {
- iErrorStatusCode = COMASuplEnd::EDataMissing;
- }
- TInt len = iHSLPAddress.Length();
- HBufC8 *hslpAdress = NULL;
- if(len > 0)
- {
- hslpAdress = HBufC8::NewL(iHSLPAddress.Length());
- hslpAdress->Des().Copy(iHSLPAddress);
- }
-
- else if(len ==0)
- {
- iTrace->Trace(_L("Length of HSLP Address is = 0, passing the HSLP generated frm IMSI"), KTraceFileName, __LINE__);
- hslpAdress = HBufC8::NewL(iSuplSettings->SLPAddressfromImsi().Length());
- CleanupStack::PushL(hslpAdress);
- hslpAdress->Des().Copy(iSuplSettings->SLPAddressfromImsi());
- CleanupStack::Pop(hslpAdress);
- }
- CleanupStack::PushL(hslpAdress);
- iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress);
- CleanupStack::PopAndDestroy(hslpAdress);
- }
- else
- {
- iErrorStatusCode = COMASuplEnd::EUnexpectedMessage;
- iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl);
- }
-
- SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);
- iSuplState->SetMsgStateObserver(this);
- //SMP Changes
- iSuplSessionState = ESUPL_GENERATE;
- iSuplState->GenerateMessageL();
-
- }
+
+ iSuplSessionState = ESUPL_INITIALIZED;
+ iSuplMsgType = ESUPL_END;
+
+ if((aErrorCode == KErrCompletion && messageType == COMASuplAsnMessageBase::ESUPL_INIT) ||
+ (aErrorCode == KErrOMASuplOutOfRangeParameter && messageType == COMASuplAsnMessageBase::ESUPL_INIT) ||
+ (aErrorCode == KErrOMASuplMessageLengthMismatch && messageType == COMASuplAsnMessageBase::ESUPL_INIT) ||
+ (aErrorCode == KErrOMASuplShortFrame && messageType == COMASuplAsnMessageBase::ESUPL_INIT))
+ {
+ iErrorStatusCode = COMASuplEnd::EUnexpectedDataValue;
+ if(aErrorCode == KErrOMASuplMessageLengthMismatch)
+ {
+ iErrorStatusCode = COMASuplEnd::EProtocolError;
+ }
+ if(aErrorCode == KErrOMASuplShortFrame)
+ {
+ iErrorStatusCode = COMASuplEnd::EDataMissing;
+ }
+ TInt len = iHSLPAddress.Length();
+ HBufC8 *hslpAdress = NULL;
+ if(len > 0)
+ {
+ hslpAdress = HBufC8::NewL(iHSLPAddress.Length());
+ hslpAdress->Des().Copy(iHSLPAddress);
+ }
+ else if(len ==0)
+ {
+ CServerParams* serverParams = CServerParams::NewL();
+ CleanupStack::PushL(serverParams);
+
+ if (iSuplStorageSettings->GetDefaultServer(serverParams) == KErrNotFound )
+ {
+ iTrace->Trace(_L("HSLP generated frm IMSI"), KTraceFileName, __LINE__);
+ hslpAdress = HBufC8::NewL(iSuplSettings->SLPAddressfromImsi().Length());
+ hslpAdress->Des().Copy(iSuplSettings->SLPAddressfromImsi());
+ }
+ else
+ {
+ iTrace->Trace(_L("Sending End with ver for Default HSLP"), KTraceFileName, __LINE__);
+ TInt64 slpId;
+ TBool aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable;
+ HBufC* serverAddr = HBufC::NewL(KMaxHSLPAddrLen);
+ HBufC* iapName = HBufC::NewL(KMaxIAPLen);
+ CleanupStack::PushL(serverAddr);
+ CleanupStack::PushL(iapName);
+ serverParams->Get(slpId,serverAddr->Des(),iapName->Des(),aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable);
+ hslpAdress = HBufC8::NewL(serverAddr->Length());
+ hslpAdress->Des().Copy(*serverAddr);
+
+ CleanupStack::PopAndDestroy(iapName);
+ CleanupStack::PopAndDestroy(serverAddr);
+ }
+ CleanupStack::PopAndDestroy(serverParams);
+ }
+ delete iSuplState;
+ iSuplState = NULL;
+ CleanupStack::PushL(hslpAdress);
+ iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress);
+ CleanupStack::PopAndDestroy(hslpAdress);
+ }
+ else
+ {
+ iErrorStatusCode = COMASuplEnd::EUnexpectedMessage;
+ iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl);
+ }
+
+ SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);
+ iSuplState->SetMsgStateObserver(this);
+ //SMP Changes
+ iSuplState->GenerateMessageL(); //Has to be here because initialisation has to be done for NI case in decode failed scenario.
+ iSuplSessionState = ESUPL_GENERATE;
+ }
}
// -----------------------------------------------------------------------------
@@ -2052,10 +2080,10 @@
//
void COMASuplSession::HandleOMASuplMessageL(COMASuplAsnMessageBase* aDecodedAsnMessage)
{
+ CreateCloneMessageL(aDecodedAsnMessage);
if(CheckProtocolVersionL(aDecodedAsnMessage)) //Checks version with supported version
{
COMASuplAsnMessageBase::TSuplMessageType messageType = aDecodedAsnMessage->MessageType();
- CreateCloneMessageL(aDecodedAsnMessage);
if(messageType != COMASuplAsnMessageBase::ESUPL_POS)
{
iCompleteSelfRequestor->CompleteSelf(); //This will result in call of RequestCompleted()
@@ -3190,106 +3218,123 @@
//
void COMASuplSession::HandleSuplInitErrorL(TInt aErr)
{
- iTrace->Trace(_L("Start COMASuplSession::HandleSuplInitError"), KTraceFileName, __LINE__);
-
- if(aErr == KErrOMAInvalidHSLPAddress)
- {
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError HSLP Address is not matching..."), KTraceFileName, __LINE__);
- //Close Connection : bug Fix.
- iConnRequestor->CloseConnection();
- iPortNum = 0;
- iSessionObserver.TerminateSession(this, KErrCompletion);
- return;
- }
-
- TBool setStatusCode = ETrue;
-
-
-
- if(aErr == KErrSuplInvalidSessionID)
- {
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Received SET Session ID"), KTraceFileName, __LINE__);
- iErrorStatusCode = COMASuplEnd::EInvalidSessionId;
-
- COMASuplSessionID* retrivedSessionID = NULL;
- iDecodedAsnMessage->SessionId(retrivedSessionID);
-
- // Set the SessionId.
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Update SET Session ID"), KTraceFileName, __LINE__);
- UpdateSETSessionIDL(retrivedSessionID);
-
- }
-
- if(aErr == KErrOMANonProxyModeNotSupported)
- {
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Received Nonproxymode data"), KTraceFileName, __LINE__);
- iErrorStatusCode = COMASuplEnd::ENonProxyModeNotSupported;
- }
-
- if(KErrAccessDenied == aErr || KErrOMASuplDenied == aErr)
- {
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError KErrAccessDenied|| KErrOMASuplDenied"), KTraceFileName, __LINE__);
- iErrorStatusCode = COMASuplEnd::EConsentDeniedByUser;
- }
-
- if(aErr == KErrOMASuplNoPosition || KErrOMASuplInformationOnly == aErr)
- {
- //Supl End with No Position
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError KErrOMASuplNoPosition || KErrOMASuplInformationOnly"), KTraceFileName, __LINE__);
- setStatusCode = EFalse;
- }
-
- if(KErrOMASuplAccepted == aErr)
- {
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError EConsentGrantedByUser"), KTraceFileName, __LINE__);
- iErrorStatusCode = COMASuplEnd::EConsentGrantedByUser;
- }
-
- TInt len = iHSLPAddress.Length();
- HBufC8 *hslpAdress = NULL;
- if(len > 0)
- {
- hslpAdress = HBufC8::NewL(iHSLPAddress.Length());
- hslpAdress->Des().Copy(iHSLPAddress);
- }
-
- else if(len ==0)
- {
- iTrace->Trace(_L("HSLP generated frm IMSI"), KTraceFileName, __LINE__);
- hslpAdress = HBufC8::NewL(iSuplSettings->SLPAddressfromImsi().Length());
- CleanupStack::PushL(hslpAdress);
- hslpAdress->Des().Copy(iSuplSettings->SLPAddressfromImsi());
- CleanupStack::Pop(hslpAdress);
-
- }
- CleanupStack::PushL(hslpAdress);
-
- delete iSuplState;
- iSuplState = NULL;
-
- if(setStatusCode)
- {
- iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress);
- }
- else
- {
- iSuplState = COMASuplEndState::NewL(iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress );
- }
-
- CleanupStack::PopAndDestroy(hslpAdress);
-
- iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Send SUPL_END for SUPL_INIT"), KTraceFileName, __LINE__);
-
- //iSuplSessionState = ESUPL_GENERATE;
- iSuplSessionState = ESUPL_INITIALIZED;
- iSuplState->SetMsgStateObserver(this);
- iSuplMsgType = ESUPL_END;
- SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);
- //SMP Changes
-
- iSuplState->GenerateMessageL();
- iSuplSessionState = ESUPL_GENERATE; // HAs to be here because initialisation has to be complete..
-
+ iTrace->Trace(_L("Start COMASuplSession::HandleSuplInitError"), KTraceFileName, __LINE__);
+
+ if(aErr == KErrOMAInvalidHSLPAddress)
+ {
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError HSLP Address is not matching..."), KTraceFileName, __LINE__);
+ //Close Connection : bug Fix.
+ iConnRequestor->CloseConnection();
+ iPortNum = 0;
+ iSessionObserver.TerminateSession(this, KErrCompletion);
+ return;
+ }
+
+ TBool setStatusCode = ETrue;
+
+
+
+ if(aErr == KErrSuplInvalidSessionID)
+ {
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Received SET Session ID"), KTraceFileName, __LINE__);
+ iErrorStatusCode = COMASuplEnd::EInvalidSessionId;
+
+ COMASuplSessionID* retrivedSessionID = NULL;
+ iDecodedAsnMessage->SessionId(retrivedSessionID);
+
+ // Set the SessionId.
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Update SET Session ID"), KTraceFileName, __LINE__);
+ UpdateSETSessionIDL(retrivedSessionID);
+
+ }
+
+ if(aErr == KErrOMANonProxyModeNotSupported)
+ {
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Received Nonproxymode data"), KTraceFileName, __LINE__);
+ iErrorStatusCode = COMASuplEnd::ENonProxyModeNotSupported;
+ }
+
+ if(KErrAccessDenied == aErr || KErrOMASuplDenied == aErr)
+ {
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError KErrAccessDenied|| KErrOMASuplDenied"), KTraceFileName, __LINE__);
+ iErrorStatusCode = COMASuplEnd::EConsentDeniedByUser;
+ }
+
+ if(aErr == KErrOMASuplNoPosition || KErrOMASuplInformationOnly == aErr)
+ {
+ //Supl End with No Position
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError KErrOMASuplNoPosition || KErrOMASuplInformationOnly"), KTraceFileName, __LINE__);
+ setStatusCode = EFalse;
+ }
+
+ if(KErrOMASuplAccepted == aErr)
+ {
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError EConsentGrantedByUser"), KTraceFileName, __LINE__);
+ iErrorStatusCode = COMASuplEnd::EConsentGrantedByUser;
+ }
+
+ TInt len = iHSLPAddress.Length();
+ HBufC8 *hslpAdress = NULL;
+ if(len > 0)
+ {
+ hslpAdress = HBufC8::NewL(iHSLPAddress.Length());
+ hslpAdress->Des().Copy(iHSLPAddress);
+ }
+ else if(len ==0)
+ {
+ CServerParams* serverParams = CServerParams::NewL();
+ CleanupStack::PushL(serverParams);
+
+ if (iSuplStorageSettings->GetDefaultServer(serverParams) == KErrNotFound )
+ {
+ iTrace->Trace(_L("HSLP generated frm IMSI"), KTraceFileName, __LINE__);
+ hslpAdress = HBufC8::NewL(iSuplSettings->SLPAddressfromImsi().Length());
+ hslpAdress->Des().Copy(iSuplSettings->SLPAddressfromImsi());
+ }
+ else
+ {
+ iTrace->Trace(_L("Default HSLP"), KTraceFileName, __LINE__);
+ TInt64 slpId;
+ TBool aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable;
+ HBufC* serverAddr = HBufC::NewL(KMaxHSLPAddrLen);
+ HBufC* iapName = HBufC::NewL(KMaxIAPLen);
+ CleanupStack::PushL(serverAddr);
+ CleanupStack::PushL(iapName);
+ serverParams->Get(slpId,serverAddr->Des(),iapName->Des(),aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable);
+ hslpAdress = HBufC8::NewL(serverAddr->Length());
+ hslpAdress->Des().Copy(*serverAddr);
+
+ CleanupStack::PopAndDestroy(iapName);
+ CleanupStack::PopAndDestroy(serverAddr);
+ }
+ CleanupStack::PopAndDestroy(serverParams);
+ }
+
+ delete iSuplState;
+ iSuplState = NULL;
+ CleanupStack::PushL(hslpAdress);
+ if(setStatusCode)
+ {
+ iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress);
+ }
+ else
+ {
+ iSuplState = COMASuplEndState::NewL(iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress );
+ }
+
+ CleanupStack::PopAndDestroy(hslpAdress);
+
+ iTrace->Trace(_L("COMASuplSession::HandleSuplInitError Send SUPL_END for SUPL_INIT"), KTraceFileName, __LINE__);
+
+ //iSuplSessionState = ESUPL_GENERATE;
+ iSuplSessionState = ESUPL_INITIALIZED;
+ iSuplState->SetMsgStateObserver(this);
+ iSuplMsgType = ESUPL_END;
+ SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);
+ //SMP Changes
+
+ iSuplState->GenerateMessageL();
+ iSuplSessionState = ESUPL_GENERATE; // HAs to be here because initialisation has to be complete..
}
// -----------------------------------------------------------------------------
@@ -3758,6 +3803,8 @@
if(iRequestType == ESUPL_NETWORK )
{
+ if (messageType == COMASuplAsnMessageBase::ESUPL_INIT)
+ {
iSuplSessionState = ESUPL_INITIALIZED;
TInt len = iHSLPAddress.Length();
@@ -3769,14 +3816,39 @@
}
else if(len ==0)
{
- iTrace->Trace(_L("Length of HSLP Address is = 0, passing the HSLP generated frm IMSI"), KTraceFileName, __LINE__);
- hslpAdress = HBufC8::NewL(iSuplSettings->SLPAddressfromImsi().Length());
- CleanupStack::PushL(hslpAdress);
- hslpAdress->Des().Copy(iSuplSettings->SLPAddressfromImsi());
- CleanupStack::Pop(hslpAdress);
- }
+ CServerParams* serverParams = CServerParams::NewL();
+ CleanupStack::PushL(serverParams);
+
+ if (iSuplStorageSettings->GetDefaultServer(serverParams) == KErrNotFound )
+ {
+ iTrace->Trace(_L("Length of HSLP Address is = 0, passing the HSLP generated frm IMSI"), KTraceFileName, __LINE__);
+ hslpAdress = HBufC8::NewL(iSuplSettings->SLPAddressfromImsi().Length());
+ hslpAdress->Des().Copy(iSuplSettings->SLPAddressfromImsi());
+ }
+ else
+ {
+ iTrace->Trace(_L("Sending End with ver for Default HSLP"), KTraceFileName, __LINE__);
+ TInt64 slpId;
+ TBool aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable;
+ HBufC* serverAddr = HBufC::NewL(KMaxHSLPAddrLen);
+ HBufC* iapName = HBufC::NewL(KMaxIAPLen);
+ CleanupStack::PushL(serverAddr);
+ CleanupStack::PushL(iapName);
+ serverParams->Get(slpId,serverAddr->Des(),iapName->Des(),aServerEnabled, aSimChangeRemove, aUsageInHomeNw, aEditable);
+ hslpAdress = HBufC8::NewL(serverAddr->Length());
+ hslpAdress->Des().Copy(*serverAddr);
+
+ CleanupStack::PopAndDestroy(iapName);
+ CleanupStack::PopAndDestroy(serverAddr);
+ }
+ CleanupStack::PopAndDestroy(serverParams);
+ }
+
+ delete iSuplState;
+ iSuplState = NULL;
CleanupStack::PushL(hslpAdress);
+ ServerAddressCheckForSuplInitL();
iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl,iEncodedSuplInit,hslpAdress);
CleanupStack::PopAndDestroy(hslpAdress);
@@ -3789,6 +3861,17 @@
iSuplState->SetMsgStateObserver(this);
iSuplState->GenerateMessageL();
iSuplSessionState = ESUPL_GENERATE;
+ }
+ else
+ {
+ iSuplState = COMASuplEndState::NewL(iErrorStatusCode,iOMASuplAsnHandlerBaseImpl);
+ UpdateSLPSessionIDL(SessionID);
+ UpdateSETSessionIDL(SessionID);
+ iSuplState->SetMsgStateObserver(this);
+ iRequestType = ESUPL_INVALID_SESSION;
+ iSuplSessionState = ESUPL_GENERATE;
+ iSuplState->GenerateMessageL();
+ }
}
else