diff -r a9c0ce913924 -r 5594fba90824 syncmlfw/dm/treemodule/src/nsmldmddf.cpp --- a/syncmlfw/dm/treemodule/src/nsmldmddf.cpp Thu Jan 07 13:15:03 2010 +0200 +++ b/syncmlfw/dm/treemodule/src/nsmldmddf.cpp Mon Jan 18 21:00:49 2010 +0200 @@ -42,7 +42,6 @@ const TInt KGranularity = 4; // FOTA _LIT8 ( KNSmlDMFotaNode, "FUMO" ); -_LIT8 ( KNSmlDMAcc, "DMAcc"); _LIT8 ( KNSmlDMRoot, "." ); // FOTA end @@ -226,7 +225,7 @@ { TBool returnstatus = ETrue; TPtrC8 Uri1 = NSmlDmURI::URISeg(aURI,1); - if( iAddRootNodesList && Uri1.Match(KNSmlDMAcc) >= KErrNone )//dm case + if( iAddRootNodesList )//dm case { TPtrC8 FindUri = NSmlDmURI::URISeg(aURI,2); HBufC8* puri = HBufC8::NewLC(Uri1.Length()+FindUri.Length()+2); @@ -291,23 +290,27 @@ (err == KErrNone && (NodeAddingSuccess == EAdded || NodeAddingSuccess == ENotAdded) ) ) { - if(iAddRootNodesList) //already created - { - //Do check if there is any node already added - if( iAddRootNodesList->Match(aURI) <= KErrNotFound ) - { - iAddRootNodesList = iAddRootNodesList->ReAllocL - (iAddRootNodesList->Length() + aURI.Length()+ 10); - iAddRootNodesList->Des().Append(aURI); - } + UpdateAddNodeListL(aURI); + } + else if(err == KErrNone && NodeAddingSuccess != EFailed ) + { + //Check luid, + HBufC8* newluid = iDbSession.GetLuidAllocL(iAdapterId,aURI); + + CleanupStack::PushL(newluid); + if(newluid->Length() > 0 && newluid->Compare(*luid)==0 ) + { + _DBG_FILE("Already existed dont buffer"); } - else //getting created - { - iAddRootNodesList = HBufC8::NewL(aURI.Length()+ 10); - iAddRootNodesList->Des().Append(aURI); - } - iAddRootNodesList->Des().Append(','); - } + else + { + UpdateAddNodeListL(aURI); + } + CleanupStack::PopAndDestroy(); //newluid + } + + + } adapterCalled = ETrue; @@ -1818,4 +1821,27 @@ } } } - + +// =========================================================================== +// CNSmlDmDDF::UpdateAddNodeListL +// =========================================================================== +void CNSmlDmDDF::UpdateAddNodeListL(const TDesC8& aURI) + { + if(iAddRootNodesList) //already created + { + //Do check if there is any node already added + if( iAddRootNodesList->Match(aURI) <= KErrNotFound ) + { + iAddRootNodesList = iAddRootNodesList->ReAllocL + (iAddRootNodesList->Length() + aURI.Length()+ 10); + iAddRootNodesList->Des().Append(aURI); + } + } + else //getting created + { + iAddRootNodesList = HBufC8::NewL(aURI.Length()+ 10); + iAddRootNodesList->Des().Append(aURI); + } + iAddRootNodesList->Des().Append(','); + } +