eapol/eapol_framework/eapol_symbian/am/eap_notifier/src/eap_auth_observer.cpp
author hgs
Fri, 09 Jul 2010 10:14:51 +0300
changeset 36 c98682f98478
parent 34 ad1f037f1ac2
child 49 43351a4f2da3
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: Dialog observer implementation
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
36
hgs
parents: 34
diff changeset
    18
/*
hgs
parents: 34
diff changeset
    19
* %version: 15 %
hgs
parents: 34
diff changeset
    20
*/
hgs
parents: 34
diff changeset
    21
hgs
parents: 34
diff changeset
    22
// System include files
26
hgs
parents:
diff changeset
    23
#include <hb/hbcore/hbsymbianvariant.h>
hgs
parents:
diff changeset
    24
#include <e32debug.h>
36
hgs
parents: 34
diff changeset
    25
hgs
parents: 34
diff changeset
    26
// User include files
26
hgs
parents:
diff changeset
    27
#include "eap_auth_notifier.h"
hgs
parents:
diff changeset
    28
#include "eap_auth_observer.h"
hgs
parents:
diff changeset
    29
36
hgs
parents: 34
diff changeset
    30
// External function prototypes
26
hgs
parents:
diff changeset
    31
36
hgs
parents: 34
diff changeset
    32
// Local constants
hgs
parents: 34
diff changeset
    33
hgs
parents: 34
diff changeset
    34
// ======== LOCAL FUNCTIONS ========
hgs
parents: 34
diff changeset
    35
hgs
parents: 34
diff changeset
    36
// ======== MEMBER FUNCTIONS ========
hgs
parents: 34
diff changeset
    37
hgs
parents: 34
diff changeset
    38
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    39
// Two-phased constructor.
hgs
parents: 34
diff changeset
    40
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
    41
//
hgs
parents:
diff changeset
    42
CEapAuthObserver* CEapAuthObserver::NewL( 
34
hgs
parents: 26
diff changeset
    43
    CEapAuthNotifier* aNotifier )
26
hgs
parents:
diff changeset
    44
    {
hgs
parents:
diff changeset
    45
    RDebug::Print(_L("CEapAuthObserver::NewL") );
hgs
parents:
diff changeset
    46
    
34
hgs
parents: 26
diff changeset
    47
    CEapAuthObserver* self = new ( ELeave ) CEapAuthObserver( aNotifier );
26
hgs
parents:
diff changeset
    48
    return self;
hgs
parents:
diff changeset
    49
    }
hgs
parents:
diff changeset
    50
36
hgs
parents: 34
diff changeset
    51
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    52
// Constructor
hgs
parents: 34
diff changeset
    53
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
    54
//
hgs
parents:
diff changeset
    55
CEapAuthObserver::CEapAuthObserver( 
34
hgs
parents: 26
diff changeset
    56
    CEapAuthNotifier* aNotifier  ): 
hgs
parents: 26
diff changeset
    57
    iNotifier( aNotifier )
26
hgs
parents:
diff changeset
    58
    {
hgs
parents:
diff changeset
    59
    RDebug::Print(_L("CEapAuthObserver::CEapAuthObserver") );
hgs
parents:
diff changeset
    60
    }
hgs
parents:
diff changeset
    61
36
hgs
parents: 34
diff changeset
    62
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    63
// Destructor
hgs
parents: 34
diff changeset
    64
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
    65
//
hgs
parents:
diff changeset
    66
