Lambda
d425ba72f8
Update ruma to 0.12.2
2025-05-04 14:03:46 -07:00
Lambda
6bcc4e310e
Immediately trigger EDU sending after client read receipt
...
Previously, read receipts would only be forwarded via federation
incidentally when some PDU was later sent to the destination server.
Trigger a send without any event to collect EDUs and get read receipts
out directly.
2025-03-30 16:48:06 -07:00
Lambda
81c5f09919
service/sending: tiny refactors, NFC
2025-03-30 16:48:06 -07:00
Lambda
d9c7fbbd82
services/sending: avoid unnecessary clone
2025-03-30 16:48:06 -07:00
Lambda
ed12b0bf67
services/sending: guard against federation requests to ourselves
...
These would always fail and get stuck/retried forever.
2025-03-30 16:48:02 -07:00
Charles Hall
55b605f046
rename constructor for sending service
2024-11-01 14:25:52 -07:00
Charles Hall
5a490a4397
fix mod/use order
...
Yes, it does actually bother me, thanks for asking.
2024-10-03 15:28:24 -07:00
Lambda
6022d56094
Use enums for options to send_request(), add allow_loopback
2024-09-27 10:48:12 -07:00
Lambda
f1642c92d1
Take iterator in calculate_hash()
...
Avoids unnecessary allocations.
2024-09-06 17:20:14 +00:00
Lambda
cce83beedb
Properly type stored EDUs
2024-09-06 17:20:14 +00:00
Lambda
26322d5a95
Add PduId wrapper struct
...
Death to Vec<u8>
2024-09-06 17:20:14 +00:00
Charles Hall
e7087444db
fix service/sending events
2024-07-16 11:12:08 -07:00
Lambda
5a6e4fac73
Move federation config to separate config section
...
This renames:
allow_federation -> federation.enable
trusted_servers -> federation.trusted_servers
max_fetch_prev_events -> federation.max_fetch_prev_events
max_concurrent_requests -> federation.max_concurrent_requests
2024-06-27 16:04:23 -07:00
Charles Hall
e13db834ed
refactor handle_response in service/sending
...
Early returns good.
2024-06-24 12:43:28 -07:00
Charles Hall
e83a30af4b
reduce duplicate events
...
I hate `log_error`. A better way to do this would be to not reuse the
same error type literally everywhere, so you could distinguish, in
`crate::service::sending::Service::handle_response`, whether to emit an
event based on which function created the error. Fixing that is a lot
more work, though.
2024-06-24 12:40:59 -07:00
Lambda
25353da8b8
sending.rs: record handler errors using Display
2024-05-29 20:42:46 +00:00
Lambda
fb52ded222
sending.rs: try to preserve requester spans
...
Add a `follows_from` relationship to the dispatched worker's span
pointing to the caller of `send_*()`, if known.
2024-05-29 20:42:46 +00:00
Lambda
18992b4d1d
sending.rs: rename OutgoingKind to Destination
...
That's what it is. It describes the destination of the event.
2024-05-29 20:42:45 +00:00
Lambda
9071e11e06
sending.rs: move handler functions out of service
...
These don't take `self`, no reason for them to be associated functions.
2024-05-29 20:42:14 +00:00
Lambda
13f79dfee1
sending.rs: factor out event handlers into separate functions
...
This allows for much nicer control flow, since they don't need to return
Result<OutgoingKind, (OutgoingKind, Error)>.
2024-05-29 20:42:14 +00:00
Lambda
5caafdec06
sending.rs: formatting
2024-05-29 20:42:14 +00:00
Lambda
aa69b7d15c
sending.rs: rename handle_futures->handle_response
...
The future is already done when this is called.
2024-05-29 20:42:14 +00:00
Lambda
9961f1465f
sending.rs: add RequestData to replace big tuple
2024-05-29 20:42:14 +00:00
Lambda
e294543ddb
sending.rs: add RequestKey
...
Much easier to reason about than with a bunch of Vec<u8> everywhere.
2024-05-29 20:42:13 +00:00
Charles Hall
eaeb7620d9
enable multiple_bound_locations lint
2024-05-26 19:47:00 -07:00
Charles Hall
d7e945f4c5
enable dead_code lint
2024-05-26 19:46:48 -07:00
Lambda
5172f66c1a
More useful tracing spans
2024-05-20 16:49:45 +00:00
Lambda
ac42e0bfff
Fix spans in tokio::spawn-ed tasks
...
tokio::spawn is a span boundary, the spawned future has no parent span.
For short futures, we simply inherit the current span with
`.in_current_span()`.
For long running futures containing a sleeping infinite loop, we don't
actually want a span on the entire task or even the entire loop body,
both would result in very long spans. Instead, we put the outermost span
(created using #[tracing::instrument] or .instrument()) around the
actual work happening after the sleep, which results in a new root span
being created after every sleep.
2024-05-20 16:49:40 +00:00
Lambda
5e9e5b76bc
service/sending: factor out closures into methods
2024-05-20 16:49:40 +00:00
Charles Hall
0afc1d2f50
change rustfmt configuration
...
This change is fully automated, except the `rustfmt.toml` changes and
a few clippy directives to allow specific functions with too many lines
because they are longer now.
2024-05-16 19:11:40 -07:00
Charles Hall
6bc17b268c
factor select bodies into closures
...
I would've preferred to factor these out into their own functions, but
unfortunately the inner type of the `FuturesUnordered` is unnameable.
`Box` or TAIT would help, but the former has a performance cost and the
latter doesn't exist on stable yet.
2024-05-16 19:09:57 -07:00
Charles Hall
1911ad34d9
stop putting comments and code on the same line
2024-05-16 15:22:35 -07:00
Charles Hall
75358340bb
enable single_match_else lint
...
Also collapses some if statements in the federation name resolution code
2024-05-14 20:01:24 -07:00
Charles Hall
db4951c5fd
enable semicolon_if_nothing_returned lint
2024-05-14 20:01:24 -07:00
Charles Hall
96e1877639
enable redundant_closure_for_method_calls lint
2024-05-14 20:01:24 -07:00
Charles Hall
224ba65d06
enable map_unwrap_or lint
2024-05-14 20:01:24 -07:00
Charles Hall
9606f59141
enable manual_let_else lint
2024-05-14 20:01:23 -07:00
Charles Hall
ebae8ceeb0
enable implicit_clone lint
2024-05-14 19:59:43 -07:00
Charles Hall
623824dc0c
enable if_not_else lint
2024-05-14 19:59:40 -07:00
Charles Hall
71c48f66c4
enable as_conversions lint
...
There were some very, uh, creative (and inconsistent) ways to convert
between numeric types in here...
2024-05-12 18:51:26 -07:00
Charles Hall
d748544f0e
enable unreachable_pub lint
...
This causes some other lints to start firing too (which is good), but
I'm going to fix them in follow-up commits to keep things organized.
2024-05-12 18:51:26 -07:00
Charles Hall
a626e7b0f0
enable mod_module_files lint
2024-05-12 18:51:26 -07:00