Browse Source

chore: upgrade to rust 1.88

rate-limiting
Matthias Ahouansou 1 month ago
parent
commit
d5dc6417d5
No known key found for this signature in database
  1. 2
      Cargo.toml
  2. 2
      complement/Dockerfile
  3. 2
      conduit-config/src/lib.rs
  4. 12
      conduit/src/api/client_server/account.rs
  5. 8
      conduit/src/api/client_server/device.rs
  6. 4
      conduit/src/api/client_server/keys.rs
  7. 6
      conduit/src/api/client_server/sync.rs
  8. 2
      conduit/src/clap.rs
  9. 4
      conduit/src/database/key_value/media.rs
  10. 6
      conduit/src/service/admin/mod.rs
  11. 2
      conduit/src/service/rooms/event_handler/mod.rs
  12. 6
      conduit/src/service/users/mod.rs
  13. 9
      conduit/src/utils/error.rs
  14. 2
      flake.nix
  15. 2
      rust-toolchain.toml

2
Cargo.toml

@ -17,7 +17,7 @@ str_to_string = "warn"
edition = "2024"
homepage = "https://conduit.rs"
repository = "https://gitlab.com/famedly/conduit"
rust-version = "1.85.0"
rust-version = "1.88.0"
[workspace.dependencies]
bytesize = "2"

2
complement/Dockerfile

@ -1,4 +1,4 @@
FROM rust:1.85.0
FROM rust:1.88.0
WORKDIR /workdir

2
conduit-config/src/lib.rs

@ -330,7 +330,7 @@ impl std::fmt::Display for DatabaseBackend {
#[cfg(feature = "sqlite")]
DatabaseBackend::SQLite => "SQLite",
};
write!(f, "{}", string)
write!(f, "{string}")
}
}

12
conduit/src/api/client_server/account.rs

