diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 84092e69fdb560aa10490622cb9f0d88c8da18a8..31aca35c5cbb287670f27dab2569df76412da2fc 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -623,12 +623,11 @@ static void register_success(SalOp *op, bool_t registered){ LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)sal_op_get_user_pointer(op); char *msg; - cfg->registered=registered; linphone_proxy_config_set_error(cfg,LinphoneReasonNone); linphone_proxy_config_set_state(cfg, registered ? LinphoneRegistrationOk : LinphoneRegistrationCleared , registered ? "Registration sucessful" : "Unregistration done"); if (lc->vtable.display_status){ - if (cfg->registered) msg=ms_strdup_printf(_("Registration on %s successful."),sal_op_get_proxy(op)); + if (registered) msg=ms_strdup_printf(_("Registration on %s successful."),sal_op_get_proxy(op)); else msg=ms_strdup_printf(_("Unregistration on %s done."),sal_op_get_proxy(op)); lc->vtable.display_status(lc,msg); ms_free(msg); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 30f5997628c1ef3438b5fd52dd9a3d183d4b11f6..9a8c5120865fd9a4e5e00a8f8a006eb02ad5435a 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -4164,7 +4164,7 @@ static void set_network_reachable(LinphoneCore* lc,bool_t isReachable, time_t cu LinphoneProxyConfig *cfg=(LinphoneProxyConfig*)elem->data; if (linphone_proxy_config_register_enabled(cfg) ) { if (!isReachable) { - cfg->registered=0; + linphone_proxy_config_set_state(cfg, LinphoneRegistrationNone,"Registration impossible (network down)"); }else{ cfg->commit=TRUE; } diff --git a/coreapi/private.h b/coreapi/private.h index a21fc8b20aec9bb17379c52530ac201f087230dd..77f62c33407ce7ccc3038df588fc4a75aade32e7 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -255,7 +255,6 @@ struct _LinphoneProxyConfig SalOp *publish_op; bool_t commit; bool_t reg_sendregister; - bool_t registered; bool_t publish; bool_t dial_escape_plus; void* user_data; diff --git a/coreapi/proxy.c b/coreapi/proxy.c index 011be670672f228ea7c4efb739946b20c694c808..959c321b6862d194c5275683a693d025d69f31ab 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -84,7 +84,7 @@ void linphone_proxy_config_destroy(LinphoneProxyConfig *obj){ * Returns a boolean indicating that the user is sucessfully registered on the proxy. **/ bool_t linphone_proxy_config_is_registered(const LinphoneProxyConfig *obj){ - return obj->registered; + return obj->state == LinphoneRegistrationOk; } /** @@ -232,9 +232,8 @@ void linphone_proxy_config_enable_publish(LinphoneProxyConfig *obj, bool_t val){ void linphone_proxy_config_edit(LinphoneProxyConfig *obj){ if (obj->reg_sendregister){ /* unregister */ - if (obj->registered) { + if (obj->state != LinphoneRegistrationNone && obj->state != LinphoneRegistrationCleared) { sal_unregister(obj->op); - obj->registered=FALSE; } } } @@ -301,7 +300,7 @@ static void linphone_proxy_config_register(LinphoneProxyConfig *obj){ **/ void linphone_proxy_config_refresh_register(LinphoneProxyConfig *obj){ if (obj->reg_sendregister && obj->op){ - obj->registered=FALSE; + linphone_proxy_config_set_state(obj,LinphoneRegistrationProgress, "Refresh registration"); sal_register_refresh(obj->op,obj->expires); } }