Commit Graph
1926 Commits
Author SHA1 Message Date
theS1LV3R 144777dab0 fix: Add DNS resolver to oidc crate as well
Because openidconnect vendors reqwest (??), we have to re-implement
the entire Resolve trait.

No I don't like it, but I can't think of a better solution.
2026-11-08 19:40:49 +00:00
theS1LV3R a484c28f99 fix: Don't try to use system resolv.conf when other servers are configured
Previously, only HTTP clients targeting matrix servers (and using the
resolution spec) would use the DNS servers configured in the c10y config.
This happened because reqwest requires any DNS resolvers passed in to
implement reqwest::dns::Resolve, which only the matrix resolver did,
and no other HTTP client had a proper DNS resolver (which used the
configured DNS servers) passed into it.

To fix this we make a custom resolution struct based on reqwest's
reqwest::dns::HickoryDnsResolver, which implements Request with no
other modifications to the DNS response. HickoryDnsResolver itself isn't
exported, which is why we re-created it instead of using it directly.

no im not an LLM i just wrote this to remember my own changes later on

Fixes: continuwuation/continuwuity#2441
2026-11-08 19:40:49 +00:00
Henry-Hiles be5ff91eb3 chore: break out of loop when level is empty 2026-11-08 19:34:25 +00:00
Henry-Hiles 5ff6d71e7c chore: Make walk use counts only 2026-11-08 19:34:25 +00:00
Henry-Hiles 2e43797d95 chore: Make Clippy happy 2026-11-08 19:34:25 +00:00
Henry-Hiles 15b4e8e2f9 fix: Correct relations pagination and recursion
Ended up rewriting a fair bit, but should work better.
2026-11-08 19:34:25 +00:00
Jade Ellis 6075e6e3ad chore: Upgrade other dependencies 2026-11-08 17:41:23 +00:00
Erwan Leboucher 8c720e5427 fix: Store to-device messages before syncs can read their count 2026-11-05 15:17:36 +00:00
Erwan Leboucher fb389cb6f9 fix: Record device list changes before syncs can read their count
Signed-off-by: Erwan Leboucher <erwanleboucher@gmail.com>
2026-11-05 15:17:23 +00:00
Bardi Harborow db86d42801 fix: Compare push user_is_target against the notified user
`user_is_target` was set by comparing a member event's `state_key` to its
sender, rather than to the user receiving the notification.
2026-11-05 15:27:50 +11:00
Bardi Harborow 4d0ccd998f fix: Return M_PROFILE_TOO_LARGE for oversize profiles
Profile updates that would push the profile over 64 KiB were rejected
with an untyped error, producing a 500. The spec requires 400
M_PROFILE_TOO_LARGE, which ruma now provides.
2026-11-04 19:32:17 +00:00
Bardi Harborow 42609eab02 fix: Return M_KEY_TOO_LARGE for oversize profile keys
Profile keys longer than 255 bytes were rejected with 413 M_TOO_LARGE.
The spec requires 400 M_KEY_TOO_LARGE, which ruma now provides.
2026-11-04 19:32:17 +00:00
Ginger 34c5787af0 fix: Fix join rule evaluation for servers again
Reviewed-by: timedout <git@nexy7574.co.uk>
Reviewed-by: Jade Ellis <jade@ellis.link>
2026-11-04 12:24:51 -05:00
Ginger c77bbf6d18 fix: Fix busted url_preview feature gate 2026-11-03 20:41:11 -05:00
timedout f3d8e8d688 chore: Reformat 2026-11-02 00:50:41 +00:00
Ginger dc03f2136a fix: Validate OAuth HTTPS redirect URIs are subdomains of the client domain 2026-11-02 00:44:02 +00:00
Erwan Leboucher abf8f878bc fix: gap fill outliers that are missing prev events
Signed-off-by: Erwan Leboucher <erwanleboucher@gmail.com>
2026-10-31 09:02:27 +01:00
timedout 068ba88378 style: Fix formatting 2026-10-30 00:54:52 +00:00
timedout 60de549cf9 perf: Write empty rows when replacing extremities 2026-10-30 00:51:52 +00:00
timedout 363097b31b fix: Centralise extremity progression 2026-10-30 00:51:52 +00:00
timedout d128207d71 fix: Make the extremity check consistency migration faster 2026-10-30 00:51:51 +00:00
timedout 14f5f62182 fix: Only consider accepted PDUs in extremity consistency check 2026-10-30 00:51:51 +00:00
timedout 5208efcb5e fix: Make migration handle excessive extremities too 2026-10-30 00:51:51 +00:00
timedout 224cf04936 fix: Never allow unknown/backfilled PDUs to become extremities 2026-10-30 00:51:51 +00:00
timedout ae26d5c239 fix: Add startup migration to re-process existing extremities on-disk 2026-10-30 00:51:51 +00:00
timedout 30f62eef25 style: reformat 2026-10-30 00:51:51 +00:00
timedout b04ffd7e6a fix: Correctly remove extremities after creating a new event 2026-10-30 00:51:51 +00:00
timedout bc15b7b668 fix: Remove dead references to mark_event_referenced 2026-10-30 00:51:50 +00:00
timedout 3eb2788eb9 feat: Only track appended extremities 2026-10-30 00:51:47 +00:00
timedout b580379a2d fix: Only check that room_id is not present on create events in PDU check 1 2026-10-30 00:43:55 +00:00
timedout 3c19206534 fix: Perform PDU checks 1, 2, and 3 before yielding a gapfilled PDU
Fixes #2386
2026-10-30 00:43:55 +00:00
Jade Ellis 6fae2475b8 style: Format 2026-10-28 21:56:38 +00:00
Jade Ellis addd1875d3 refactor(uiaa): Defer uiaa_sessions lock until session insert
Do not hold the uiaa_sessions lock across device lookup in OAuth or
during initial validation. Lock the map only when inserting the newly
created session.
2026-10-28 21:48:55 +00:00
Jade Ellis 24b1e2ebe8 refactor(service): Use SyncRwLock and SyncMutex for in-memory services
Convert in-memory data structures in appservice, rooms::typing, and sync
wakers to use SyncRwLock and SyncMutex. Drop appservice locks before
making outbound network requests in room alias queries and federation
invites.
2026-10-28 21:48:22 +00:00
Jade Ellis 18f5f4fbfa refactor(threepid): Use SyncMutex and decouple guard from ValidSession
Change threepid sessions and send_attempts to SyncMutex and avoid

