--- a/cmmanager/cmmgr/cmmplugins/cmpluginlan/src/cmpluginlan.cpp Mon May 03 12:53:07 2010 +0300
+++ b/cmmanager/cmmgr/cmmplugins/cmpluginlan/src/cmpluginlan.cpp Fri May 14 16:15:46 2010 +0300
@@ -157,7 +157,7 @@
TRAPD( err, iapRecord->LoadL( iSession ) );
- if( !err )
+ if ( !err )
{
retVal = CanHandleIapIdL( iapRecord );
}
@@ -179,7 +179,7 @@
TBool retVal( EFalse );
- if( (TPtrC( aIapRecord->iServiceType ) == TPtrC( KCDTypeNameLANService ) ) &&
+ if ( (TPtrC( aIapRecord->iServiceType ) == TPtrC( KCDTypeNameLANService ) ) &&
TPtrC( aIapRecord->iBearerType ) == TPtrC( KCDTypeNameLANBearer ) )
{
retVal = ETrue;
@@ -251,7 +251,7 @@
CCDLANServiceRecord* lanServiceRecord = static_cast<CCDLANServiceRecord *>( iServiceRecord );
- if( FeatureManager::FeatureSupported( KFeatureIdIPv6 ) )
+ if ( FeatureManager::FeatureSupported( KFeatureIdIPv6 ) )
{
lanServiceRecord->iIfNetworks.SetL( KDefIspIfNetworksIPv4IPv6LAN );
}
@@ -294,19 +294,20 @@
{
OstTraceFunctionEntry0( CCMPLUGINLAN_LOADSERVICERECORDL_ENTRY );
- if( TPtrC( KCDTypeNameLANService ) == iIapRecord->iServiceType )
+ if ( TPtrC( KCDTypeNameLANService ) == iIapRecord->iServiceType )
{
- iServiceRecord = static_cast<CCDLANServiceRecord *>
- (CCDRecordBase::RecordFactoryL(KCDTIdLANServiceRecord));
+ iServiceRecord = static_cast<CCDLANServiceRecord *>(
+ CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
ServiceRecord().SetRecordId( iIapRecord->iService );
ServiceRecord().LoadL( iSession );
}
else
- // this IAP service is not supported by this plugin.
{
+ // This IAP service is not supported by this plugin.
User::Leave( KErrNotSupported );
}
+
OstTraceFunctionExit0( CCMPLUGINLAN_LOADSERVICERECORDL_EXIT );
}
@@ -317,7 +318,6 @@
void CCmPluginLan::PrepareToCopyDataL( CCmPluginBaseEng* /*aCopyInstance*/ )
{
OstTraceFunctionEntry0( CCMPLUGINLAN_PREPARETOCOPYDATAL_ENTRY );
-
OstTraceFunctionExit0( CCMPLUGINLAN_PREPARETOCOPYDATAL_EXIT );
}
@@ -329,13 +329,122 @@
{
OstTraceFunctionEntry0( CCMPLUGINLAN_COPYSERVICERECORDL_ENTRY );
- __ASSERT_DEBUG( iServiceRecord != NULL, User::Leave( KErrNotFound ));
+ // New service record to be returned.
+ CCDRecordBase* serviceRecord = static_cast<CCDLANServiceRecord*>(
+ CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
+ CleanupStack::PushL( serviceRecord );
+
+ CCDLANServiceRecord* tempServiceRecordPtrToNew =
+ static_cast<CCDLANServiceRecord*>( serviceRecord );
+
+ // CommsDat version of service record.
+ CCDLANServiceRecord* origServiceRecord =
+ static_cast<CCDLANServiceRecord*>( iServiceRecord );
- CCDRecordBase* serviceRecord = static_cast<CCDLANServiceRecord*>
- ( CCDRecordBase::CreateCopyRecordL( *iServiceRecord ) );
+ if ( !origServiceRecord->iRecordTag.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iRecordTag.SetL(
+ origServiceRecord->iRecordTag );
+ }
+ if ( !origServiceRecord->iRecordName.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iRecordName.SetL(
+ origServiceRecord->iRecordName );
+ }
+ if ( !origServiceRecord->iServiceEnableLlmnr.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iServiceEnableLlmnr.SetL(
+ origServiceRecord->iServiceEnableLlmnr );
+ }
+ if ( !origServiceRecord->iIfNetworks.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIfNetworks.SetL(
+ origServiceRecord->iIfNetworks );
+ }
+ if ( !origServiceRecord->iIpNetmask.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpNetmask.SetL(
+ origServiceRecord->iIpNetmask );
+ }
+ if ( !origServiceRecord->iIpGateway.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpGateway.SetL(
+ origServiceRecord->iIpGateway );
+ }
+ if ( !origServiceRecord->iIpAddrFromServer.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpAddrFromServer.SetL(
+ origServiceRecord->iIpAddrFromServer );
+ }
+ if ( !origServiceRecord->iIpAddr.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpAddr.SetL(
+ origServiceRecord->iIpAddr );
+ }
+ if ( !origServiceRecord->iIpDnsAddrFromServer.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpDnsAddrFromServer.SetL(
+ origServiceRecord->iIpDnsAddrFromServer );
+ }
+ if ( !origServiceRecord->iIpNameServer1.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpNameServer1.SetL(
+ origServiceRecord->iIpNameServer1 );
+ }
+ if ( !origServiceRecord->iIpNameServer2.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpNameServer2.SetL(
+ origServiceRecord->iIpNameServer2 );
+ }
+ if ( !origServiceRecord->iIp6DnsAddrFromServer.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIp6DnsAddrFromServer.SetL(
+ origServiceRecord->iIp6DnsAddrFromServer );
+ }
+ if ( !origServiceRecord->iIp6NameServer1.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIp6NameServer1.SetL(
+ origServiceRecord->iIp6NameServer1 );
+ }
+ if ( !origServiceRecord->iIp6NameServer2.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIp6NameServer2.SetL(
+ origServiceRecord->iIp6NameServer2 );
+ }
+ if ( !origServiceRecord->iIpAddrLeaseValidFrom.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpAddrLeaseValidFrom.SetL(
+ origServiceRecord->iIpAddrLeaseValidFrom );
+ }
+ if ( !origServiceRecord->iIpAddrLeaseValidTo.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iIpAddrLeaseValidTo.SetL(
+ origServiceRecord->iIpAddrLeaseValidTo );
+ }
+ if ( !origServiceRecord->iConfigDaemonManagerName.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iConfigDaemonManagerName.SetL(
+ origServiceRecord->iConfigDaemonManagerName );
+ }
+ if ( !origServiceRecord->iConfigDaemonName.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iConfigDaemonName.SetL(
+ origServiceRecord->iConfigDaemonName );
+ }
+ if ( !origServiceRecord->iServiceExtensionTableName.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iServiceExtensionTableName.SetL(
+ origServiceRecord->iServiceExtensionTableName );
+ }
+ if ( !origServiceRecord->iServiceExtensionTableRecordId.IsNull() )
+ {
+ tempServiceRecordPtrToNew->iServiceExtensionTableRecordId.SetL(
+ origServiceRecord->iServiceExtensionTableRecordId );
+ }
+
+ CleanupStack::Pop( serviceRecord );
OstTraceFunctionExit0( CCMPLUGINLAN_COPYSERVICERECORDL_EXIT );
-
return serviceRecord;
}
@@ -344,102 +453,120 @@
// ----------------------------------------------------------------------------
//
void CCmPluginLan::UpdateServiceRecordL(
- RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
- RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
+ RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
+ RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
{
OstTraceFunctionEntry0( CCMPLUGINLAN_UPDATESERVICERECORDL_ENTRY );
- // Delete the original record and create a copy from the parameter
+ // Delete the original record and create a copy from the client's copy.
delete iServiceRecord;
iServiceRecord = NULL;
- iServiceRecord = static_cast<CCDLANServiceRecord*>
- (CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
+ iServiceRecord = static_cast<CCDLANServiceRecord*>(
+ CCDRecordBase::RecordFactoryL( KCDTIdLANServiceRecord ) );
- // LAN Service copy does not work so we have to copy it manually
+ CCDLANServiceRecord* origServiceRecord = static_cast<CCDLANServiceRecord*>( iServiceRecord );
+
+ // Client's copy of lan service record.
+ CCDLANServiceRecord* clientServiceRecordCopy =
+ static_cast<CCDLANServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
- CCDLANServiceRecord* lanServiceRecordTo = static_cast<CCDLANServiceRecord *>( iServiceRecord );
- CCDLANServiceRecord* lanServiceRecordFrom =
- static_cast<CCDLANServiceRecord *>( aGenRecordArray[KServiceRecordIndex] );
+ // LAN Service copy does not work so we have to copy it manually.
- if( !lanServiceRecordFrom->iRecordName.IsNull() )
+ if ( !clientServiceRecordCopy->iRecordTag.IsNull() )
{
- lanServiceRecordTo->iRecordName.SetL( lanServiceRecordFrom->iRecordName );
+ origServiceRecord->iRecordTag.SetL( clientServiceRecordCopy->iRecordTag );
}
- if( !lanServiceRecordFrom->iIfNetworks.IsNull() )
+ if ( !clientServiceRecordCopy->iRecordName.IsNull() )
{
- lanServiceRecordTo->iIfNetworks.SetL( lanServiceRecordFrom->iIfNetworks );
+ origServiceRecord->iRecordName.SetL( clientServiceRecordCopy->iRecordName );
}
- if( !lanServiceRecordFrom->iIpNetmask.IsNull() )
+ if ( !clientServiceRecordCopy->iServiceEnableLlmnr.IsNull() )
{
- lanServiceRecordTo->iIpNetmask.SetL( lanServiceRecordFrom->iIpNetmask );
+ origServiceRecord->iServiceEnableLlmnr.SetL( clientServiceRecordCopy->iServiceEnableLlmnr );
}
- if( !lanServiceRecordFrom->iIpGateway.IsNull() )
+ if ( !clientServiceRecordCopy->iIfNetworks.IsNull() )
{
- lanServiceRecordTo->iIpGateway.SetL( lanServiceRecordFrom->iIpGateway );
+ origServiceRecord->iIfNetworks.SetL( clientServiceRecordCopy->iIfNetworks );
+ }
+ if ( !clientServiceRecordCopy->iIpNetmask.IsNull() )
+ {
+ origServiceRecord->iIpNetmask.SetL( clientServiceRecordCopy->iIpNetmask );
}
- if( !lanServiceRecordFrom->iIpAddrFromServer.IsNull() )
+ if ( !clientServiceRecordCopy->iIpGateway.IsNull() )
{
- lanServiceRecordTo->iIpAddrFromServer.SetL( lanServiceRecordFrom->iIpAddrFromServer );
+ origServiceRecord->iIpGateway.SetL( clientServiceRecordCopy->iIpGateway );
}
- if( !lanServiceRecordFrom->iIpAddr.IsNull() )
+ if ( !clientServiceRecordCopy->iIpAddrFromServer.IsNull() )
{
- lanServiceRecordTo->iIpAddr.SetL( lanServiceRecordFrom->iIpAddr );
+ origServiceRecord->iIpAddrFromServer.SetL( clientServiceRecordCopy->iIpAddrFromServer );
}
- if( !lanServiceRecordFrom->iIpDnsAddrFromServer.IsNull() )
+ if ( !clientServiceRecordCopy->iIpAddr.IsNull() )
+ {
+ origServiceRecord->iIpAddr.SetL( clientServiceRecordCopy->iIpAddr );
+ }
+ if ( !clientServiceRecordCopy->iIpDnsAddrFromServer.IsNull() )
{
- lanServiceRecordTo->iIpDnsAddrFromServer.SetL( lanServiceRecordFrom->iIpDnsAddrFromServer );
+ origServiceRecord->iIpDnsAddrFromServer.SetL( clientServiceRecordCopy->iIpDnsAddrFromServer );
}
- if( !lanServiceRecordFrom->iIpNameServer1.IsNull() )
+ if ( !clientServiceRecordCopy->iIpNameServer1.IsNull() )
{
- lanServiceRecordTo->iIpNameServer1.SetL( lanServiceRecordFrom->iIpNameServer1 );
+ origServiceRecord->iIpNameServer1.SetL( clientServiceRecordCopy->iIpNameServer1 );
}
- if( !lanServiceRecordFrom->iIpNameServer2.IsNull() )
+ if ( !clientServiceRecordCopy->iIpNameServer2.IsNull() )
{
- lanServiceRecordTo->iIpNameServer2.SetL( lanServiceRecordFrom->iIpNameServer2 );
+ origServiceRecord->iIpNameServer2.SetL( clientServiceRecordCopy->iIpNameServer2 );
}
- if( !lanServiceRecordFrom->iIp6DnsAddrFromServer.IsNull() )
+ if ( !clientServiceRecordCopy->iIp6DnsAddrFromServer.IsNull() )
{
- lanServiceRecordTo->iIp6DnsAddrFromServer.SetL( lanServiceRecordFrom->iIp6DnsAddrFromServer );
+ origServiceRecord->iIp6DnsAddrFromServer.SetL( clientServiceRecordCopy->iIp6DnsAddrFromServer );
}
- if( !lanServiceRecordFrom->iIp6NameServer1.IsNull() )
+ if ( !clientServiceRecordCopy->iIp6NameServer1.IsNull() )
{
- lanServiceRecordTo->iIp6NameServer1.SetL( lanServiceRecordFrom->iIp6NameServer1 );
+ origServiceRecord->iIp6NameServer1.SetL( clientServiceRecordCopy->iIp6NameServer1 );
+ }
+ if ( !clientServiceRecordCopy->iIp6NameServer2.IsNull() )
+ {
+ origServiceRecord->iIp6NameServer2.SetL( clientServiceRecordCopy->iIp6NameServer2 );
}
- if( !lanServiceRecordFrom->iIp6NameServer2.IsNull() )
+ if ( !clientServiceRecordCopy->iIpAddrLeaseValidFrom.IsNull() )
{
- lanServiceRecordTo->iIp6NameServer2.SetL( lanServiceRecordFrom->iIp6NameServer2 );
+ origServiceRecord->iIpAddrLeaseValidFrom.SetL( clientServiceRecordCopy->iIpAddrLeaseValidFrom );
}
- if( !lanServiceRecordFrom->iIpAddrLeaseValidFrom.IsNull() )
+ if ( !clientServiceRecordCopy->iIpAddrLeaseValidTo.IsNull() )
{
- lanServiceRecordTo->iIpAddrLeaseValidFrom.SetL( lanServiceRecordFrom->iIpAddrLeaseValidFrom );
+ origServiceRecord->iIpAddrLeaseValidTo.SetL( clientServiceRecordCopy->iIpAddrLeaseValidTo );
}
- if( !lanServiceRecordFrom->iIpAddrLeaseValidTo.IsNull() )
+ if ( !clientServiceRecordCopy->iConfigDaemonManagerName.IsNull() )
{
- lanServiceRecordTo->iIpAddrLeaseValidTo.SetL( lanServiceRecordFrom->iIpAddrLeaseValidTo );
+ origServiceRecord->iConfigDaemonManagerName.SetL( clientServiceRecordCopy->iConfigDaemonManagerName );
}
- if( !lanServiceRecordFrom->iConfigDaemonManagerName.IsNull() )
+ if ( !clientServiceRecordCopy->iConfigDaemonName.IsNull() )
{
- lanServiceRecordTo->iConfigDaemonManagerName.SetL( lanServiceRecordFrom->iConfigDaemonManagerName );
+ origServiceRecord->iConfigDaemonName.SetL( clientServiceRecordCopy->iConfigDaemonName );
}
- if( !lanServiceRecordFrom->iConfigDaemonName.IsNull() )
+ if ( !clientServiceRecordCopy->iServiceExtensionTableName.IsNull() )
{
- lanServiceRecordTo->iConfigDaemonName.SetL( lanServiceRecordFrom->iConfigDaemonName );
+ origServiceRecord->iServiceExtensionTableName.SetL( clientServiceRecordCopy->iServiceExtensionTableName );
+ }
+ if ( !clientServiceRecordCopy->iServiceExtensionTableRecordId.IsNull() )
+ {
+ origServiceRecord->iServiceExtensionTableRecordId.SetL( clientServiceRecordCopy->iServiceExtensionTableRecordId ); //TODO, check this works ok.
}
- lanServiceRecordTo->SetElementId( lanServiceRecordFrom->ElementId() );
+ origServiceRecord->SetElementId( clientServiceRecordCopy->ElementId() );
- if ( !ServiceRecord().RecordId() )
+ if ( !origServiceRecord->RecordId() )
{
- ServiceRecord().SetRecordId( KCDNewRecordRequest );
- ServiceRecord().StoreL( iSession );
+ origServiceRecord->SetRecordId( KCDNewRecordRequest );
+ origServiceRecord->StoreL( iSession );
- // Update needed values to record tables too( lanservice and wlanservice )
- lanServiceRecordFrom->SetElementId( ServiceRecord().ElementId() );
+ // Update received element ID to client's copy too.
+ clientServiceRecordCopy->SetElementId( origServiceRecord->ElementId() );
}
else
{
- ServiceRecord().ModifyL( iSession );
+ origServiceRecord->ModifyL( iSession );
}
OstTraceFunctionExit0( CCMPLUGINLAN_UPDATESERVICERECORDL_EXIT );
@@ -709,6 +836,18 @@
retVal = KDefaultPriorityLAN;
}
break;
+ case ELanServiceExtensionTableRecordId:
+ {
+ if ( !serviceRecord->iServiceExtensionTableRecordId.IsNull() )
+ {
+ retVal = serviceRecord->iServiceExtensionTableRecordId.RecordId();
+ }
+ else
+ {
+ retVal = 0;
+ }
+ }
+ break;
default:
{
User::Leave( KErrNotSupported );
@@ -808,117 +947,78 @@
case ECmIFNetworks:
case ELanIfNetworks:
{
- if ( !serviceRecord->iIfNetworks.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIfNetworks ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIfNetworks ).AllocL();
}
break;
case ECmIPNetmask:
case ELanIpNetMask:
{
- if ( !serviceRecord->iIpNetmask.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpNetmask ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpNetmask ).AllocL();
}
break;
case ECmIPGateway:
case ELanIpGateway:
{
- if ( !serviceRecord->iIpGateway.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpGateway ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpGateway ).AllocL();
}
break;
case ECmIPAddress:
case ELanIpAddr:
{
- if ( !serviceRecord->iIpAddr.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpAddr ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpAddr ).AllocL();
}
break;
case ECmIPNameServer1:
case ELanIpNameServer1:
{
- if ( !serviceRecord->iIpNameServer1.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpNameServer1 ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpNameServer1 ).AllocL();
}
break;
case ECmIPNameServer2:
case ELanIpNameServer2:
{
- if ( !serviceRecord->iIpNameServer2.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpNameServer2 ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpNameServer2 ).AllocL();
}
break;
case ECmIP6NameServer1:
case ELanIp6NameServer1:
{
- if ( !serviceRecord->iIp6NameServer1.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIp6NameServer1 ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIp6NameServer1 ).AllocL();
}
break;
case ECmIP6NameServer2:
case ELanIp6NameServer2:
{
- if ( !serviceRecord->iIp6NameServer2.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIp6NameServer2 ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIp6NameServer2 ).AllocL();
}
break;
case ECmIPAddrLeaseValidFrom:
case ELanIpAddrLeaseValidFrom:
{
- if ( !serviceRecord->iIpAddrLeaseValidFrom.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpAddrLeaseValidFrom ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpAddrLeaseValidFrom ).AllocL();
}
break;
case ECmIPAddrLeaseValidTo:
case ELanIpAddrLeaseValidTo:
{
- if ( !serviceRecord->iIpAddrLeaseValidTo.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iIpAddrLeaseValidTo ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iIpAddrLeaseValidTo ).AllocL();
}
break;
case ECmConfigDaemonManagerName:
case ELanConfigDaemonManagerName:
{
- if ( !serviceRecord->iConfigDaemonManagerName.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iConfigDaemonManagerName ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iConfigDaemonManagerName ).AllocL();
}
break;
case ECmConfigDaemonName:
case ELanConfigDaemonName:
{
- if ( !serviceRecord->iConfigDaemonName.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iConfigDaemonName ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iConfigDaemonName ).AllocL();
}
break;
case ELanServiceExtensionTableName:
{
- if ( !serviceRecord->iServiceExtensionTableName.IsNull() )
- {
- retVal = TPtrC( serviceRecord->iServiceExtensionTableName ).AllocL();
- }
+ retVal = TPtrC( serviceRecord->iServiceExtensionTableName ).AllocL();
}
break;
default:
@@ -964,12 +1064,15 @@
//
void CCmPluginLan::SetBearerIntAttributeL(
TUint32 aAttribute,
- TUint32 /*aValue*/,
- RPointerArray<CommsDat::CCDRecordBase>& /*aGenRecordArray*/,
+ TUint32 aValue,
+ RPointerArray<CommsDat::CCDRecordBase>& aGenRecordArray,
RPointerArray<CommsDat::CCDRecordBase>& /*aBearerSpecRecordArray*/ )
{
OstTraceFunctionEntry0( CCMPLUGINLAN_SETBEARERINTATTRIBUTEL_ENTRY );
+ CCDLANServiceRecord* serviceRecord =
+ static_cast<CCDLANServiceRecord*>( aGenRecordArray[KServiceRecordIndex] );
+
switch ( aAttribute )
{
case ECmExtensionLevel:
@@ -980,6 +1083,11 @@
User::Leave( KErrArgument );
}
break;
+ case ELanServiceExtensionTableRecordId:
+ {
+ serviceRecord->iServiceExtensionTableRecordId = aValue;
+ }
+ break;
default:
{
User::Leave( KErrNotSupported );