fix: checks for incoming cross signing changes
This commit is contained in:
parent
b8411ae2fd
commit
17ad5f0595
1 changed files with 10 additions and 2 deletions
|
@ -639,6 +639,11 @@ pub async fn send_transaction_message_route(
|
||||||
return Err(Error::bad_config("Federation is disabled."));
|
return Err(Error::bad_config("Federation is disabled."));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let sender_servername = body
|
||||||
|
.sender_servername
|
||||||
|
.as_ref()
|
||||||
|
.expect("server is authenticated");
|
||||||
|
|
||||||
let mut resolved_map = BTreeMap::new();
|
let mut resolved_map = BTreeMap::new();
|
||||||
|
|
||||||
let pub_key_map = RwLock::new(BTreeMap::new());
|
let pub_key_map = RwLock::new(BTreeMap::new());
|
||||||
|
@ -674,7 +679,7 @@ pub async fn send_transaction_message_route(
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
acl_check(&body.origin, &room_id, &db)?;
|
acl_check(&sender_servername, &room_id, &db)?;
|
||||||
|
|
||||||
let mutex = Arc::clone(
|
let mutex = Arc::clone(
|
||||||
db.globals
|
db.globals
|
||||||
|
@ -689,7 +694,7 @@ pub async fn send_transaction_message_route(
|
||||||
resolved_map.insert(
|
resolved_map.insert(
|
||||||
event_id.clone(),
|
event_id.clone(),
|
||||||
handle_incoming_pdu(
|
handle_incoming_pdu(
|
||||||
&body.origin,
|
&sender_servername,
|
||||||
&event_id,
|
&event_id,
|
||||||
&room_id,
|
&room_id,
|
||||||
value,
|
value,
|
||||||
|
@ -845,6 +850,9 @@ pub async fn send_transaction_message_route(
|
||||||
master_key,
|
master_key,
|
||||||
self_signing_key,
|
self_signing_key,
|
||||||
}) => {
|
}) => {
|
||||||
|
if user_id.server_name() != sender_servername {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if let Some(master_key) = master_key {
|
if let Some(master_key) = master_key {
|
||||||
db.users.add_cross_signing_keys(
|
db.users.add_cross_signing_keys(
|
||||||
&user_id,
|
&user_id,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue