cmmanager/cmmgr/cmmplugins/cmpluginwlan/src/cmpluginwlan.cpp
changeset 27 489cf6208544
parent 23 7ec726f93df1
child 40 c5b848e6c7d1
equal deleted inserted replaced
23:7ec726f93df1 27:489cf6208544
    23 #include <wlanmgmtcommon.h>
    23 #include <wlanmgmtcommon.h>
    24 #include <cmpluginwlandef.h>
    24 #include <cmpluginwlandef.h>
    25 #include <cmcommonconstants.h>
    25 #include <cmcommonconstants.h>
    26 #include <featmgr.h>
    26 #include <featmgr.h>
    27 
    27 
       
    28 #include "datamobilitycommsdattypes.h"
    28 #include "cmpluginwlan.h"
    29 #include "cmpluginwlan.h"
    29 #include "cmwlancoveragecheck.h"
    30 #include "cmwlancoveragecheck.h"
    30 #include "cmmanagerdef.h"
    31 #include "cmmanagerdef.h"
    31 
    32 
    32 #include "OstTraceDefinitions.h"
    33 #include "OstTraceDefinitions.h"
    50 const TBool KDefIpDnsAddrFromServer = ETrue;
    51 const TBool KDefIpDnsAddrFromServer = ETrue;
    51 const TBool KDefIp6DnsAddrFromServer = ETrue;
    52 const TBool KDefIp6DnsAddrFromServer = ETrue;
    52 
    53 
    53 const TInt KWlanServiceRecordIndex = 0;
    54 const TInt KWlanServiceRecordIndex = 0;
    54 
    55 
    55 const TUint32 KDefaultPriorityWLan = 0;
       
    56 
       
    57 const TInt KWlanLastSocketActivityTimeout = -1;
    56 const TInt KWlanLastSocketActivityTimeout = -1;
    58 const TInt KWlanLastSessionClosedTimeout = 1;
    57 const TInt KWlanLastSessionClosedTimeout = 1;
    59 const TInt KWlanLastSocketClosedTimeout = -1;
    58 const TInt KWlanLastSocketClosedTimeout = -1;
    60 
    59 
    61 /// Modem bearer names for WLAN connection methods
    60 /// Modem bearer names for WLAN connection methods.
    62 _LIT( KModemBearerWLAN, "WLANBearer" );
    61 _LIT( KModemBearerWLAN, "WLANBearer" );
    63 
    62 
    64 _LIT( KWlanBearerName, "WLANBearer" );
    63 _LIT( KWlanBearerName, "WLANBearer" );
    65 _LIT( KWlanBearerAgent, "wlanagt.agt" );
    64 _LIT( KWlanBearerAgent, "wlanagt.agt" );
    66 _LIT( KWlanBearerNif, "wlannif" );
    65 _LIT( KWlanBearerNif, "wlannif" );
   151 
   150 
   152         User::Leave( KErrNotSupported );
   151         User::Leave( KErrNotSupported );
   153         }
   152         }
   154 
   153 
   155     CCmPluginBaseEng::ConstructL();
   154     CCmPluginBaseEng::ConstructL();
       
   155 
       
   156     // Get bearer priority table ID.
       
   157     TRAP_IGNORE( iBearerPriorityTableId =
       
   158             CCDGlobalBearerTypePriorizationRecord::TableIdL( iSession ) );
       
   159 
       
   160     if ( !iBearerPriorityTableId )
       
   161         {
       
   162         iBearerPriorityTableId =
       
   163                 CCDGlobalBearerTypePriorizationRecord::CreateTableL( iSession );
       
   164         }
   156 
   165 
   157     // get WLAN table id
   166     // get WLAN table id
   158     TRAP_IGNORE( iWlanTableId = CCDWlanServiceRecord::TableIdL( iSession ) );
   167     TRAP_IGNORE( iWlanTableId = CCDWlanServiceRecord::TableIdL( iSession ) );
   159 
   168 
   160     if ( !iWlanTableId )
   169     if ( !iWlanTableId )
   310             retVal = KCommDbBearerWLAN;
   319             retVal = KCommDbBearerWLAN;
   311             }
   320             }
   312             break;
   321             break;
   313         case ECmDefaultUiPriority:
   322         case ECmDefaultUiPriority:
   314             {
   323             {
   315             retVal = KDefaultPriorityWLan;
   324             retVal = GetDefPriorityL( aAttribute );
   316             }
   325             }
   317             break;
   326             break;
   318         case ECmDefaultPriority:
   327         case ECmDefaultPriority:
   319             {
   328             {
   320             retVal = KDefaultPriorityWLan;
   329             retVal = GetDefPriorityL( aAttribute );
   321             }
   330             }
   322             break;
   331             break;
   323         case EWlanServiceId:
   332         case EWlanServiceId:
   324             {
   333             {
   325             retVal = wlanServiceRecord->iWlanServiceId;
   334             retVal = wlanServiceRecord->iWlanServiceId;
   451             retVal = static_cast<TBool>( wlanServiceRecord->iWlanEnableWpaPsk );
   460             retVal = static_cast<TBool>( wlanServiceRecord->iWlanEnableWpaPsk );
   452             }
   461             }
   453             break;
   462             break;
   454         case EWlan802_1xAllowUnencrypted:
   463         case EWlan802_1xAllowUnencrypted:
   455             {
   464             {
   456             retVal = static_cast<TBool>( wlanServiceRecord->iWlanWpaKeyLength );
   465             retVal = static_cast<TBool>( wlanServiceRecord->iWlanWpaKeyLength );//TODO, change typecast to if-else structure?
   457             }
   466             }
   458             break;
   467             break;
   459         default:
   468         default:
   460             {
   469             {
   461             User::Leave( KErrNotSupported );
   470             User::Leave( KErrNotSupported );
  1230     {
  1239     {
  1231     OstTraceFunctionEntry0( CCMPLUGINWLAN_CANHANDLEIAPIDL_ENTRY );
  1240     OstTraceFunctionEntry0( CCMPLUGINWLAN_CANHANDLEIAPIDL_ENTRY );
  1232 
  1241 
  1233     TBool retVal( EFalse );
  1242     TBool retVal( EFalse );
  1234 
  1243 
  1235     CCDIAPRecord *iapRecord = static_cast<CCDIAPRecord *>
  1244     CCDIAPRecord *iapRecord = static_cast<CCDIAPRecord *>(
  1236                         ( CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord) );
  1245             CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord) );
  1237 
  1246 
  1238     CleanupStack::PushL( iapRecord );
  1247     CleanupStack::PushL( iapRecord );
  1239     iapRecord->SetRecordId( aIapId );
  1248     iapRecord->SetRecordId( aIapId );
  1240 
  1249 
  1241     TRAPD( err, iapRecord->LoadL( iSession ) );
  1250     TRAPD( err, iapRecord->LoadL( iSession ) );
  1305     {
  1314     {
  1306     OstTraceFunctionEntry0( CCMPLUGINWLAN_LOADSERVICERECORDL_ENTRY );
  1315     OstTraceFunctionEntry0( CCMPLUGINWLAN_LOADSERVICERECORDL_ENTRY );
  1307 
  1316 
  1308     if ( TPtrC( KCDTypeNameLANService ) == iIapRecord->iServiceType )
  1317     if ( TPtrC( KCDTypeNameLANService ) == iIapRecord->iServiceType )
  1309         {
  1318         {
  1310         iServiceRecord = static_cast<CCDLANServiceRecord *>
  1319         iServiceRecord = static_cast<CCDLANServiceRecord*>(
  1311                     ( CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
  1320                 CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
  1312 
  1321 
  1313         ServiceRecord().SetRecordId( iIapRecord->iService );
  1322         ServiceRecord().SetRecordId( iIapRecord->iService );
  1314         ServiceRecord().LoadL( iSession );
  1323         ServiceRecord().LoadL( iSession );
  1315         }
  1324         }
  1316     else
  1325     else
  1360     OstTraceFunctionEntry0( CCMPLUGINWLAN_CREATESERVICERECORDL_ENTRY );
  1369     OstTraceFunctionEntry0( CCMPLUGINWLAN_CREATESERVICERECORDL_ENTRY );
  1361 
  1370 
  1362     delete iServiceRecord;
  1371     delete iServiceRecord;
  1363     iServiceRecord = NULL;
  1372     iServiceRecord = NULL;
  1364 
  1373 
  1365     iServiceRecord = static_cast<CCDLANServiceRecord*>
  1374     iServiceRecord = static_cast<CCDLANServiceRecord*>(
  1366                 (CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
  1375             CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
  1367 
  1376 
  1368     CCDLANServiceRecord* lanServiceRecord = static_cast<CCDLANServiceRecord *>( iServiceRecord );
  1377     CCDLANServiceRecord* lanServiceRecord = static_cast<CCDLANServiceRecord*>( iServiceRecord );
  1369 
       
  1370 
  1378 
  1371     if ( FeatureManager::FeatureSupported( KFeatureIdIPv6 ) )
  1379     if ( FeatureManager::FeatureSupported( KFeatureIdIPv6 ) )
  1372         {
  1380         {
  1373         lanServiceRecord->iIfNetworks.SetL( KDefIspIfNetworksIPv4IPv6 );
  1381         lanServiceRecord->iIfNetworks.SetL( KDefIspIfNetworksIPv4IPv6 );
  1374         }
  1382         }
  1399         {
  1407         {
  1400         lanServiceRecord->iConfigDaemonManagerName.SetL( KEmpty );
  1408         lanServiceRecord->iConfigDaemonManagerName.SetL( KEmpty );
  1401         lanServiceRecord->iConfigDaemonName.SetL( KEmpty );
  1409         lanServiceRecord->iConfigDaemonName.SetL( KEmpty );
  1402         }
  1410         }
  1403 
  1411 
  1404     // create WLAN service record
  1412     // Create WLAN service record.
  1405     CreateWlanServiceRecordL();
  1413     CreateWlanServiceRecordL();
  1406 
  1414 
  1407     OstTraceFunctionExit0( CCMPLUGINWLAN_CREATESERVICERECORDL_EXIT );
  1415     OstTraceFunctionExit0( CCMPLUGINWLAN_CREATESERVICERECORDL_EXIT );
  1408     }
  1416     }
  1409 
  1417 
  1420     iWlanServiceRecord = NULL;
  1428     iWlanServiceRecord = NULL;
  1421 
  1429 
  1422     iWlanServiceRecord = new( ELeave ) CCDWlanServiceRecord ( iWlanTableId );
  1430     iWlanServiceRecord = new( ELeave ) CCDWlanServiceRecord ( iWlanTableId );
  1423     iWlanServiceRecord->SetRecordId( KCDNewRecordRequest );
  1431     iWlanServiceRecord->SetRecordId( KCDNewRecordRequest );
  1424 
  1432 
       
  1433     // Some attributes need to have default values set.
  1425     iWlanServiceRecord->iRecordName.SetL( iIapRecord->iRecordName );
  1434     iWlanServiceRecord->iRecordName.SetL( iIapRecord->iRecordName );
  1426     iWlanServiceRecord->iWlanConnMode.SetL( CMManager::EInfra );
  1435     iWlanServiceRecord->iWlanConnMode.SetL( CMManager::EInfra );
  1427     iWlanServiceRecord->iWlanSecMode.SetL( CMManager::EWlanSecModeOpen );
  1436     iWlanServiceRecord->iWlanSecMode.SetL( CMManager::EWlanSecModeOpen );
       
  1437     iWlanServiceRecord->iWlanAuthMode.SetL( CMManager::EWlanAuthModeOpen );
  1428     iWlanServiceRecord->iWlanScanSSID.SetL( EFalse );
  1438     iWlanServiceRecord->iWlanScanSSID.SetL( EFalse );
  1429 
  1439 
  1430     OstTraceFunctionExit0( CCMPLUGINWLAN_CREATEWLANSERVICERECORDL_EXIT );
  1440     OstTraceFunctionExit0( CCMPLUGINWLAN_CREATEWLANSERVICERECORDL_EXIT );
  1431     }
  1441     }
  1432 
  1442 
  2224             {
  2234             {
  2225             retVal = KCommDbBearerWLAN;
  2235             retVal = KCommDbBearerWLAN;
  2226             }
  2236             }
  2227             break;
  2237             break;
  2228         case ECmDefaultUiPriority:
  2238         case ECmDefaultUiPriority:
       
  2239             {
       
  2240             retVal = GetDefPriorityL( aAttribute );
       
  2241             }
       
  2242             break;
  2229         case ECmDefaultPriority:
  2243         case ECmDefaultPriority:
  2230             {
  2244             {
  2231             retVal = KDefaultPriorityWLan;
  2245             retVal = GetDefPriorityL( aAttribute );
  2232             }
  2246             }
  2233             break;
  2247             break;
  2234         case ECmExtensionLevel:
  2248         case ECmExtensionLevel:
  2235             {
  2249             {
  2236             // This is extension from LAN plugin.
  2250             // This is extension from LAN plugin.
  2612         User::Leave( KErrArgument );
  2626         User::Leave( KErrArgument );
  2613         }
  2627         }
  2614     return result;
  2628     return result;
  2615     }
  2629     }
  2616 
  2630 
       
  2631 // ---------------------------------------------------------------------------
       
  2632 // CCmPluginWlan::GetDefPriorityL
       
  2633 // ---------------------------------------------------------------------------
       
  2634 //
       
  2635 TUint32 CCmPluginWlan::GetDefPriorityL( const TUint32 aAttribute ) const//TODO, OST
       
  2636     {
       
  2637 
       
  2638     TUint32 retVal( KDataMobilitySelectionPolicyPriorityWildCard );
       
  2639 
       
  2640     CCDGlobalBearerTypePriorizationRecord* priorityRecord =
       
  2641             new( ELeave ) CCDGlobalBearerTypePriorizationRecord( iBearerPriorityTableId );
       
  2642     CleanupStack::PushL( priorityRecord );
       
  2643 
       
  2644     priorityRecord->iServiceType.SetL( TPtrC( KCDTypeNameLANService ) );
       
  2645 
       
  2646     if ( priorityRecord->FindL( iSession ) )
       
  2647         {
       
  2648         priorityRecord->LoadL( iSession );
       
  2649 
       
  2650         switch ( aAttribute )
       
  2651             {
       
  2652             case ECmDefaultPriority:
       
  2653                 {
       
  2654                 retVal = priorityRecord->iPriority;
       
  2655                 }
       
  2656                 break;
       
  2657             case ECmDefaultUiPriority:
       
  2658                 {
       
  2659                 retVal = priorityRecord->iUIPriority;
       
  2660                 }
       
  2661                 break;
       
  2662             default:
       
  2663                 break;
       
  2664             }
       
  2665         }
       
  2666     CleanupStack::PopAndDestroy( priorityRecord );
       
  2667 
       
  2668     return retVal;
       
  2669     }
       
  2670 
  2617 // End of File
  2671 // End of File