fix(crypto): Only send cancellations if there were multiple request recipients

This commit is contained in:
Damir Jelić 2021-09-15 20:28:16 +02:00
parent ff9bb94ab4
commit 7764f01b59

View file

@ -532,12 +532,20 @@ impl VerificationRequest {
.filter(|d| if let Some(device) = filter_device { &**d != device } else { true }) .filter(|d| if let Some(device) = filter_device { &**d != device } else { true })
.collect(); .collect();
// We don't need to notify anyone if no recipients were present
// but we did have a filter device, since this means that only a
// single device received the `m.key.verification.request` and that
// device accepted the request.
if recipients.is_empty() && filter_device.is_some() {
None
} else {
Some(ToDeviceRequest::new_for_recipients( Some(ToDeviceRequest::new_for_recipients(
self.other_user(), self.other_user(),
recipients, recipients,
c, c,
Uuid::new_v4(), Uuid::new_v4(),
)) ))
}
} else { } else {
None None
} }