realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp
branchRCL_3
changeset 43 b5e99d8877c7
parent 41 f54bfd820e04
child 44 0dcb073356a5
equal deleted inserted replaced
41:f54bfd820e04 43:b5e99d8877c7
   394     CSIPProfileCacheItem* item = ProfileCacheItem(aProfile.Id());
   394     CSIPProfileCacheItem* item = ProfileCacheItem(aProfile.Id());
   395     if (!item)
   395     if (!item)
   396     	{
   396     	{
   397     	return EFalse;
   397     	return EFalse;
   398     	}
   398     	}
   399 
   399     
       
   400       if((aError != KErrNone) && item->HasQueuedUpdate())
       
   401         {
       
   402         PROFILE_DEBUG4("ProfileServerCore::ProceedRegistration HasQueuedUpdate, err",
       
   403 			item->HasQueuedUpdate(), aError)
       
   404         return EFalse;
       
   405         }
       
   406     
   400     if ( ShouldChangeIap(item->UsedProfile(), aError) && 
   407     if ( ShouldChangeIap(item->UsedProfile(), aError) && 
   401     	 !item->SnapRetryCountReached() )
   408     	 !item->SnapRetryCountReached() )
   402         {
   409         {
   403         PROFILE_DEBUG1("CSIPProfileServerCore::ProceedRegistration, IAP should be changed")
   410         PROFILE_DEBUG1("CSIPProfileServerCore::ProceedRegistration, IAP should be changed")
   404         // If IAP should be changed, handle this like an error, so the profile
   411         // If IAP should be changed, handle this like an error, so the profile
  1544     {
  1551     {
  1545     TInt index = iObservers.Find(&aObserver);
  1552     TInt index = iObservers.Find(&aObserver);
  1546     if (index != KErrNotFound)
  1553     if (index != KErrNotFound)
  1547         {
  1554         {
  1548         iObservers.Remove(index);
  1555         iObservers.Remove(index);
       
  1556         iObservers.Compress();
  1549         }
  1557         }
  1550 
  1558 
  1551     for (TInt i = 0; i < iProfileCache.Count(); i ++)
  1559     for (TInt i = 0; i < iProfileCache.Count(); i ++)
  1552         {
  1560         {
  1553         CSIPProfileCacheItem* item = iProfileCache[i];
  1561         CSIPProfileCacheItem* item = iProfileCache[i];
  1924 	{
  1932 	{
  1925     TInt index = ProfileCached(aProfileId);
  1933     TInt index = ProfileCached(aProfileId);
  1926     if (index >= 0)
  1934     if (index >= 0)
  1927     	{
  1935     	{
  1928     	iProfileCache.Remove(index);
  1936     	iProfileCache.Remove(index);
       
  1937     	iProfileCache.Compress();
  1929     	}
  1938     	}
  1930 	}
  1939 	}
  1931 
  1940 
  1932 // -----------------------------------------------------------------------------
  1941 // -----------------------------------------------------------------------------
  1933 // CSIPProfileServerCore::RemoveUnusedMigrationControllers
  1942 // CSIPProfileServerCore::RemoveUnusedMigrationControllers
  1940 		if (!iMigrationControllers[i]->IsUsed() &&
  1949 		if (!iMigrationControllers[i]->IsUsed() &&
  1941 			iMigrationControllers[i]->SnapId() != aSnapId)
  1950 			iMigrationControllers[i]->SnapId() != aSnapId)
  1942 			{
  1951 			{
  1943 			CSipAlrMigrationController* unused = iMigrationControllers[i];
  1952 			CSipAlrMigrationController* unused = iMigrationControllers[i];
  1944 			iMigrationControllers.Remove(i);
  1953 			iMigrationControllers.Remove(i);
       
  1954 			iMigrationControllers.Compress();
  1945 			delete unused;
  1955 			delete unused;
       
  1956 			unused = NULL;
  1946 			}
  1957 			}
  1947 		}
  1958 		}
  1948 	}
  1959 	}
  1949 
  1960 
  1950 // -----------------------------------------------------------------------------
  1961 // -----------------------------------------------------------------------------