mirror of
https://gitlab.com/famedly/conduit.git
synced 2024-12-29 09:44:33 +01:00
fix: don't allow more than 50 PDUs in a transaction
This commit is contained in:
parent
0762196963
commit
16b22bb432
1 changed files with 11 additions and 7 deletions
|
@ -54,13 +54,14 @@ impl Sending {
|
|||
))
|
||||
})
|
||||
.filter_map(|r| r.ok())
|
||||
.filter(|pdu| !pdu.is_empty()) // Skip reservation key
|
||||
.take(50)
|
||||
// This should not contain more than 50 anyway
|
||||
{
|
||||
if !pdu.is_empty() {
|
||||
current_transactions
|
||||
.entry(server)
|
||||
.or_insert_with(Vec::new)
|
||||
.push(pdu);
|
||||
}
|
||||
current_transactions
|
||||
.entry(server)
|
||||
.or_insert_with(Vec::new)
|
||||
.push(pdu);
|
||||
}
|
||||
|
||||
for (server, pdus) in current_transactions {
|
||||
|
@ -95,7 +96,9 @@ impl Sending {
|
|||
.filter_map(|r| r.ok())
|
||||
.map(|k| {
|
||||
k.subslice(prefix.len(), k.len() - prefix.len())
|
||||
}).collect::<Vec<_>>();
|
||||
})
|
||||
.take(50)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
if !new_pdus.is_empty() {
|
||||
for pdu_id in &new_pdus {
|
||||
|
@ -108,6 +111,7 @@ impl Sending {
|
|||
futures.push(Self::handle_event(server, new_pdus, &globals, &rooms));
|
||||
} else {
|
||||
servercurrentpdus.remove(&prefix).unwrap();
|
||||
// servercurrentpdus with the prefix should be empty now
|
||||
}
|
||||
}
|
||||
Err((_server, _e)) => {
|
||||
|
|
Loading…
Reference in a new issue