realtimenetprots/sipfw/SIP/NetworkMonitor/src/CNetworkManager.cpp
branchRCL_3
changeset 12 c2e8c8b73582
parent 0 307788aac0a8
child 55 36ea1f90a3d8
equal deleted inserted replaced
10:dc4cddf5f2f8 12:c2e8c8b73582
   408     if ( aServiceType.Compare( TPtrC( KCDTypeNameLANService ) ) == 0 )
   408     if ( aServiceType.Compare( TPtrC( KCDTypeNameLANService ) ) == 0 )
   409         {
   409         {
   410         aObjectName.AppendNum( static_cast<TInt64>( realIapId ) );
   410         aObjectName.AppendNum( static_cast<TInt64>( realIapId ) );
   411         }        
   411         }        
   412 #endif
   412 #endif
   413 
   413 	__SIP_INT_LOG1( "CNetworkManager::GetServiceTypeAndObjectNameL end realIapID =", realIapId )	
       
   414 	
   414     return realIapId;
   415     return realIapId;
   415 	}
   416 	}
   416 
   417 
   417 // -----------------------------------------------------------------------------
   418 // -----------------------------------------------------------------------------
   418 // CNetworkManager::HandleVPNServiceL
   419 // CNetworkManager::HandleVPNServiceL
   434         aIapRecord.iService.iLinkedRecord->LoadL( aCommsDat );
   435         aIapRecord.iService.iLinkedRecord->LoadL( aCommsDat );
   435         }  
   436         }  
   436     
   437     
   437     CCDVPNServiceRecord* serviceRecord = 
   438     CCDVPNServiceRecord* serviceRecord = 
   438         static_cast<CCDVPNServiceRecord*>( aIapRecord.iService.iLinkedRecord );
   439         static_cast<CCDVPNServiceRecord*>( aIapRecord.iService.iLinkedRecord );
   439     
   440 
   440     serviceRecord->iServiceIAP.LoadL( aCommsDat );
   441 	TRAPD(err,serviceRecord->iServiceIAP.LoadL( aCommsDat ));
   441     
   442 	if(KErrNone != err )
   442     // It is valid to have 0 for iServiceIAP when the SNAP is configured for VPN IAP. 
   443 		{
   443     // So treat this is a valid configuaration and fill the aServiceType to NULL which usually contains the IAP service type(like LAN Service, Outgoing GPRS etc )     
   444 		//Its valid to not have iServiceIAP record, due to introduction of ServiceSNAP for the VPN with Snap
   444     if (serviceRecord->iServiceIAP == 0)
   445 		__SIP_INT_LOG1( "CNetworkManager::HandleVPNServiceL CCDVPNServiceRecord->iServiceIAP LoadL failed with error=", err)
   445     	{    	
   446 		aServiceType.Copy(_L8("")); 
   446    		aServiceType.Copy(_L8("")); 
   447 		return 0;
   447     	return (serviceRecord->iServiceIAP);
   448 		
   448     	}
   449 		}
   449     
   450 	else
   450     if ( !serviceRecord->iServiceIAP.iLinkedRecord )
   451 		{
   451         {
   452 	    	if ( !serviceRecord->iServiceIAP.iLinkedRecord )
   452         // Ownership of created record is transferred
   453 	        {
   453         serviceRecord->iServiceIAP.iLinkedRecord = 
   454 			// Ownership of created record is transferred
   454             static_cast<CCDIAPRecord*>(
   455 	        serviceRecord->iServiceIAP.iLinkedRecord = 
   455                 CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) );
   456 	            static_cast<CCDIAPRecord*>(
   456         serviceRecord->iServiceIAP.iLinkedRecord->SetRecordId( 
   457 	                CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) );
   457             serviceRecord->iServiceIAP );
   458 	        serviceRecord->iServiceIAP.iLinkedRecord->SetRecordId( 
   458             
   459 	            serviceRecord->iServiceIAP );
   459         serviceRecord->iServiceIAP.iLinkedRecord->LoadL( aCommsDat );
   460 	            
   460         }
   461 	        serviceRecord->iServiceIAP.iLinkedRecord->LoadL( aCommsDat );
   461 
   462 			}
   462     CCDIAPRecord* iapRecord = 
   463 		
   463         static_cast<CCDIAPRecord*>( serviceRecord->iServiceIAP.iLinkedRecord );
   464 
   464     
   465 	    	CCDIAPRecord* iapRecord = 
   465     // We need service type info of the "real" iap
   466 	        	static_cast<CCDIAPRecord*>( serviceRecord->iServiceIAP.iLinkedRecord );
   466     GetServiceTypeL( *iapRecord, aServiceType );
   467 	    
   467        
   468 	    	// We need service type info of the "real" iap
   468     return iapRecord->RecordId();
   469 	    	GetServiceTypeL( *iapRecord, aServiceType );
   469     }
   470 	       	return iapRecord->RecordId();
       
   471 		}
       
   472 	}
   470 
   473 
   471 // -----------------------------------------------------------------------------
   474 // -----------------------------------------------------------------------------
   472 // CNetworkManager::GetServiceTypeL
   475 // CNetworkManager::GetServiceTypeL
   473 // -----------------------------------------------------------------------------
   476 // -----------------------------------------------------------------------------
   474 //    
   477 //