diff --git a/Classes/LinphoneCoreSettingsStore.m b/Classes/LinphoneCoreSettingsStore.m index ff76a437b..5d4be7eaf 100644 --- a/Classes/LinphoneCoreSettingsStore.m +++ b/Classes/LinphoneCoreSettingsStore.m @@ -506,12 +506,6 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); // We reached here without hitting the goto: the new settings are correct, so replace the previous ones. - // add auth info - linphone_core_clear_all_auth_info(lc); - if (info) { - linphone_core_add_auth_info(lc, info); - } - // setup new proxycfg if (isEditing) { linphone_proxy_config_done(proxyCfg); @@ -521,6 +515,13 @@ extern void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); linphone_core_set_default_proxy_config(lc, proxyCfg); } + // add auth info only after finishing editting the proxy config, so that + // UNREGISTER succeed + linphone_core_clear_all_auth_info(lc); + if (info) { + linphone_core_add_auth_info(lc, info); + } + bad_proxy: if (linphoneAddress) linphone_address_destroy(linphoneAddress); diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 69318b67c..a6176349b 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -922,19 +922,11 @@ static void linphone_iphone_popup_password_request(LinphoneCore *lc, const char addButtonWithTitle:NSLocalizedString(@"Continue", nil) block:^{ NSString *password = [alertView textFieldAtIndex:0].text; - LinphoneAuthInfo *info = (LinphoneAuthInfo *)linphone_core_find_auth_info( - [LinphoneManager getLc], realm.UTF8String, username.UTF8String, domain.UTF8String); - if (info) { - linphone_auth_info_set_passwd(info, password.UTF8String); - linphone_auth_info_set_ha1(info, NULL); - } else { - LOGW(@"Could not find auth info associated with %@@%@, creating it", username, domain); - info = linphone_auth_info_new(username.UTF8String, NULL, password.UTF8String, NULL, - realm.UTF8String, domain.UTF8String); - linphone_core_add_auth_info([LinphoneManager getLc], info); - } - linphone_proxy_config_refresh_register( - linphone_core_get_default_proxy_config([LinphoneManager getLc])); + LinphoneAuthInfo *info = + linphone_auth_info_new(username.UTF8String, NULL, password.UTF8String, NULL, + realm.UTF8String, domain.UTF8String); + linphone_core_add_auth_info([LinphoneManager getLc], info); + [LinphoneManager.instance refreshRegisters]; }]; [alertView show]; }