CEapAuthObserver::~CEapAuthObserver()
hgs
parents:
diff changeset
    67
    {
hgs
parents:
diff changeset
    68
    RDebug::Print(_L("CEapAuthObserver::~CEapAuthObserver") );
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
36
hgs
parents: 34
diff changeset
    71
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    72
// Handles the setting of the notifier (dialog) type
hgs
parents: 34
diff changeset
    73
// ---------------------------------------------------------------------------
34
hgs
parents: 26
diff changeset
    74
//
hgs
parents: 26
diff changeset
    75
void CEapAuthObserver::SetNotifierType( CEapAuthNotifier::EEapNotifierType aType )
hgs
parents: 26
diff changeset
    76
    {
hgs
parents: 26
diff changeset
    77
    RDebug::Print(_L("CEapAuthObserver::setNotifierType") );
hgs
parents: 26
diff changeset
    78
    
hgs
parents: 26
diff changeset
    79
    iType = aType;
hgs
parents: 26
diff changeset
    80
    }
hgs
parents: 26
diff changeset
    81
36
hgs
parents: 34
diff changeset
    82
// Derived function:
hgs
parents: 34
diff changeset
    83
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    84
// From class MHbDeviceDialogObserver.
hgs
parents: 34
diff changeset
    85
// Handles the user input received from the dialog
hgs
parents: 34
diff changeset
    86
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
    87
//
hgs
parents:
diff changeset
    88
void CEapAuthObserver::DataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
    89
{
hgs
parents:
diff changeset
    90
    RDebug::Print(_L("CEapAuthObserver::DataReceived") );
hgs
parents:
diff changeset
    91
    
hgs
parents:
diff changeset
    92
    if ( iType == CEapAuthNotifier::EEapNotifierTypeLEapUsernamePasswordDialog )
hgs
parents:
diff changeset
    93
        {
hgs
parents:
diff changeset
    94
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeLEapUsernamePasswordDialog") );
hgs
parents:
diff changeset
    95
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
    96
        }
hgs
parents:
diff changeset
    97
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeGTCUsernamePasswordDialog )
hgs
parents:
diff changeset
    98
        {
hgs
parents:
diff changeset
    99
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeGTCUsernamePasswordDialog") );
hgs
parents:
diff changeset
   100
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
   101
        }
hgs
parents:
diff changeset
   102
    else if ( iType == CEapAuthNotifier::EEapNotifierTypePapUsernamePasswordDialog )
hgs
parents:
diff changeset
   103
        {
hgs
parents:
diff changeset
   104
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypePapUsernamePasswordDialog") );
hgs
parents:
diff changeset
   105
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
   106
        }
hgs
parents:
diff changeset
   107
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeEapMsChapV2UsernamePasswordDialog )
hgs
parents:
diff changeset
   108
        {
hgs
parents:
diff changeset
   109
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeEapMsChapV2UsernamePasswordDialog") );
hgs
parents:
diff changeset
   110
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
   111
        }
hgs
parents:
diff changeset
   112
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeMsChapV2UsernamePasswordDialog )
hgs
parents:
diff changeset
   113
        {
hgs
parents:
diff changeset
   114
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeMsChapV2UsernamePasswordDialog") );
hgs
parents:
diff changeset
   115
        UsernamePasswordDlgDataReceived(aData);
hgs
parents:
diff changeset
   116
        }
34
hgs
parents: 26
diff changeset
   117
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeGTCQueryDialog )
26
hgs
parents:
diff changeset
   118
        {
34
hgs
parents: 26
diff changeset
   119
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeGTCQueryDialog") ); 
26
hgs
parents:
diff changeset
   120
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   121
        }
34
hgs
parents: 26
diff changeset
   122
    else if ( iType == CEapAuthNotifier::EEapNotifierTypePapAuthQueryDialog )
26
hgs
parents:
diff changeset
   123
        {
34
hgs
parents: 26
diff changeset
   124
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypePapAuthQueryDialog") ); 
26
hgs
parents:
diff changeset
   125
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   126
        }
hgs
parents:
diff changeset
   127
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeFastPacStorePwQueryDialog )
hgs
parents:
diff changeset
   128
        {
hgs
parents:
diff changeset
   129
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeFastPacStorePwQueryDialog") ); 
hgs
parents:
diff changeset
   130
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   131
        }
hgs
parents:
diff changeset
   132
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeFastCreateMasterkeyQueryDialog )
hgs
parents:
diff changeset
   133
        {
hgs
parents:
diff changeset
   134
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeFastCreateMasterkeyQueryDialog") ); 
hgs
parents:
diff changeset
   135
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   136
        }
hgs
parents:
diff changeset
   137
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeFastPacFilePwQueryDialog )
hgs
parents:
diff changeset
   138
        {
hgs
parents:
diff changeset
   139
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeFastPacFilePwQueryDialog") ); 
hgs
parents:
diff changeset
   140
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   141
        }
hgs
parents:
diff changeset
   142
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeMsChapV2OldPasswordDialog )
hgs
parents:
diff changeset
   143
        {
hgs
parents:
diff changeset
   144
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeMsChapV2OldPasswordDialog") ); 
hgs
parents:
diff changeset
   145
        OldPwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   146
        }
hgs
parents:
diff changeset
   147
    else if ( iType == CEapAuthNotifier::EEapNotifierTypeMsChapV2NewPasswordDialog )
hgs
parents:
diff changeset
   148
        {
hgs
parents:
diff changeset
   149
        RDebug::Print(_L("CEapAuthObserver::DataReceived: EEapNotifierTypeMsChapV2NewPasswordDialog") ); 
hgs
parents:
diff changeset
   150
        PwdQueryDataReceived(aData);
hgs
parents:
diff changeset
   151
        }
