Skip to content
Snippets Groups Projects
Unverified Commit c0637002 authored by Timo Kösters's avatar Timo Kösters
Browse files

fix: invite dendrite users

parent 75402273
No related branches found
No related tags found
No related merge requests found
...@@ -826,7 +826,7 @@ pub(crate) async fn invite_helper<'a>( ...@@ -826,7 +826,7 @@ pub(crate) async fn invite_helper<'a>(
is_direct: bool, is_direct: bool,
) -> Result<()> { ) -> Result<()> {
if user_id.server_name() != services().globals.server_name() { if user_id.server_name() != services().globals.server_name() {
let (pdu_json, invite_room_state) = { let (pdu, pdu_json, invite_room_state) = {
let mutex_state = Arc::clone( let mutex_state = Arc::clone(
services() services()
.globals .globals
...@@ -867,28 +867,16 @@ pub(crate) async fn invite_helper<'a>( ...@@ -867,28 +867,16 @@ pub(crate) async fn invite_helper<'a>(
drop(state_lock); drop(state_lock);
(pdu_json, invite_room_state) (pdu, pdu_json, invite_room_state)
}; };
// Generate event id
let expected_event_id = format!(
"${}",
ruma::signatures::reference_hash(
&pdu_json,
&services().rooms.state.get_room_version(room_id)?
)
.expect("ruma can calculate reference hashes")
);
let expected_event_id = <&EventId>::try_from(expected_event_id.as_str())
.expect("ruma's reference hashes are valid event ids");
let response = services() let response = services()
.sending .sending
.send_federation_request( .send_federation_request(
user_id.server_name(), user_id.server_name(),
create_invite::v2::Request { create_invite::v2::Request {
room_id, room_id,
event_id: expected_event_id, event_id: &pdu.event_id,
room_version: &services().rooms.state.get_room_version(room_id)?, room_version: &services().rooms.state.get_room_version(room_id)?,
event: &PduEvent::convert_to_outgoing_federation_event(pdu_json.clone()), event: &PduEvent::convert_to_outgoing_federation_event(pdu_json.clone()),
invite_room_state: &invite_room_state, invite_room_state: &invite_room_state,
...@@ -910,7 +898,7 @@ pub(crate) async fn invite_helper<'a>( ...@@ -910,7 +898,7 @@ pub(crate) async fn invite_helper<'a>(
} }
}; };
if expected_event_id != event_id { if pdu.event_id != event_id {
warn!("Server {} changed invite event, that's not allowed in the spec: ours: {:?}, theirs: {:?}", user_id.server_name(), pdu_json, value); warn!("Server {} changed invite event, that's not allowed in the spec: ours: {:?}, theirs: {:?}", user_id.server_name(), pdu_json, value);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment