prevent empty transactions from going out

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk 2024-04-15 03:56:20 -07:00 committed by June
parent 38b15418ca
commit cc7cd51e9c
1 changed files with 6 additions and 1 deletions

View File

@ -350,6 +350,7 @@ impl Service {
vec![(event, key)],
&mut current_transaction_status,
) {
if !events.is_empty() {
futures.push(handle_events(outgoing_kind, events));
}
}
@ -357,6 +358,7 @@ impl Service {
}
}
}
}
#[tracing::instrument(skip(self, outgoing_kind, new_events, current_transaction_status))]
fn select_events(
@ -598,6 +600,7 @@ pub fn select_edus_receipts(
async fn handle_events(
kind: OutgoingKind, events: Vec<SendingEventType>,
) -> Result<OutgoingKind, (OutgoingKind, Error)> {
debug_assert!(!events.is_empty(), "sending empty transaction");
match kind {
OutgoingKind::Appservice(ref id) => handle_events_kind_appservice(&kind, id, events).await,
OutgoingKind::Push(ref userid, ref pushkey) => handle_events_kind_push(&kind, userid, pushkey, events).await,
@ -638,6 +641,7 @@ async fn handle_events_kind_appservice(
let permit = services().sending.maximum_requests.acquire().await;
debug_assert!(!pdu_jsons.is_empty(), "sending empty transaction");
let response = match appservice::send_request(
services()
.appservice
@ -792,6 +796,7 @@ async fn handle_events_kind_normal(
let permit = services().sending.maximum_requests.acquire().await;
let client = &services().globals.client.sender;
debug_assert!(pdu_jsons.len() + edu_jsons.len() > 0, "sending empty transaction");
let response = send::send_request(
client,
dest,