hgs
parents:
diff changeset
   152
    
hgs
parents:
diff changeset
   153
    TInt status = KErrNone;
hgs
parents:
diff changeset
   154
    
hgs
parents:
diff changeset
   155
    TRAP_IGNORE( iNotifier->CompleteL( status ));
hgs
parents:
diff changeset
   156
}
hgs
parents:
diff changeset
   157
36
hgs
parents: 34
diff changeset
   158
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   159
// Handles the user name password input received from the dialog
hgs
parents: 34
diff changeset
   160
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
   161
//
36
hgs
parents: 34
diff changeset
   162
void CEapAuthObserver::UsernamePasswordDlgDataReceived(
hgs
parents: 34
diff changeset
   163
     CHbSymbianVariantMap& aData )
26
hgs
parents:
diff changeset
   164
{
hgs
parents:
diff changeset
   165
    RDebug::Print(_L("CEapAuthObserver::UsernamePasswordDlgDataReceived") ); 
hgs
parents:
diff changeset
   166
    
hgs
parents:
diff changeset
   167
    _LIT(KUsername, "username");
hgs
parents:
diff changeset
   168
    _LIT(KPassword, "password");
hgs
parents:
diff changeset
   169
    
hgs
parents:
diff changeset
   170
    CEapAuthNotifier::TEapDialogInfo PasswordInfo;
hgs
parents:
diff changeset
   171
    TDesC* Data = NULL;
hgs
parents:
diff changeset
   172
       
hgs
parents:
diff changeset
   173
    PasswordInfo.iIsIdentityQuery = EFalse; 
hgs
parents:
diff changeset
   174
    PasswordInfo.iPasswordPromptEnabled = EFalse;
hgs
parents:
diff changeset
   175
    
hgs
parents:
diff changeset
   176
    const CHbSymbianVariant *my_variant = aData.Get(KUsername); 
hgs
parents:
diff changeset
   177
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   178
        {
hgs
parents:
diff changeset
   179
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   180
    
hgs
parents:
diff changeset
   181
        Data = reinterpret_cast<TDesC*>(my_variant->Data());       
hgs
parents:
diff changeset
   182
        PasswordInfo.iUsername.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   183
        PasswordInfo.iIsIdentityQuery = ETrue; 
hgs
parents:
diff changeset
   184
        RDebug::Print(_L("CEapAuthObserver::DataReceived: PasswordInfo.iUsername = %S\n"), &PasswordInfo.iUsername );
hgs
parents:
diff changeset
   185
        }
hgs
parents:
diff changeset
   186
    my_variant = aData.Get(KPassword);
hgs
parents:
diff changeset
   187
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   188
        {
hgs
parents:
diff changeset
   189
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   190
    
hgs
parents:
diff changeset
   191
        Data = reinterpret_cast<TDesC*>(my_variant->Data());     
hgs
parents:
diff changeset
   192
        PasswordInfo.iPassword.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   193
        PasswordInfo.iPasswordPromptEnabled = ETrue;
hgs
parents:
diff changeset
   194
        RDebug::Print(_L("CEapAuthObserver::DataReceived: PasswordInfo.iPassword = %S\n"), &PasswordInfo.iPassword );
hgs
parents:
diff changeset
   195
        }
hgs
parents:
diff changeset
   196
       
hgs
parents:
diff changeset
   197
    iNotifier->SetSelectedUnameAndPwd( PasswordInfo );   
hgs
parents:
diff changeset
   198
}
hgs
parents:
diff changeset
   199
36
hgs
parents: 34
diff changeset
   200
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   201
// Handles the old password query user input received from the dialog
hgs
parents: 34
diff changeset
   202
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
   203
//
hgs
parents:
diff changeset
   204
