diff -r b183ec05bd8c -r 19bba8228ff0 omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp --- a/omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp Tue Aug 31 16:04:06 2010 +0300 +++ b/omaprovisioning/provisioning/IMAdapter/Src/WPIMUtil.cpp Wed Sep 01 12:27:42 2010 +0100 @@ -26,9 +26,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include "WPAdapterUtil.h" #include @@ -47,43 +47,40 @@ // CWPPecAdapter::FindGPRSL // ----------------------------------------------------------------------------- // -TUint32 WPIMUtil::FindGPRSL( +CApAccessPointItem* WPIMUtil::FindGPRSL( RPointerArray& aLinks ) { - TUint32 iapID=NULL; - RCmManagerExt cmmanagerExt; - cmmanagerExt.OpenL(); - CleanupClosePushL(cmmanagerExt); - TUint32 bearer = 0; + CCommsDatabase* commDb = CCommsDatabase::NewL(); + CleanupStack::PushL( commDb ); + CApDataHandler* apHandler = CApDataHandler::NewLC( *commDb ); + + for( TInt i( 0 ); i < aLinks.Count(); i++ ) + { + CWPCharacteristic* curr = aLinks[i]; - - for( TInt i( 0 ); i < aLinks.Count(); i++ ) - { - CWPCharacteristic* curr = aLinks[i]; + TPckgBuf uidPckg; + for( TInt dataNum( 0 ); curr->Data( dataNum ).Length() == uidPckg.MaxLength(); dataNum++ ) + { + uidPckg.Copy( curr->Data( dataNum ) ); - TPckgBuf uidPckg; - for( TInt dataNum( 0 ); curr->Data( dataNum ).Length() == uidPckg.MaxLength(); dataNum++ ) - { - uidPckg.Copy( curr->Data( dataNum ) ); - RCmConnectionMethodExt cm; - cm = cmmanagerExt.ConnectionMethodL( uidPckg() ); - CleanupClosePushL( cm ); - bearer = cm.GetIntAttributeL( CMManager::ECmBearerType ); - if(bearer == KUidPacketDataBearerType) - { - iapID = cm.GetIntAttributeL(CMManager::ECmIapId); - CleanupStack::PopAndDestroy(2); - return iapID; - } - CleanupStack::PopAndDestroy(); // cm - } - } - CleanupStack::PopAndDestroy(); //cmmanagerExt - + CApAccessPointItem* item = CApAccessPointItem::NewLC(); + // Read the access point pointed to by TO-NAPID or TO-PROXY + apHandler->AccessPointDataL( uidPckg(), *item ); + + if( item->BearerTypeL() == EApBearerTypeGPRS ) + { + CleanupStack::Pop(); // item + CleanupStack::PopAndDestroy( 2 ); // apHandler, commDb + return item; + } + CleanupStack::PopAndDestroy( item ); + } + } + // This leave is absolutely needed as it pops & destroys // data in CleanupStack - // User::Leave( KErrNotFound ); - return iapID; + User::Leave( KErrNotFound ); + return NULL; } // -----------------------------------------------------------------------------