omadm/omadmextensions/adapters/nsmldinternet/src/NSmlInternetAdapter.cpp
branchRCL_3
changeset 12 4699373c9af8
parent 2 a5fecba4b1e4
child 15 f6aa907032f4
--- a/omadm/omadmextensions/adapters/nsmldinternet/src/NSmlInternetAdapter.cpp	Fri Mar 12 15:41:35 2010 +0200
+++ b/omadm/omadmextensions/adapters/nsmldinternet/src/NSmlInternetAdapter.cpp	Mon Mar 15 12:39:36 2010 +0200
@@ -189,7 +189,8 @@
 
     iNetworkId = KErrNotFound;
     iLingerValue = NULL;
-  iLingerFlag = ETrue;
+    iLingerFlag = ETrue;
+    isAdd = EFalse;
     }
 
 //------------------------------------------------------------------------------
@@ -303,7 +304,7 @@
 //
     MSmlDmDDFObject& nNameDDF = nNAPDefDDF.AddChildObjectL(KNSmlDdfNAPName);        // Name
     FillNodeInfoL( nNameDDF, 
-                   aclTypesAddGet, 
+                   aclTypesNoDelete, 
                    MSmlDmDDFObject::EZeroOrOne, 
                    MSmlDmDDFObject::EDynamic, 
                    MSmlDmDDFObject::EChr, 
@@ -830,6 +831,8 @@
     _DBG_FILE("CNSmlInternetAdapter::AddLeafObjectL(): begin");
     DBG_ARGS8(_S8("AP:add aURI AddLeafObjectL   - %S - %S"), &aURI, &aParentLUID);
     DBG_ARGS8(_S8("AP:Object %S"), &aObject);
+    
+    isAdd = ETrue;
 
   TInt parentLUID(0);
   if(aParentLUID.Length()<=0 )
@@ -3487,16 +3490,20 @@
         // name
         if ( aURI.Find( KNSmlDdfNAPName ) >= 0 )
             {
-            CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
+            TUint32 iapID10 = IntLUID(aLUID);
+          /*  CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(serviceType,
                                                                              qDB,
-                                                                             serviceId);
+                                                                             serviceId);*/
+            CCommsDbTableView* tableView = iDatabase->OpenViewMatchingUintLC(TPtrC(IAP),
+                                                                                    TPtrC(COMMDB_ID),
+                                                                                    iapID);
                 
             errorCode = tableView->GotoFirstRecord();
                 
             if ( errorCode == KErrNone )
                 {
                 TBuf<KCommsDbSvrMaxFieldLength> columnValue;
-                TRAPD(leavecode,tableView->ReadTextL(qColumn,  columnValue));
+                TRAPD(leavecode,tableView->ReadTextL(TPtrC(COMMDB_NAME ),  columnValue));
                 if(leavecode != 0)
                     {
                     CleanupStack::PopAndDestroy(); // tableView
@@ -3508,6 +3515,8 @@
                 pushed++;
                 }
             CleanupStack::PopAndDestroy(); // tableView
+            CleanupStack::PopAndDestroy(pushed);
+            return CSmlDmAdapter::EOk;
             }
         // BearerL + NoPxForL + IAPService
         else if (aURI.Find(KNSmlDdfIAPService) >= 0) 
@@ -4835,10 +4844,19 @@
                 {
                 // Not correct name                                    
                 // Remove all mappings from AP/xxx level
-                TInt ret = iCallBack->RemoveMappingL( KNSmlInternetAdapterImplUid,
-								GetDynamicAPNodeUri( aURI ) , ETrue );		
-                iPrevURI->Des().Format( KNullDesC8 );
-                iPrevLUID = 0;
+                if(isAdd)
+                    {
+                    TInt ret = iCallBack->RemoveMappingL( KNSmlInternetAdapterImplUid,
+                                                    GetDynamicAPNodeUri( aURI ) , ETrue );      
+                    iPrevURI->Des().Format( KNullDesC8 );
+                    iPrevLUID = 0;
+                    }
+                else
+                    {
+                    iIAPExists = ETrue;
+                    iLeafType = EDMUpdate;
+                    }
+                
                 }     
             else
                 {