diff -r 4490afcb47b1 -r a5fecba4b1e4 omadm/omadmextensions/adapters/syncmlds/src/NSmlDsSettingsAdapter.cpp --- a/omadm/omadmextensions/adapters/syncmlds/src/NSmlDsSettingsAdapter.cpp Thu Jan 07 12:39:15 2010 +0200 +++ b/omadm/omadmextensions/adapters/syncmlds/src/NSmlDsSettingsAdapter.cpp Mon Jan 18 20:09:30 2010 +0200 @@ -941,6 +941,16 @@ } else { + if( aParentLUID.Length() > 0 ) + { + TInt ret = iCallBack->RemoveMappingL(KNSmlDSSettingsAdapterImplUid, + GetDynamicDSNodeUri( aURI ), ETrue ); + if(ret) + { + iCallBack->SetStatusL( aStatusRef, CSmlDmAdapter::EError ); + return; + } + } // // Create new profile // @@ -3817,5 +3827,24 @@ CleanupStack::PopAndDestroy( 1 );//profileIdArray return profileID; } + +//------------------------------------------------------------------------------ +// TPtrC8 CUtils::GetDynamicDSNodeUri( const TDesC8& aURI ) +// returns Syncml/DSAcc/xxx URI +//------------------------------------------------------------------------------ +TPtrC8 CNSmlDSSettingsAdapter::GetDynamicDSNodeUri(const TDesC8& aURI) + { + TInt i= 0; + TBuf8<50> DsAccRoot(KDSAcc1); + for ( i = aURI.Find( KDSAcc1 ) + DsAccRoot.Length() + 1 ; i < aURI.Length(); i++ ) + { + if( aURI[i] == '/' ) + { break; + } + } + + return aURI.Left( i ); + } + // End of File