diff -r 3b2fb68d23df -r b852595f5cbe hotspotfw/hsserver/src/hotspotsession.cpp --- a/hotspotfw/hsserver/src/hotspotsession.cpp Thu Jul 15 19:54:09 2010 +0300 +++ b/hotspotfw/hsserver/src/hotspotsession.cpp Thu Aug 19 10:59:40 2010 +0300 @@ -50,7 +50,8 @@ // CHotSpotSession::CHotSpotSession( CHotSpotServer& aServer ) : iServer( aServer ), iClient( NULL ), iSrvNotifications ( NULL ), - iNotificationHandle( NULL ), iAllowNotifications( ETrue ), iHotspotExtension( ETrue ) + iNotificationHandle( NULL ), iAllowNotifications( ETrue ), + iHotspotExtension( ETrue ) { } @@ -160,7 +161,6 @@ switch ( aMessage.Function() ) { case EHssActivateNotifications : - DEBUG( "CHotSpotSession::ActivateNotificationsL" ); iAllowNotifications = EFalse; if ( iNotifications == NULL ) @@ -171,7 +171,6 @@ HandleOrderNotifications( aMessage ); break; case EHssCancelNotifications : - DEBUG( "CHotSpotSession::CancelNotifications" ); iAllowNotifications = EFalse; iMgtClient->CancelNotifications( ); @@ -259,12 +258,10 @@ { if ( value == KErrNone ) { - DEBUG( "EHssLoginComplete1" ); iServer.CompleteMessage( indx, KErrNone ); } else { - DEBUG( "EHssLoginComplete2" ); iServer.CompleteMessage( indx, KErrCancel ); iServer.SetLogoutFlag( ETrue ); } @@ -303,7 +300,7 @@ // Otherwise message completed elsewhere. if ( KErrNone != err ) { - indx = iServer.FindMessage(iIapId, EHssStartLogin ); + indx = iServer.FindMessage( iIapId, EHssStartLogin ); if ( indx >= 0 ) { iServer.CompleteMessage( indx , KErrNone ); @@ -466,7 +463,9 @@ aMessage.Complete( KErrNone ); break; case EHssUiState: - ProcessUiState( aMessage ); + TRAP_IGNORE( ProcessUiStateL( aMessage ) ); + // Just complete the message + aMessage.Complete( KErrNone ); break; case EHssStartBrowser: { @@ -630,7 +629,7 @@ { case EConnectionOk : // Create IAP first, then complete the message to connection. - TRAP_IGNORE( iIapSettingsHandler->CreateIapL() ); + TRAP_IGNORE( iIapSettingsHandler->CreateIapL( EFalse ) ); indx = iServer.FindMessage( iIapId, EHssStartLogin ); if ( KErrNotFound != indx ) { @@ -1038,12 +1037,12 @@ } // ----------------------------------------------------------------------------- -// ProcessUiState +// ProcessUiStateL // ----------------------------------------------------------------------------- // -void CHotSpotSession::ProcessUiState( const RMessage2& aMessage ) +void CHotSpotSession::ProcessUiStateL( const RMessage2& aMessage ) { - DEBUG( "CHotSpotSession::ProcessUiState()" ); + DEBUG( "CHotSpotSession::ProcessUiStateL()" ); TBool completeMsg = EFalse; TInt indx( KErrNone ); TInt indxBrowser( KErrNone ); @@ -1057,31 +1056,57 @@ { case EHsBrowserUiRunning: { - DEBUG( "CHotSpotSession::ProcessUiState() EHsBrowserUiRunning" ); + DEBUG( "CHotSpotSession::ProcessUiStateL() EHsBrowserUiRunning" ); break; } case EHsBrowserUiAuthenticatedOk: { - DEBUG( "CHotSpotSession::ProcessUiState() EHsBrowserUiAuthenticatedOk" ); - + DEBUG( "CHotSpotSession::ProcessUiStateL() EHsBrowserUiAuthenticatedOk" ); + // Check if Easy WLAN. + TInt easyWlan = iServer.GetEasyWlanId(); + if ( easyWlan != iIapId ) + { + iIapSettingsHandler->MoveIapL( iIapId ); + // Activate notifications and mark as client IAP so that + // IAP can be deleted after the use. + TBuf clientUid; + iServer.SetClientIap( iIapId, clientUid ); + iServer.ActivateWlanNotificationsL(); + } + else + { + TInt iapId( 0 ); + iapId = iIapSettingsHandler->CreateIapL( ETrue ); + if ( iapId > 0 ) + { + // Activate notifications and mark as client IAP so that + // IAP can be deleted after the use. + TBuf clientUid; + iServer.SetClientIap( iapId, clientUid ); + iServer.ActivateWlanNotificationsL(); + } + } + completeMsg = ETrue; + DEBUG( "CHotSpotSession::ProcessUiStateL() EHsBrowserUiAuthenticatedOk Done" ); break; } case EHsBrowserUiAuthenticatedNok: { - DEBUG( "CHotSpotSession::ProcessUiState() EHsBrowserUiAuthenticatedNok" ); + DEBUG( "CHotSpotSession::ProcessUiStateL() EHsBrowserUiAuthenticatedNok" ); + completeMsg = ETrue; break; } case EHsBrowserUiClosed: { - DEBUG( "CHotSpotSession::ProcessUiState() EHsBrowserUiClosed" ); + DEBUG( "CHotSpotSession::ProcessUiStateL() EHsBrowserUiClosed" ); completeMsg = ETrue; break; } default: { - DEBUG( "CHotSpotSession::ProcessUiState() default" ); + DEBUG( "CHotSpotSession::ProcessUiStateL() default" ); completeMsg = ETrue; } } @@ -1091,20 +1116,14 @@ // complete messages EHssStartLogin/EHssStartBrowser if ( indx >= 0 ) { - DEBUG( "CHotSpotSession::ProcessUiState() completing EHssStartLogin" ); + DEBUG( "CHotSpotSession::ProcessUiStateL() completing EHssStartLogin" ); iServer.CompleteMessage( indx , KErrNone ); - aMessage.Complete( KErrNone ); } - else if ( indxBrowser >= 0 ) + + if ( indxBrowser >= 0 ) { - DEBUG( "CHotSpotSession::ProcessUiState() completing EHssStartBrowser" ); + DEBUG( "CHotSpotSession::ProcessUiStateL() completing EHssStartBrowser" ); iServer.CompleteMessage( indxBrowser, ret ); - aMessage.Complete( KErrNone ); - } - else - { - DEBUG( "CHotSpotSession::ProcessUiState() completing EHssUiState" ); - aMessage.Complete( KErrNotFound ); } } }