fix: do not use deprecated ConfiguredProvider in get_configured_provider

This commit is contained in:
link2xt
2025-11-27 03:04:54 +00:00
committed by l
parent 4d06f5a8ae
commit 343dca87f7
2 changed files with 20 additions and 8 deletions

View File

@@ -18,7 +18,7 @@ use crate::context::Context;
use crate::events::EventType; use crate::events::EventType;
use crate::log::LogExt; use crate::log::LogExt;
use crate::mimefactory::RECOMMENDED_FILE_SIZE; use crate::mimefactory::RECOMMENDED_FILE_SIZE;
use crate::provider::{Provider, get_provider_by_id}; use crate::provider::Provider;
use crate::sync::{self, Sync::*, SyncData}; use crate::sync::{self, Sync::*, SyncData};
use crate::tools::get_abs_path; use crate::tools::get_abs_path;
use crate::transport::ConfiguredLoginParam; use crate::transport::ConfiguredLoginParam;
@@ -646,15 +646,14 @@ impl Context {
Ok(val) Ok(val)
} }
/// Gets the configured provider, as saved in the `configured_provider` value. /// Gets the configured provider.
/// ///
/// The provider is determined by `get_provider_info()` during configuration and then saved /// The provider is determined by the current primary transport.
/// to the db in `param.save_to_database()`, together with all the other `configured_*` values.
pub async fn get_configured_provider(&self) -> Result<Option<&'static Provider>> { pub async fn get_configured_provider(&self) -> Result<Option<&'static Provider>> {
if let Some(cfg) = self.get_config(Config::ConfiguredProvider).await? { let provider = ConfiguredLoginParam::load(self)
return Ok(get_provider_by_id(&cfg)); .await?
} .and_then(|(_transport_id, param)| param.provider);
Ok(None) Ok(provider)
} }
/// Gets configured "delete_device_after" value. /// Gets configured "delete_device_after" value.

View File

@@ -33,6 +33,7 @@ use crate::context::Context;
use crate::events::{Event, EventEmitter, EventType, Events}; use crate::events::{Event, EventEmitter, EventType, Events};
use crate::key::{self, DcKey, DcSecretKey, self_fingerprint}; use crate::key::{self, DcKey, DcSecretKey, self_fingerprint};
use crate::log::warn; use crate::log::warn;
use crate::login_param::EnteredLoginParam;
use crate::message::{Message, MessageState, MsgId, update_msg_state}; use crate::message::{Message, MessageState, MsgId, update_msg_state};
use crate::mimeparser::{MimeMessage, SystemMessage}; use crate::mimeparser::{MimeMessage, SystemMessage};
use crate::pgp::KeyPair; use crate::pgp::KeyPair;
@@ -200,6 +201,18 @@ impl TestContextManager {
"{} changes her self address and reconfigures", "{} changes her self address and reconfigures",
test_context.name() test_context.name()
)); ));
// Insert a transport for the new address.
test_context.sql
.execute(
"INSERT OR IGNORE INTO transports (addr, entered_param, configured_param) VALUES (?, ?, ?)",
(
new_addr,
serde_json::to_string(&EnteredLoginParam::default()).unwrap(),
format!(r#"{{"addr":"{new_addr}","imap":[],"imap_user":"","imap_password":"","smtp":[],"smtp_user":"","smtp_password":"","certificate_checks":"Automatic","oauth2":false}}"#)
),
).await.unwrap();
test_context.set_primary_self_addr(new_addr).await.unwrap(); test_context.set_primary_self_addr(new_addr).await.unwrap();
// ensure_secret_key_exists() is called during configure // ensure_secret_key_exists() is called during configure
crate::e2ee::ensure_secret_key_exists(test_context) crate::e2ee::ensure_secret_key_exists(test_context)