holding the sessions mutex across callers of get_valid_session.
2026-10-28 21:47:09 +00:00
Jade Ellis 98ae1fcaa1 refactor(oauth): Avoid holding pending grants lock across async calls
Convert pending grants and tickets to SyncMutex and scope locks tightly

before awaiting external calls in grant_info and redeem_token.
2026-10-28 21:46:29 +00:00
Jade Ellis ad0181a3d8 refactor(service): Scope services.manager lock during lifecycle calls
Avoid holding the services.manager lock across manager.start(),

manager.stop(), and manager.poll() async invocations.
2026-10-28 21:45:49 +00:00
Jade Ellis 938b3d2825 refactor(admin): Release handle lock before command execution
Change admin service handle to SyncRwLock and copy the handler

function pointer before awaiting execution to prevent deadlock.
2026-10-28 21:45:18 +00:00
Jade Ellis 9c4f84940e fix(service): Prevent remote join lock inversion
Do not hold state.mutex across join_remote_room to prevent an ABBA

deadlock against mutex_federation.
2026-10-28 21:44:02 +00:00
Ginger 3295427af6 fix: Don't check room summary access rules on remote rooms 2026-10-25 14:00:28 +00:00
timedout 9c27441acf style: Reformat with nightly 2026-10-23 23:37:51 +02:00
Ginger 98c694eaa3 chore: Add some comments 2026-10-15 22:56:04 -04:00
Ginger e6ca06a501 feat: Add support for MSC4560 2026-10-15 22:56:04 -04:00
Ginger 4f21fa2bda refactor: Clean up join rule evaluation logic 2026-10-15 22:55:36 -04:00
timedout 090203c2ea style: Remove import 2026-10-12 22:28:50 +01:00
timedout ff63d9f203 fix: Don't unconditionally mark gapfilled events as referenced
This is pointless and fallible
2026-10-12 22:28:50 +01:00
timedout 511e791b9f fix: Mark state and auth chain events as referenced after joining a room
It's generally safe to assume that all of these events have been referenced by the time we get to joining.
2026-10-12 22:28:50 +01:00
timedout bc70c4eaff fix: Mark PDUs as referenced during gapfill immediately 2026-10-12 22:28:50 +01:00
timedout bbbc9bc7d8 fix: Never add unknown events to the extremity tracker 2026-10-12 22:28:46 +01:00
Erwan Leboucher 24e289113b fix(pusher): Only strip notification_push_path as a URL suffix 2026-10-12 11:14:02 +01:00