Merge upstream v0.16.23
Five conflicts, resolved: - crates/common/src/auth/authentication.rs: upstream's get_directory_for_token and JwtClaims replace extract_jwt_domain; the per-domain directory code (DIR-1, DIR-5 to DIR-7) is kept, and the token lookup routes through it. The release's one new Enterprise snippet was the body of get_directory_for_issuer, which stays returning None: a token naming no address gets the server default, as DIR-2 specifies and as v0.16.22 did. - crates/common/src/manager/application.rs: upstream's rewrite of the tests, with the temp directory names renamed again, and the 5(a) notice the name-purge change should have added. - crates/common/src/network/mta.rs: both sides' imports. - crates/main/Cargo.toml: the AGPL-only license kept, version 0.16.23. - Cargo.lock: upstream's, with the fork's crates added by Cargo.
This commit is contained in:
@@ -443,7 +443,7 @@ impl<T: SessionStream> Session<T> {
|
||||
if !rc.analysis.forward {
|
||||
self.data
|
||||
.rcpt_to
|
||||
.retain(|rcpt| !rc.analysis.is_report_address(rcpt.report_address()));
|
||||
.retain(|rcpt| !rc.analysis.is_report_address(rcpt.orig_address()));
|
||||
}
|
||||
|
||||
if self.data.rcpt_to.is_empty() {
|
||||
|
||||
@@ -202,8 +202,8 @@ impl<T: SessionStream> Session<T> {
|
||||
let mut new_addr = SessionAddress::new(address);
|
||||
|
||||
if !self.data.rcpt_to.contains(&new_addr) {
|
||||
new_addr.dsn_info = format!("rfc822;{}", orig_addr.address_lcase).into();
|
||||
new_addr.flags = orig_addr.flags;
|
||||
new_addr.dsn_info = orig_addr.address_lcase.into();
|
||||
self.data.rcpt_to.push(new_addr);
|
||||
} else {
|
||||
trc::event!(
|
||||
@@ -353,7 +353,6 @@ impl<T: SessionStream> Session<T> {
|
||||
// Expand list
|
||||
if let Some(members) = rcpt_members {
|
||||
let list_addr = self.data.rcpt_to.pop().unwrap();
|
||||
let orcpt = format!("rfc822;{}", list_addr.address_lcase);
|
||||
for member in members.as_ref() {
|
||||
let member_lcase = member.to_lowercase();
|
||||
let is_local = match self
|
||||
@@ -399,7 +398,7 @@ impl<T: SessionStream> Session<T> {
|
||||
if !self.data.rcpt_to.contains(&member_addr)
|
||||
&& member_addr.address_lcase != list_addr.address_lcase
|
||||
{
|
||||
member_addr.dsn_info = orcpt.clone().into();
|
||||
member_addr.dsn_info = list_addr.address_lcase.clone().into();
|
||||
member_addr.flags = list_addr.flags;
|
||||
self.data.rcpt_to.push(member_addr);
|
||||
}
|
||||
|
||||
@@ -89,17 +89,7 @@ impl<T: SessionStream> Session<T> {
|
||||
.iter()
|
||||
.map(|r| r.address_lcase.as_str())
|
||||
.collect(),
|
||||
env_rcpt_orig_to: self
|
||||
.data
|
||||
.rcpt_to
|
||||
.iter()
|
||||
.map(|r| {
|
||||
r.dsn_info
|
||||
.as_deref()
|
||||
.and_then(|info| info.strip_prefix("rfc822;"))
|
||||
.unwrap_or(r.address_lcase.as_str())
|
||||
})
|
||||
.collect(),
|
||||
env_rcpt_orig_to: self.data.rcpt_to.iter().map(|r| r.orig_address()).collect(),
|
||||
is_test: false,
|
||||
is_train: false,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user