Skip to content

Commit 4fa2153

Browse files
committed
fix: do not use deprecated ConfiguredProvider in get_configured_provider
1 parent 295326a commit 4fa2153

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

src/config.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use crate::context::Context;
1818
use crate::events::EventType;
1919
use crate::log::LogExt;
2020
use crate::mimefactory::RECOMMENDED_FILE_SIZE;
21-
use crate::provider::{Provider, get_provider_by_id};
21+
use crate::provider::Provider;
2222
use crate::sync::{self, Sync::*, SyncData};
2323
use crate::tools::get_abs_path;
2424
use crate::transport::ConfiguredLoginParam;
@@ -646,15 +646,14 @@ impl Context {
646646
Ok(val)
647647
}
648648

649-
/// Gets the configured provider, as saved in the `configured_provider` value.
649+
/// Gets the configured provider.
650650
///
651-
/// The provider is determined by `get_provider_info()` during configuration and then saved
652-
/// to the db in `param.save_to_database()`, together with all the other `configured_*` values.
651+
/// The provider is determined by the current primary transport.
653652
pub async fn get_configured_provider(&self) -> Result<Option<&'static Provider>> {
654-
if let Some(cfg) = self.get_config(Config::ConfiguredProvider).await? {
655-
return Ok(get_provider_by_id(&cfg));
656-
}
657-
Ok(None)
653+
let provider = ConfiguredLoginParam::load(self)
654+
.await?
655+
.and_then(|(_transport_id, param)| param.provider);
656+
Ok(provider)
658657
}
659658

660659
/// Gets configured "delete_device_after" value.

src/test_utils.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ use crate::context::Context;
3333
use crate::events::{Event, EventEmitter, EventType, Events};
3434
use crate::key::{self, DcKey, DcSecretKey, self_fingerprint};
3535
use crate::log::warn;
36+
use crate::login_param::EnteredLoginParam;
3637
use crate::message::{Message, MessageState, MsgId, update_msg_state};
3738
use crate::mimeparser::{MimeMessage, SystemMessage};
3839
use crate::pgp::KeyPair;
@@ -200,6 +201,18 @@ impl TestContextManager {
200201
"{} changes her self address and reconfigures",
201202
test_context.name()
202203
));
204+
205+
// Insert a transport for the new address.
206+
test_context.sql
207+
.execute(
208+
"INSERT OR IGNORE INTO transports (addr, entered_param, configured_param) VALUES (?, ?, ?)",
209+
(
210+
new_addr,
211+
serde_json::to_string(&EnteredLoginParam::default()).unwrap(),
212+
format!(r#"{{"addr":"{new_addr}","imap":[],"imap_user":"","imap_password":"","smtp":[],"smtp_user":"","smtp_password":"","certificate_checks":"Automatic","oauth2":false}}"#)
213+
),
214+
).await.unwrap();
215+
203216
test_context.set_primary_self_addr(new_addr).await.unwrap();
204217
// ensure_secret_key_exists() is called during configure
205218
crate::e2ee::ensure_secret_key_exists(test_context)

0 commit comments

Comments
 (0)