diff --git a/Cargo.toml b/Cargo.toml index 341e434a..4c36d1ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,6 +48,7 @@ manual_let_else = "warn" manual_string_new = "warn" map_unwrap_or = "warn" match_bool = "warn" +match_same_arms = "warn" mem_forget = "warn" missing_assert_message = "warn" mod_module_files = "warn" diff --git a/src/api/client_server/room.rs b/src/api/client_server/room.rs index ad43b957..d3f97218 100644 --- a/src/api/client_server/room.rs +++ b/src/api/client_server/room.rs @@ -271,7 +271,7 @@ pub(crate) async fn create_room_route( let preset = body.preset.clone().unwrap_or(match &body.visibility { room::Visibility::Private => RoomPreset::PrivateChat, room::Visibility::Public => RoomPreset::PublicChat, - _ => RoomPreset::PrivateChat, // Room visibility should not be custom + _ => unimplemented!("unknown room visibility"), }); let mut users = BTreeMap::new(); diff --git a/src/api/server_server.rs b/src/api/server_server.rs index 92bd028d..4e2b3b1d 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -770,7 +770,6 @@ pub(crate) async fn send_transaction_message_route( .filter_map(|edu| serde_json::from_str::(edu.json().get()).ok()) { match edu { - Edu::Presence(_) => {} Edu::Receipt(receipt) => { for (room_id, room_updates) in receipt.receipts { for (user_id, user_updates) in room_updates.read { @@ -922,7 +921,7 @@ pub(crate) async fn send_transaction_message_route( )?; } } - Edu::_Custom(_) => {} + Edu::_Custom(_) | Edu::Presence(_) => {} } } diff --git a/src/service/pusher.rs b/src/service/pusher.rs index 1f7bf0a0..2c3862e0 100644 --- a/src/service/pusher.rs +++ b/src/service/pusher.rs @@ -283,7 +283,6 @@ impl Service { Ok(()) } // TODO: Handle email - PusherKind::Email(_) => Ok(()), _ => Ok(()), } } diff --git a/src/service/rooms/spaces.rs b/src/service/rooms/spaces.rs index 74891e30..e154c41a 100644 --- a/src/service/rooms/spaces.rs +++ b/src/service/rooms/spaces.rs @@ -453,8 +453,7 @@ impl Service { room_id: &RoomId, ) -> Result { let allowed = match join_rule { - SpaceRoomJoinRule::Public => true, - SpaceRoomJoinRule::Knock => true, + SpaceRoomJoinRule::Knock | SpaceRoomJoinRule::Public => true, SpaceRoomJoinRule::Invite => services() .rooms .state_cache diff --git a/src/utils/error.rs b/src/utils/error.rs index 4554bd53..ae8a7aff 100644 --- a/src/utils/error.rs +++ b/src/utils/error.rs @@ -118,11 +118,11 @@ impl Error { | Forbidden | GuestAccessForbidden | ThreepidAuthFailed + | UserDeactivated | ThreepidDenied => StatusCode::FORBIDDEN, Unauthorized | UnknownToken { .. } | MissingToken => StatusCode::UNAUTHORIZED, NotFound | Unrecognized => StatusCode::NOT_FOUND, LimitExceeded { .. } => StatusCode::TOO_MANY_REQUESTS, - UserDeactivated => StatusCode::FORBIDDEN, TooLarge => StatusCode::PAYLOAD_TOO_LARGE, _ => StatusCode::BAD_REQUEST, },