fix: avoid giving LinphoneRegistration* notifications for removed proxy config

This commit is contained in:
Simon Morlat 2012-02-23 18:27:56 +01:00
parent 20d21f4b5b
commit 3da2b2ae96
2 changed files with 12 additions and 2 deletions

View file

@ -638,6 +638,10 @@ static void register_success(SalOp *op, bool_t registered){
LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)sal_op_get_user_pointer(op);
char *msg;
if (cfg->deletion_date!=0){
ms_message("Registration success for removed proxy config, ignored");
return;
}
linphone_proxy_config_set_error(cfg,LinphoneReasonNone);
linphone_proxy_config_set_state(cfg, registered ? LinphoneRegistrationOk : LinphoneRegistrationCleared ,
registered ? "Registration sucessful" : "Unregistration done");
@ -658,6 +662,10 @@ static void register_failure(SalOp *op, SalError error, SalReason reason, const
ms_warning("Registration failed for unknown proxy config.");
return ;
}
if (cfg->deletion_date!=0){
ms_message("Registration failed for removed proxy config, ignored");
return;
}
if (details==NULL)
details=_("no response timeout");

View file

@ -547,8 +547,10 @@ void linphone_core_remove_proxy_config(LinphoneCore *lc, LinphoneProxyConfig *cf
/* add to the list of destroyed proxies, so that the possible unREGISTER request can succeed authentication */
lc->sip_conf.deleted_proxies=ms_list_append(lc->sip_conf.deleted_proxies,(void *)cfg);
cfg->deletion_date=ms_time(NULL);
/* this will unREGISTER */
linphone_proxy_config_edit(cfg);
if (cfg->state==LinphoneRegistrationOk){
/* this will unREGISTER */
linphone_proxy_config_edit(cfg);
}
if (lc->default_proxy==cfg){
lc->default_proxy=NULL;
}