diff -r dd3853b8dc3f -r 1e1cc61f56c3 realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileState.cpp --- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileState.cpp Fri Feb 19 23:10:33 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileState.cpp Fri Mar 12 15:44:11 2010 +0200 @@ -407,3 +407,22 @@ { PROFILE_DEBUG1("CSIPProfileState::NoNewIapAvailable") } + +// ----------------------------------------------------------------------------- +// CSIPProfileState::DeregisterWhileRegInProgressL +// ----------------------------------------------------------------------------- +// +void CSIPProfileState::DeregisterWhileRegInProgressL(CSIPProfileCacheItem& aItem, + CSIPProfileState& aUnregistered) + { + if ( !iPluginDirector.IsRegisterPending( aItem.UsedProfile() ) ) + { + CSIPConcreteProfile::TStatus status; + iPluginDirector.State( status, aItem.UsedProfile() ); + iPluginDirector.DeregisterL( aItem.UsedProfile() ); + if ( status == CSIPConcreteProfile::ERegistrationInProgress ) + { + aItem.ChangeStateL( &aUnregistered ); + } + } + }