--- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Fri Sep 17 08:32:30 2010 +0300
+++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileCacheItem.cpp Mon Oct 04 00:41:02 2010 +0300
@@ -765,10 +765,23 @@
{
PROFILE_DEBUG4("ProfileCacheItem::HandleError id,err", ProfileId(), aError)
+ TBool updateProfile(HasProfileUpdate() && iCurrentState->Name() ==
+ CSIPConcreteProfile::EUnregistrationInProgress);
if (iCurrentState->ErrorOccurred(*this, aError))
{
PROFILE_DEBUG1("ProfileCacheItem::HandleError go unregistered")
-
+
+ if(updateProfile)
+ {
+ PROFILE_DEBUG1("CSIPProfileCacheItem::HandleError ChangeStateL")
+ StopSnapMonitoring();
+ TRAPD(err, ChangeStateL(&iServerCore.UnregisteredState()));
+ if (err == KErrNone)
+ {
+ return EFalse;
+ }
+ }
+ PROFILE_DEBUG1("CSIPProfileCacheItem::HandleError SwitchToUnregisteredState")
if(SwitchToUnregisteredState(ETrue))
{
return EFalse;