Update crates and some Clippy fixes (#4475)

- Updated all crates including reqwest
- Fixed some clippy lints reported by nightly Rust
This commit is contained in:
Mathijs van Veluw 2024-04-06 13:55:10 +02:00 committed by GitHub
parent 129b835ac7
commit e42a37c6c1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 401 additions and 175 deletions

519
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -67,11 +67,11 @@ dashmap = "5.5.3"
# Async futures # Async futures
futures = "0.3.30" futures = "0.3.30"
tokio = { version = "1.36.0", features = ["rt-multi-thread", "fs", "io-util", "parking_lot", "time", "signal"] } tokio = { version = "1.37.0", features = ["rt-multi-thread", "fs", "io-util", "parking_lot", "time", "signal"] }
# A generic serialization/deserialization framework # A generic serialization/deserialization framework
serde = { version = "1.0.197", features = ["derive"] } serde = { version = "1.0.197", features = ["derive"] }
serde_json = "1.0.114" serde_json = "1.0.115"
# A safe, extensible ORM and Query builder # A safe, extensible ORM and Query builder
diesel = { version = "2.1.5", features = ["chrono", "r2d2", "numeric"] } diesel = { version = "2.1.5", features = ["chrono", "r2d2", "numeric"] }
@ -89,8 +89,8 @@ ring = "0.17.8"
uuid = { version = "1.8.0", features = ["v4"] } uuid = { version = "1.8.0", features = ["v4"] }
# Date and time libraries # Date and time libraries
chrono = { version = "0.4.35", features = ["clock", "serde"], default-features = false } chrono = { version = "0.4.37", features = ["clock", "serde"], default-features = false }
chrono-tz = "0.8.6" chrono-tz = "0.9.0"
time = "0.3.34" time = "0.3.34"
# Job scheduler # Job scheduler
@ -115,27 +115,27 @@ webauthn-rs = "0.3.2"
url = "2.5.0" url = "2.5.0"
# Email libraries # Email libraries
lettre = { version = "0.11.4", features = ["smtp-transport", "sendmail-transport", "builder", "serde", "tokio1-native-tls", "hostname", "tracing", "tokio1"], default-features = false } lettre = { version = "0.11.6", features = ["smtp-transport", "sendmail-transport", "builder", "serde", "tokio1-native-tls", "hostname", "tracing", "tokio1"], default-features = false }
percent-encoding = "2.3.1" # URL encoding library used for URL's in the emails percent-encoding = "2.3.1" # URL encoding library used for URL's in the emails
email_address = "0.2.4" email_address = "0.2.4"
# HTML Template library # HTML Template library
handlebars = { version = "5.1.0", features = ["dir_source"] } handlebars = { version = "5.1.2", features = ["dir_source"] }
# HTTP client (Used for favicons, version check, DUO and HIBP API) # HTTP client (Used for favicons, version check, DUO and HIBP API)
reqwest = { version = "0.11.27", features = ["default-tls", "native-tls-alpn", "stream", "json", "gzip", "brotli", "socks", "cookies", "hickory-dns"], default-features = false} reqwest = { version = "0.12.3", features = ["native-tls-alpn", "stream", "json", "gzip", "brotli", "socks", "cookies", "hickory-dns"] }
# Favicon extraction libraries # Favicon extraction libraries
html5gum = "0.5.7" html5gum = "0.5.7"
regex = { version = "1.10.3", features = ["std", "perf", "unicode-perl"], default-features = false } regex = { version = "1.10.4", features = ["std", "perf", "unicode-perl"], default-features = false }
data-url = "0.3.1" data-url = "0.3.1"
bytes = "1.5.0" bytes = "1.6.0"
# Cache function results (Used for version check and favicon fetching) # Cache function results (Used for version check and favicon fetching)
cached = { version = "0.49.2", features = ["async"] } cached = { version = "0.49.2", features = ["async"] }
# Used for custom short lived cookie jar during favicon extraction # Used for custom short lived cookie jar during favicon extraction
cookie = "0.18.0" cookie = "0.18.1"
cookie_store = "0.21.0" cookie_store = "0.21.0"
# Used by U2F, JWT and PostgreSQL # Used by U2F, JWT and PostgreSQL
@ -154,7 +154,7 @@ semver = "1.0.22"
# Allow overriding the default memory allocator # Allow overriding the default memory allocator
# Mainly used for the musl builds, since the default musl malloc is very slow # Mainly used for the musl builds, since the default musl malloc is very slow
mimalloc = { version = "0.1.39", features = ["secure"], default-features = false, optional = true } mimalloc = { version = "0.1.39", features = ["secure"], default-features = false, optional = true }
which = "6.0.0" which = "6.0.1"
# Argon2 library with support for the PHC format # Argon2 library with support for the PHC format
argon2 = "0.5.3" argon2 = "0.5.3"
@ -205,14 +205,14 @@ unsafe_code = "forbid"
non_ascii_idents = "forbid" non_ascii_idents = "forbid"
# Deny # Deny
future_incompatible = "deny" future_incompatible = { level = "deny", priority = -1 }
noop_method_call = "deny" noop_method_call = "deny"
pointer_structural_match = "deny" pointer_structural_match = "deny"
rust_2018_idioms = "deny" rust_2018_idioms = { level = "deny", priority = -1 }
rust_2021_compatibility = "deny" rust_2021_compatibility = { level = "deny", priority = -1 }
trivial_casts = "deny" trivial_casts = "deny"
trivial_numeric_casts = "deny" trivial_numeric_casts = "deny"
unused = "deny" unused = { level = "deny", priority = -1 }
unused_import_braces = "deny" unused_import_braces = "deny"
unused_lifetimes = "deny" unused_lifetimes = "deny"
deprecated_in_future = "deny" deprecated_in_future = "deny"

View File

@ -701,10 +701,7 @@ async fn diagnostics(_token: AdminToken, ip_header: IpHeader, mut conn: DbConn)
let (latest_release, latest_commit, latest_web_build) = let (latest_release, latest_commit, latest_web_build) =
get_release_info(has_http_access, running_within_container).await; get_release_info(has_http_access, running_within_container).await;
let ip_header_name = match &ip_header.0 { let ip_header_name = &ip_header.0.unwrap_or_default();
Some(h) => h,
_ => "",
};
let diagnostics_json = json!({ let diagnostics_json = json!({
"dns_resolved": dns_resolved, "dns_resolved": dns_resolved,
@ -717,8 +714,8 @@ async fn diagnostics(_token: AdminToken, ip_header: IpHeader, mut conn: DbConn)
"running_within_container": running_within_container, "running_within_container": running_within_container,
"container_base_image": if running_within_container { container_base_image() } else { "Not applicable" }, "container_base_image": if running_within_container { container_base_image() } else { "Not applicable" },
"has_http_access": has_http_access, "has_http_access": has_http_access,
"ip_header_exists": &ip_header.0.is_some(), "ip_header_exists": !ip_header_name.is_empty(),
"ip_header_match": ip_header_name == CONFIG.ip_header(), "ip_header_match": ip_header_name.eq(&CONFIG.ip_header()),
"ip_header_name": ip_header_name, "ip_header_name": ip_header_name,
"ip_header_config": &CONFIG.ip_header(), "ip_header_config": &CONFIG.ip_header(),
"uses_proxy": uses_proxy, "uses_proxy": uses_proxy,

View File

@ -2247,7 +2247,7 @@ impl GroupRequest {
} }
pub fn update_group(&self, mut group: Group) -> Group { pub fn update_group(&self, mut group: Group) -> Group {
group.name = self.Name.clone(); group.name.clone_from(&self.Name);
group.access_all = self.AccessAll.unwrap_or(false); group.access_all = self.AccessAll.unwrap_or(false);
// Group Updates do not support changing the external_id // Group Updates do not support changing the external_id
// These input fields are in a disabled state, and can only be updated/added via ldap_import // These input fields are in a disabled state, and can only be updated/added via ldap_import

View File

@ -289,7 +289,7 @@ fn serialize(val: Value) -> Vec<u8> {
fn serialize_date(date: NaiveDateTime) -> Value { fn serialize_date(date: NaiveDateTime) -> Value {
let seconds: i64 = date.and_utc().timestamp(); let seconds: i64 = date.and_utc().timestamp();
let nanos: i64 = date.timestamp_subsec_nanos().into(); let nanos: i64 = date.and_utc().timestamp_subsec_nanos().into();
let timestamp = nanos << 34 | seconds; let timestamp = nanos << 34 | seconds;
let bs = timestamp.to_be_bytes(); let bs = timestamp.to_be_bytes();

View File

@ -4,7 +4,7 @@ use chrono::{TimeDelta, Utc};
use num_traits::FromPrimitive; use num_traits::FromPrimitive;
use once_cell::sync::{Lazy, OnceCell}; use once_cell::sync::{Lazy, OnceCell};
use jsonwebtoken::{self, errors::ErrorKind, Algorithm, DecodingKey, EncodingKey, Header}; use jsonwebtoken::{errors::ErrorKind, Algorithm, DecodingKey, EncodingKey, Header};
use openssl::rsa::Rsa; use openssl::rsa::Rsa;
use serde::de::DeserializeOwned; use serde::de::DeserializeOwned;
use serde::ser::Serialize; use serde::ser::Serialize;
@ -391,10 +391,8 @@ impl<'r> FromRequest<'r> for Host {
let host = if let Some(host) = headers.get_one("X-Forwarded-Host") { let host = if let Some(host) = headers.get_one("X-Forwarded-Host") {
host host
} else if let Some(host) = headers.get_one("Host") {
host
} else { } else {
"" headers.get_one("Host").unwrap_or_default()
}; };
format!("{protocol}://{host}") format!("{protocol}://{host}")

View File

@ -431,7 +431,7 @@ impl Cipher {
} }
if let Some(ref org_uuid) = self.organization_uuid { if let Some(ref org_uuid) = self.organization_uuid {
if let Some(cipher_sync_data) = cipher_sync_data { if let Some(cipher_sync_data) = cipher_sync_data {
return cipher_sync_data.user_group_full_access_for_organizations.get(org_uuid).is_some(); return cipher_sync_data.user_group_full_access_for_organizations.contains(org_uuid);
} else { } else {
return Group::is_in_full_access_group(user_uuid, org_uuid, conn).await; return Group::is_in_full_access_group(user_uuid, org_uuid, conn).await;
} }

View File

@ -174,7 +174,7 @@ impl EmergencyAccess {
// Update the grantee so that it will refresh it's status. // Update the grantee so that it will refresh it's status.
User::update_uuid_revision(self.grantee_uuid.as_ref().expect("Error getting grantee"), conn).await; User::update_uuid_revision(self.grantee_uuid.as_ref().expect("Error getting grantee"), conn).await;
self.status = status; self.status = status;
self.updated_at = date.to_owned(); date.clone_into(&mut self.updated_at);
db_run! {conn: { db_run! {conn: {
crate::util::retry(|| { crate::util::retry(|| {
@ -192,7 +192,7 @@ impl EmergencyAccess {
conn: &mut DbConn, conn: &mut DbConn,
) -> EmptyResult { ) -> EmptyResult {
self.last_notification_at = Some(date.to_owned()); self.last_notification_at = Some(date.to_owned());
self.updated_at = date.to_owned(); date.clone_into(&mut self.updated_at);
db_run! {conn: { db_run! {conn: {
crate::util::retry(|| { crate::util::retry(|| {

View File

@ -520,7 +520,7 @@ pub fn container_base_image() -> &'static str {
use std::fmt; use std::fmt;
use serde::de::{self, DeserializeOwned, Deserializer, MapAccess, SeqAccess, Visitor}; use serde::de::{self, DeserializeOwned, Deserializer, MapAccess, SeqAccess, Visitor};
use serde_json::{self, Value}; use serde_json::Value;
pub type JsonMap = serde_json::Map<String, Value>; pub type JsonMap = serde_json::Map<String, Value>;