diff -r d07e190ed096 -r 6e4b6261703d hotspotfw/hsserver/src/hotspotsession.cpp --- a/hotspotfw/hsserver/src/hotspotsession.cpp Thu Jan 07 13:31:53 2010 +0200 +++ b/hotspotfw/hsserver/src/hotspotsession.cpp Mon Jan 18 21:21:32 2010 +0200 @@ -23,13 +23,14 @@ #include "hssnotif.h" #include "hsslogintimer.h" #include "hsslogouttimer.h" +#include "hssclientinterface.h" +#include "am_debug.h" #include #include #include -#include "e32std.h" -#include "am_debug.h" +#include +#include #include -#include "hssclientinterface.h" #include #include @@ -62,8 +63,6 @@ iLogoutTimer = CHssLogoutTimer::NewL( *this ); iMgtClient = CWlanMgmtClient::NewL(); - - iRepository = CRepository::NewL( KCRUidInternetConnectivitySettings ); } // ----------------------------------------------------------------------------- @@ -127,12 +126,6 @@ } iLogoutTimer = NULL; - if ( iRepository != NULL ) - { - delete iRepository; - } - iRepository = NULL; - if ( iIcts != NULL ) { delete iIcts; @@ -649,23 +642,9 @@ { delete iIcts; } - TInt connectivityTestAllowed( EIctsRunAutomatically ); - iRepository->Get( KIctsTestPermission, connectivityTestAllowed ); - DEBUG1("CHotSpotSession::TestInternetConnectivityL: %d", connectivityTestAllowed); - if ( connectivityTestAllowed == EIctsNeverRun ) - { - TInt indx = iServer.FindMessage( iIapId, EHssStartLogin ); - if ( KErrNotFound != indx ) - { - iServer.CompleteMessage( indx, KErrNone ); - } - } - else - { - iIcts = CIctsClientInterface::NewL( iIapId, iNetId, *this ); - iIcts->StartL(); - } - + + iIcts = CIctsClientInterface::NewL( iIapId, iNetId, *this ); + iIcts->StartL(); } // ----------------------------------------------------------------------------- @@ -812,13 +791,14 @@ { DEBUG("CHotSpotSession::ProcessUnRegisterL"); iAllowNotifications = EFalse; - + TInt ret( KErrNone ); + // Read message TInt iapId = ( TInt )aMessage.Int0(); - TInt ret( KErrNone ); // Check that this is not Easy WLAN - if ( iServer.GetEasyWlanId() != iapId ) + TRAP_IGNORE( EasyWlanIdL() ); + if ( iEasyWlanId != iapId ) { TRAPD( err, iIapSettingsHandler->DeleteIapL( iapId ) ); // return KErrGeneral if IAP removal is not successful @@ -847,8 +827,9 @@ TBuf8 extAPI; iIapId = aIapId; - // This is Easy WLAN. - if ( iServer.GetEasyWlanId() == aIapId ) + // Check if Easy WLAN. + TRAP_IGNORE( EasyWlanIdL() ); + if ( iEasyWlanId == aIapId ) { DEBUG("CHotSpotSession::ProcessStartLogin Easy WLAN detected"); // Just test internet connectivity and complete message later @@ -1168,6 +1149,25 @@ } // ----------------------------------------------------------------------------- +// EasyWlanIdL +// ----------------------------------------------------------------------------- +// +void CHotSpotSession::EasyWlanIdL() + { + DEBUG("CHotSpotSession::EasyWlanIdL()"); + // Set to default value just in case + iEasyWlanId = KEasyWlanServiceId; + + RCmManagerExt cmManager; + cmManager.OpenL(); + CleanupClosePushL( cmManager ); + + iEasyWlanId = cmManager.EasyWlanIdL(); + DEBUG1("CHotSpotSession::EasyWlanIdL() ret: % d", iEasyWlanId); + CleanupStack::PopAndDestroy( &cmManager ); + } + +// ----------------------------------------------------------------------------- // ConnectionStateChanged // ----------------------------------------------------------------------------- //