@ -181,7 +181,7 @@ pub async fn register_route(body: Ruma<register::v3::Request>) -> Result<registe
&uiaainfo,
)?;
if !worked {
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
// Success!
} else if let Some(json) = body.json_body {
@ -193,7 +193,7 @@ pub async fn register_route(body: Ruma<register::v3::Request>) -> Result<registe
&uiaainfo,
&json,
)?;
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
} else {
return Err(Error::BadRequest(ErrorKind::NotJson, "Not json."));
}
@ -341,7 +341,7 @@ pub async fn change_password_route(
.uiaa
.try_auth(sender_user, sender_device, auth, &uiaainfo)?;
if !worked {
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
// Success!
} else if let Some(json) = body.json_body {
@ -349,7 +349,7 @@ pub async fn change_password_route(
services()
.uiaa
.create(sender_user, sender_device, &uiaainfo, &json)?;
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
} else {
return Err(Error::BadRequest(ErrorKind::NotJson, "Not json."));
}
@ -432,7 +432,7 @@ pub async fn deactivate_route(
.uiaa
.try_auth(sender_user, sender_device, auth, &uiaainfo)?;
if !worked {
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
// Success!
} else if let Some(json) = body.json_body {
@ -440,7 +440,7 @@ pub async fn deactivate_route(
services()
.uiaa
.create(sender_user, sender_device, &uiaainfo, &json)?;
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
} else {
return Err(Error::BadRequest(ErrorKind::NotJson, "Not json."));
}

8
conduit/src/api/client_server/device.rs

@ -94,7 +94,7 @@ pub async fn delete_device_route(
.uiaa
.try_auth(sender_user, sender_device, auth, &uiaainfo)?;
if !worked {
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
// Success!
} else if let Some(json) = body.json_body {
@ -102,7 +102,7 @@ pub async fn delete_device_route(
services()
.uiaa
.create(sender_user, sender_device, &uiaainfo, &json)?;
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
} else {
return Err(Error::BadRequest(ErrorKind::NotJson, "Not json."));
}
@ -148,7 +148,7 @@ pub async fn delete_devices_route(
.uiaa
.try_auth(sender_user, sender_device, auth, &uiaainfo)?;
if !worked {
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
// Success!
} else if let Some(json) = body.json_body {
@ -156,7 +156,7 @@ pub async fn delete_devices_route(
services()
.uiaa
.create(sender_user, sender_device, &uiaainfo, &json)?;
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
} else {
return Err(Error::BadRequest(ErrorKind::NotJson, "Not json."));
}

4
conduit/src/api/client_server/keys.rs

@ -125,7 +125,7 @@ pub async fn upload_signing_keys_route(
.uiaa
.try_auth(sender_user, sender_device, auth, &uiaainfo)?;
if !worked {
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
// Success!
} else if let Some(json) = &body.json_body {
@ -221,7 +221,7 @@ pub async fn upload_signing_keys_route(
services()
.uiaa
.create(sender_user, sender_device, &uiaainfo, json)?;
return Err(Error::Uiaa(uiaainfo));
return Err(Error::uiaa(uiaainfo));
}
} else {
return Err(Error::BadRequest(ErrorKind::NotJson, "Not json."));

6
conduit/src/api/client_server/sync.rs

@ -135,16 +135,14 @@ pub async fn sync_events_route(
}
}
let result = match rx
match rx
.borrow()
.as_ref()
.expect("When sync channel changes it's always set to some")
{
Ok(response) => Ok(response.clone()),
Err(error) => Err(error.to_response()),
};
result
}
}
async fn sync_helper_wrapper(

2
conduit/src/clap.rs

@ -11,7 +11,7 @@ fn version() -> String {
let cargo_pkg_version = env!("CARGO_PKG_VERSION");
match option_env!("CONDUIT_VERSION_EXTRA") {
Some(x) => format!("{} ({})", cargo_pkg_version, x),
Some(x) => format!("{cargo_pkg_version} ({x})"),
None => cargo_pkg_version.to_owned(),
}
}

4
conduit/src/database/key_value/media.rs

@ -613,9 +613,9 @@ impl service::media::Data for KeyValueDatabase {
self.servername_userlocalpart_mediaid
.scan_prefix(prefix)
.map(|(k, _)| {
let parts = k.split(|&b| b == 0xff);
let mut parts = k.split(|&b| b == 0xff);
let media_id = parts.last().ok_or_else(|| {
let media_id = parts.next_back().ok_or_else(|| {
Error::bad_database("Invalid format of key in blocked_servername_mediaid")
})?;

6
conduit/src/service/admin/mod.rs

@ -415,7 +415,7 @@ pub struct ListMediaArgs {
#[derive(Debug)]
pub enum AdminRoomEvent {
ProcessMessage(String),
SendMessage(RoomMessageEventContent),
SendMessage(Box<RoomMessageEventContent>),
}
pub struct Service {
@ -451,7 +451,7 @@ impl Service {
tokio::select! {
Some(event) = receiver.recv() => {
let message_content = match event {
AdminRoomEvent::SendMessage(content) => content.into(),
AdminRoomEvent::SendMessage(content) => (*content).into(),
AdminRoomEvent::ProcessMessage(room_message) => self.process_admin_message(room_message).await,
};
@ -498,7 +498,7 @@ impl Service {
pub fn send_message(&self, message_content: RoomMessageEventContent) {
self.sender
.send(AdminRoomEvent::SendMessage(message_content))
.send(AdminRoomEvent::SendMessage(Box::new(message_content)))
.unwrap();
}

2
conduit/src/service/rooms/event_handler/mod.rs

@ -1055,7 +1055,7 @@ impl Service {
services()
.rooms
.auth_chain
.get_auth_chain(room_id, state.iter().map(|(_, id)| id.clone()).collect())
.get_auth_chain(room_id, state.values().cloned().collect())
.await?
.collect(),
);

6
conduit/src/service/users/mod.rs

@ -77,12 +77,10 @@ impl Service {
guard.clear();
drop(guard);
let result = self
.db
self.db
.set_devices_last_seen(&map)
.filter_map(Result::err)
.collect();
result
.collect()
} else {
Vec::new()
}

9
conduit/src/utils/error.rs

@ -68,7 +68,7 @@ pub enum Error {
/// Don't create this directly. Use Error::bad_database instead.
BadDatabase(&'static str),
#[error("uiaa")]
Uiaa(UiaaInfo),
Uiaa(Box<UiaaInfo>),
#[error("{n}: {1}", n = _0.errcode())]
BadRequest(ErrorKind, &'static str),
#[error("{0}")]
@ -95,12 +95,17 @@ impl Error {
error!("BadDatabase: {}", message);
Self::BadDatabase(message)
}
/// Constructs `Self::Uiaa`, wrapping the input with `Box`.
pub fn uiaa(uiaa: UiaaInfo) -> Self {
Self::Uiaa(Box::new(uiaa))
}
}
impl Error {
pub fn to_response(&self) -> RumaResponse<UiaaResponse> {
if let Self::Uiaa(uiaainfo) = self {
return RumaResponse(UiaaResponse::AuthResponse(uiaainfo.clone()));
return RumaResponse(UiaaResponse::AuthResponse(*uiaainfo.clone()));
}
if let Self::FederationError(origin, error) = self {

2
flake.nix

@ -61,7 +61,7 @@
file = ./rust-toolchain.toml;
# See also `rust-toolchain.toml`
sha256 = "sha256-AJ6LX/Q/Er9kS15bn9iflkUwcgYqRQxiOIL2ToVAXaU=";
sha256 = "sha256-Qxt8XAuaUR2OMdKbN4u8dBJOhSHxS+uS06Wl9+flVEk=";
};
# The timestamp of the last commit in ISO 8601 format

2
rust-toolchain.toml

@ -9,7 +9,7 @@
# If you're having trouble making the relevant changes, bug a maintainer.
[toolchain]
channel = "1.85.0"
channel = "1.88.0"
components = [
# For rust-analyzer
"rust-src",

Loading…
Cancel
Save