diff --git a/deltachat-rpc-client/tests/test_something.py b/deltachat-rpc-client/tests/test_something.py index fe329b4bf..4eb814a6f 100644 --- a/deltachat-rpc-client/tests/test_something.py +++ b/deltachat-rpc-client/tests/test_something.py @@ -91,7 +91,15 @@ def test_lowercase_address(acfactory) -> None: assert account.list_transports()[0]["addr"] == addr param = account.get_info()["used_transport_settings"] - assert addr in param + + domain = addr.rsplit("@")[-1] + domain_upper = addr_upper.rsplit("@")[-1] + assert domain in param + assert domain_upper not in param + + # Whole address should not appear in the info, + # does not matter if uppercase or lowercase. + assert addr not in param assert addr_upper not in param diff --git a/src/context.rs b/src/context.rs index 9c8f9a0cf..4d8669182 100644 --- a/src/context.rs +++ b/src/context.rs @@ -21,7 +21,6 @@ use crate::contact::{Contact, ContactId}; use crate::debug_logging::DebugLogging; use crate::events::{Event, EventEmitter, EventType, Events}; use crate::imap::{Imap, ServerMetadata}; -use crate::key::self_fingerprint; use crate::log::warn; use crate::logged_debug_assert; use crate::message::{self, MessageState, MsgId}; @@ -843,7 +842,6 @@ impl Context { /// Returns information about the context as key-value pairs. pub async fn get_info(&self) -> Result> { - let all_self_addrs = self.get_all_self_addrs().await?.join(", "); let all_transports: Vec = ConfiguredLoginParam::load_all(self) .await? .into_iter() @@ -941,7 +939,6 @@ impl Context { } } - res.insert("all_self_addrs", all_self_addrs); res.insert( "who_can_call_me", self.get_config_int(Config::WhoCanCallMe).await?.to_string(), diff --git a/src/transport.rs b/src/transport.rs index 7d68cf7ad..9e2a23d83 100644 --- a/src/transport.rs +++ b/src/transport.rs @@ -131,7 +131,9 @@ pub(crate) struct ConfiguredServerLoginParam { impl fmt::Display for ConfiguredServerLoginParam { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{}:{}", self.connection, self.user)?; + // Do not print the username, + // we do not want it to end up in the logs. + write!(f, "{}", self.connection)?; Ok(()) } } @@ -227,13 +229,21 @@ pub(crate) struct ConfiguredLoginParamJson { impl fmt::Display for ConfiguredLoginParam { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let addr = &self.addr; let provider_id = match self.provider { Some(provider) => provider.id, None => "none", }; let certificate_checks = self.certificate_checks; - write!(f, "{addr} imap:[")?; + if let Ok(parsed_addr) = EmailAddress::new(&self.addr) { + // Only include the domain. + write!(f, "***@{}", parsed_addr.domain)?; + } else { + // Should not happen, but if the address + // does not have a distinct domain part, + // print it as is. + write!(f, "{}", self.addr)?; + }; + write!(f, " imap:[")?; let mut first = true; for imap in &self.imap { if !first {