From aa25e2c897ca10bbdb6012c66561aaa84ea26d03 Mon Sep 17 00:00:00 2001 From: nexy7574 Date: Sat, 14 Jun 2025 00:43:39 +0100 Subject: [PATCH] WIP: add event fetchers to auth_check calls --- src/core/matrix/state_res/event_auth.rs | 6 +----- src/core/matrix/state_res/mod.rs | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/core/matrix/state_res/event_auth.rs b/src/core/matrix/state_res/event_auth.rs index 414c1b87..85957e60 100644 --- a/src/core/matrix/state_res/event_auth.rs +++ b/src/core/matrix/state_res/event_auth.rs @@ -261,11 +261,7 @@ where if room_version.create_id_as_room_id { // TODO: fetch the create event from the room ID let create_event_id = &EventId::parse(incoming_event.room_id().localpart()); - // if let Err(e) = create_event_id { - // error!(?e, "invalid room ID for create event"); - // return Ok(false); - // } - // room_create_event = fetch_event(create_event_id).await; + match create_event_id { | Ok(id) => { room_create_event = fetch_event(id).await; diff --git a/src/core/matrix/state_res/mod.rs b/src/core/matrix/state_res/mod.rs index 651f6130..2004c331 100644 --- a/src/core/matrix/state_res/mod.rs +++ b/src/core/matrix/state_res/mod.rs @@ -562,6 +562,7 @@ where event.sender(), Some(state_key), event.content(), + room_version, )?; let mut auth_state = StateMap::new(); @@ -609,9 +610,20 @@ where let fetch_state = |ty: &StateEventType, key: &str| { future::ready(auth_state.get(&ty.with_state_key(key))) }; + let fetch_event2 = |id: &EventId| { + let id = id.to_owned(); + let evt = auth_events.get(&id); + future::ready(evt) // TODO: FIXME! + }; - let auth_result = - auth_check(room_version, &event, current_third_party.as_ref(), fetch_state).await; + let auth_result = auth_check( + room_version, + &event, + current_third_party.as_ref(), + fetch_state, + fetch_event2, + ) + .await; match auth_result { | Ok(true) => {