void CEapAuthObserver::OldPwdQueryDataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
   205
{
hgs
parents:
diff changeset
   206
    RDebug::Print(_L("CEapAuthObserver::OldPwdQueryDataReceived") ); 
hgs
parents:
diff changeset
   207
    
hgs
parents:
diff changeset
   208
    _LIT(KPassword, "password");
hgs
parents:
diff changeset
   209
    
hgs
parents:
diff changeset
   210
    CEapAuthNotifier::TEapDialogInfo PasswordInfo;
hgs
parents:
diff changeset
   211
    TDesC* Data = NULL;
hgs
parents:
diff changeset
   212
          
hgs
parents:
diff changeset
   213
    const CHbSymbianVariant *my_variant = aData.Get(KPassword); 
hgs
parents:
diff changeset
   214
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   215
        {
hgs
parents:
diff changeset
   216
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   217
    
hgs
parents:
diff changeset
   218
        Data = reinterpret_cast<TDesC*>(my_variant->Data());     
hgs
parents:
diff changeset
   219
        PasswordInfo.iOldPassword.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
        RDebug::Print(_L("CEapAuthObserver::OldPwdQueryDataReceived: PasswordInfo.iOldPassword = %S\n"), &PasswordInfo.iOldPassword );
hgs
parents:
diff changeset
   222
        }
hgs
parents:
diff changeset
   223
       
hgs
parents:
diff changeset
   224
    iNotifier->SetSelectedOldPassword( PasswordInfo );   
hgs
parents:
diff changeset
   225
}
hgs
parents:
diff changeset
   226
36
hgs
parents: 34
diff changeset
   227
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   228
// Handles the password query user input received from the dialog
hgs
parents: 34
diff changeset
   229
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
   230
//
hgs
parents:
diff changeset
   231
void CEapAuthObserver::PwdQueryDataReceived( CHbSymbianVariantMap& aData )
hgs
parents:
diff changeset
   232
{
hgs
parents:
diff changeset
   233
    RDebug::Print(_L("CEapAuthObserver::PwdQueryDataReceived") ); 
hgs
parents:
diff changeset
   234
    
hgs
parents:
diff changeset
   235
    _LIT(KPassword, "password");
hgs
parents:
diff changeset
   236
    
hgs
parents:
diff changeset
   237
    CEapAuthNotifier::TEapDialogInfo PasswordInfo;
hgs
parents:
diff changeset
   238
    TDesC* Data = NULL;
hgs
parents:
diff changeset
   239
           
hgs
parents:
diff changeset
   240
    const CHbSymbianVariant *my_variant = aData.Get(KPassword); 
hgs
parents:
diff changeset
   241
    if ( my_variant != NULL )
hgs
parents:
diff changeset
   242
        {
hgs
parents:
diff changeset
   243
        ASSERT( my_variant->Type() == CHbSymbianVariant::EDes  );
hgs
parents:
diff changeset
   244
    
hgs
parents:
diff changeset
   245
        Data = reinterpret_cast<TDesC*>(my_variant->Data());     
hgs
parents:
diff changeset
   246
        PasswordInfo.iPassword.Copy( Data->Ptr(), Data->Length() );
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
        RDebug::Print(_L("CEapAuthObserver::PwdQueryDataReceived: PasswordInfo.iPassword = %S\n"), &PasswordInfo.iPassword );
hgs
parents:
diff changeset
   249
        }
hgs
parents:
diff changeset
   250
       
hgs
parents:
diff changeset
   251
    iNotifier->SetSelectedPassword( PasswordInfo );   
hgs
parents:
diff changeset
   252
}
hgs
parents:
diff changeset
   253
36
hgs
parents: 34
diff changeset
   254
// Derived function:
hgs
parents: 34
diff changeset
   255
// ---------------------------------------------------------------------------
hgs
parents: 34
diff changeset
   256
// From class MHbDeviceDialogObserver.
hgs
parents: 34
diff changeset
   257
// Handles the closing of the dialog
hgs
parents: 34
diff changeset
   258
// ---------------------------------------------------------------------------
26
hgs
parents:
diff changeset
   259
//
hgs
parents:
diff changeset
   260
void CEapAuthObserver::DeviceDialogClosed( TInt /*aCompletionCode*/ )
hgs
parents:
diff changeset
   261
{
hgs
parents:
diff changeset
   262
    // Dialog was closed, let's complete with that error code
hgs
parents:
diff changeset
   263
    RDebug::Print(_L("CEapAuthObserver::DeviceDialogClosed"));
hgs
parents:
diff changeset
   264
    
hgs
parents:
diff changeset
   265
    TInt status = KErrCancel;
hgs
parents:
diff changeset
   266
    
hgs
parents:
diff changeset
   267
    if ( iType != CEapAuthNotifier::EEapNotifierTypeFastStartAuthProvWaitNote &&
hgs
parents:
diff changeset
   268
         iType != CEapAuthNotifier::EEapNotifierTypeFastStartUnauthProvWaitNote )
hgs
parents:
diff changeset
   269
        {
hgs
parents:
diff changeset
   270
        TRAP_IGNORE( iNotifier->CompleteL( status ));
hgs
parents:
diff changeset
   271
        }
hgs
parents:
diff changeset
   272
}
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274