Update dependencies, fix Clippy warnings

This commit is contained in:
David Bürgin 2021-12-19 09:46:15 +01:00
parent 2a8687d1be
commit 4522f377c5
5 changed files with 57 additions and 50 deletions

View file

@ -1,5 +1,9 @@
# SpamAssassin Milter changelog
## 0.2.1 (unreleased)
* Update dependencies.
## 0.2.0 (2021-08-26)
* Bump minimum supported Rust version to 1.46.0.

40
Cargo.lock generated
View file

@ -4,9 +4,9 @@ version = 3
[[package]]
name = "ansi_term"
version = "0.11.0"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
dependencies = [
"winapi",
]
@ -49,9 +49,9 @@ dependencies = [
[[package]]
name = "clap"
version = "2.33.3"
version = "2.34.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c"
dependencies = [
"ansi_term",
"atty",
@ -79,15 +79,15 @@ checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
[[package]]
name = "libc"
version = "0.2.108"
version = "0.2.112"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8521a1b57e76b1ec69af7599e75e38e7b7fad6610f037db8c79b127201b5d119"
checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
[[package]]
name = "milter"
version = "0.2.3"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92e63d2a1125192952a422c891f6860ee48af6e256c07a48792d181e2752e20d"
checksum = "6f8303a6ac7b50962cb1a24ea9f35fd336dc680a628e167962adee4a9a1babf3"
dependencies = [
"bitflags",
"libc",
@ -98,9 +98,9 @@ dependencies = [
[[package]]
name = "milter-callback"
version = "0.2.3"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bf7ad54ab8a2d8f324b5628140a585cfae22081d7bde7ebdc11bb7568e890ea"
checksum = "6288a38fe087aff33e732c50d4eb05a782a19eef0f29eaf1f9b931ba9ef37f1e"
dependencies = [
"proc-macro2",
"quote",
@ -109,9 +109,9 @@ dependencies = [
[[package]]
name = "milter-sys"
version = "0.2.2"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c6a5a6fe12debcf5428e77f5c0e569444a131c8c6043b1e2d1513680fa93cd25"
checksum = "46d0d54709e88c3b120d9c7bc90555bd5a1584c19f78ca15cd262d4de7faf34c"
dependencies = [
"libc",
"pkg-config",
@ -138,21 +138,21 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.8.0"
version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
[[package]]
name = "pkg-config"
version = "0.3.22"
version = "0.3.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
[[package]]
name = "proc-macro2"
version = "1.0.32"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43"
checksum = "2f84e92c0f7c9d58328b85a78557813e4bd845130db68d7184635344399423b1"
dependencies = [
"unicode-xid",
]
@ -186,9 +186,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
[[package]]
name = "syn"
version = "1.0.81"
version = "1.0.82"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966"
checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"
dependencies = [
"proc-macro2",
"quote",

View file

@ -2,13 +2,13 @@
name = "spamassassin-milter"
version = "0.2.0"
edition = "2018"
rust-version = "1.46.0"
description = "Milter for spam filtering with SpamAssassin"
license = "GPL-3.0-or-later"
categories = ["email"]
keywords = ["email", "milter", "spam", "spamassassin"]
repository = "https://gitlab.com/glts/spamassassin-milter"
exclude = ["/.gitignore", "/.gitlab-ci.yml"]
rust-version = "1.46.0"
[dependencies]
chrono = "0.4.10"

View file

@ -408,27 +408,27 @@ mod tests {
impl ActionContext for MockActionContext {
fn add_header(&self, name: &str, value: &str) -> milter::Result<()> {
Ok(self.called.borrow_mut().push(
Action::AddHeader(name.to_owned(), value.to_owned())
))
let action = Action::AddHeader(name.to_owned(), value.to_owned());
self.called.borrow_mut().push(action);
Ok(())
}
fn insert_header(&self, index: usize, name: &str, value: &str) -> milter::Result<()> {
Ok(self.called.borrow_mut().push(
Action::InsertHeader(index, name.to_owned(), value.to_owned())
))
let action = Action::InsertHeader(index, name.to_owned(), value.to_owned());
self.called.borrow_mut().push(action);
Ok(())
}
fn replace_header(&self, name: &str, index: usize, value: Option<&str>) -> milter::Result<()> {
Ok(self.called.borrow_mut().push(
Action::ReplaceHeader(name.to_owned(), index, value.map(|v| v.to_owned()))
))
let action = Action::ReplaceHeader(name.to_owned(), index, value.map(|v| v.to_owned()));
self.called.borrow_mut().push(action);
Ok(())
}
fn append_body_chunk(&self, bytes: &[u8]) -> milter::Result<()> {
Ok(self.called.borrow_mut().push(
Action::AppendBodyChunk(bytes.to_owned())
))
let action = Action::AppendBodyChunk(bytes.to_owned());
self.called.borrow_mut().push(action);
Ok(())
}
fn replace_sender(&self, _: &str, _: Option<&str>) -> milter::Result<()> {
@ -459,11 +459,13 @@ mod tests {
ext_code: Option<&str>,
msg_lines: Vec<&str>,
) -> milter::Result<()> {
Ok(self.called.borrow_mut().push(Action::SetErrorReply(
let action = Action::SetErrorReply(
code.to_owned(),
ext_code.map(|c| c.to_owned()),
msg_lines.into_iter().map(|l| l.to_owned()).collect(),
)))
);
self.called.borrow_mut().push(action);
Ok(())
}
}

View file

@ -74,7 +74,7 @@ fn header_lines(header: &[u8]) -> Vec<&[u8]> {
fn parse_header_line(bytes: &[u8]) -> Result<Header<'_>> {
// This assumes that headers received back from SpamAssassin are valid
// UTF-8, which is plausible since the client only sent UTF-8 earlier.
// UTF-8, which should be the case since the client only sent UTF-8 earlier.
let line = str::from_utf8(bytes).map_err(|_| Error::ParseEmail)?;
let (name, value) = line.split_at(line.find(':').ok_or(Error::ParseEmail)?);
@ -235,12 +235,13 @@ impl<'a, 'c> HeaderRewriter<'a, 'c> {
id: &str,
actions: &impl ActionContext,
) -> milter::Result<()> {
let mods = self.spam_assassin_mods.iter();
if self.prepend.unwrap_or(false) {
// Prepend X-Spam- headers in reverse order, so that they appear
// in the order received from SpamAssassin.
execute_mods(id, self.spam_assassin_mods.iter().rev(), actions, self.config)?;
execute_mods(id, mods.rev(), actions, self.config)?;
} else {
execute_mods(id, self.spam_assassin_mods.iter(), actions, self.config)?;
execute_mods(id, mods, actions, self.config)?;
}
// Delete all incoming X-Spam- headers not returned by SpamAssassin to
@ -370,9 +371,9 @@ mod tests {
#[test]
fn email_split_at_eoh() {
assert_eq!(split_at_eoh(b"x\r\n\r\ny"), Ok((b"x\r\n" as &[_], b"y" as &[_])));
assert_eq!(split_at_eoh(b"x\r\n\r\n"), Ok((b"x\r\n" as &[_], b"" as &[_])));
assert_eq!(split_at_eoh(b"\r\n\r\ny"), Ok((b"\r\n" as &[_], b"y" as &[_])));
assert_eq!(split_at_eoh(b"x\r\n\r\ny"), Ok((&b"x\r\n"[..], &b"y"[..])));
assert_eq!(split_at_eoh(b"x\r\n\r\n"), Ok((&b"x\r\n"[..], &b""[..])));
assert_eq!(split_at_eoh(b"\r\n\r\ny"), Ok((&b"\r\n"[..], &b"y"[..])));
assert_eq!(split_at_eoh(b"\r\ny"), Err(Error::ParseEmail));
assert_eq!(split_at_eoh(b"y"), Err(Error::ParseEmail));
}
@ -380,25 +381,25 @@ mod tests {
#[test]
fn email_header_lines_empty() {
assert_eq!(header_lines(b""), Vec::<&[_]>::new());
assert_eq!(header_lines(b"\r\n"), vec![b"" as &[_]]);
assert_eq!(header_lines(b"\r\n\r\n"), vec![b"" as &[_], b"" as &[_]]);
assert_eq!(header_lines(b"\r\n"), vec![&b""[..]]);
assert_eq!(header_lines(b"\r\n\r\n"), vec![&b""[..], &b""[..]]);
}
#[test]
fn email_header_lines_simple() {
assert_eq!(header_lines(b"x\r\n"), vec![b"x" as &[_]]);
assert_eq!(header_lines(b"x\r\ny"), vec![b"x" as &[_], b"y" as &[_]]);
assert_eq!(header_lines(b"x\r\ny\r\n"), vec![b"x" as &[_], b"y" as &[_]]);
assert_eq!(header_lines(b"x\r\n"), vec![&b"x"[..]]);
assert_eq!(header_lines(b"x\r\ny"), vec![&b"x"[..], &b"y"[..]]);
assert_eq!(header_lines(b"x\r\ny\r\n"), vec![&b"x"[..], &b"y"[..]]);
}
#[test]
fn email_header_lines_multi() {
assert_eq!(header_lines(b"x\r\n\t"), vec![b"x\r\n\t" as &[_]]);
assert_eq!(header_lines(b"x\r\n\ty"), vec![b"x\r\n\ty" as &[_]]);
assert_eq!(header_lines(b"x\r\n\ty\r\n"), vec![b"x\r\n\ty" as &[_]]);
assert_eq!(header_lines(b"x\r\n\t"), vec![&b"x\r\n\t"[..]]);
assert_eq!(header_lines(b"x\r\n\ty"), vec![&b"x\r\n\ty"[..]]);
assert_eq!(header_lines(b"x\r\n\ty\r\n"), vec![&b"x\r\n\ty"[..]]);
assert_eq!(
header_lines(b"x\r\n\ty\r\n\tz\r\nq"),
vec![b"x\r\n\ty\r\n\tz" as &[_], b"q" as &[_]]
vec![&b"x\r\n\ty\r\n\tz"[..], &b"q"[..]]
);
}