forked-synapse/synapse
Richard van der Hoff 85551b7a85
Factor out common code for persisting fetched auth events (#10896)
* Factor more stuff out of `_get_events_and_persist`

It turns out that the event-sorting algorithm in `_get_events_and_persist` is
also useful in other circumstances. Here we move the current
`_auth_and_persist_fetched_events` to `_auth_and_persist_fetched_events_inner`,
and then factor the sorting part out to `_auth_and_persist_fetched_events`.

* `_get_remote_auth_chain_for_event`: remove redundant `outlier` assignment

`get_event_auth` returns events with the outlier flag already set, so this is
redundant (though we need to update a test where `get_event_auth` is mocked).

* `_get_remote_auth_chain_for_event`: move existing-event tests earlier

Move a couple of tests outside the loop. This is a bit inefficient for now, but
a future commit will make it better. It should be functionally identical.

* `_get_remote_auth_chain_for_event`: use `_auth_and_persist_fetched_events`

We can use the same codepath for persisting the events fetched as part of an
auth chain as for those fetched individually by `_get_events_and_persist` for
building the state at a backwards extremity.

* `_get_remote_auth_chain_for_event`: use a dict for efficiency

`_auth_and_persist_fetched_events` sorts the events itself, so we no longer
need to care about maintaining the ordering from `get_event_auth` (and no
longer need to sort by depth in `get_event_auth`).

That means that we can use a map, making it easier to filter out events we
already have, etc.

* changelog

* `_auth_and_persist_fetched_events`: improve docstring
2021-09-24 11:56:33 +01:00
..
_scripts Remove shebang line from module files (#10415) 2021-07-29 21:34:14 +01:00
api Fix AuthBlocking check when requester is appservice (#10881) 2021-09-24 10:41:18 +01:00
app Use direct references for configuration variables (part 4). (#10893) 2021-09-23 12:03:01 -04:00
appservice Use inline type hints in various other places (in synapse/) (#10380) 2021-07-15 11:02:43 +01:00
config Use direct references for configuration variables (part 4). (#10893) 2021-09-23 12:03:01 -04:00
crypto Use direct references for some configuration variables (part 2) (#10812) 2021-09-15 08:34:52 -04:00
events Factor out a separate EventContext.for_outlier (#10883) 2021-09-22 17:58:57 +01:00
federation Factor out common code for persisting fetched auth events (#10896) 2021-09-24 11:56:33 +01:00
groups Use direct references for configuration variables (part 4). (#10893) 2021-09-23 12:03:01 -04:00
handlers Factor out common code for persisting fetched auth events (#10896) 2021-09-24 11:56:33 +01:00
http Add reactor to SynapseRequest and fix up types. (#10868) 2021-09-24 11:01:25 +01:00
logging Use direct references for some configuration variables (#10798) 2021-09-13 13:07:12 -04:00
metrics [pyupgrade] synapse/ (#10348) 2021-07-19 15:28:05 +01:00
module_api Use direct references for some configuration variables (part 3) (#10885) 2021-09-23 07:13:34 -04:00
push Use direct references for configuration variables (part 4). (#10893) 2021-09-23 12:03:01 -04:00
replication Use direct references for some configuration variables (#10798) 2021-09-13 13:07:12 -04:00
res Allow configuration of the oEmbed URLs. (#10714) 2021-08-31 18:37:07 -04:00
rest Add reactor to SynapseRequest and fix up types. (#10868) 2021-09-24 11:01:25 +01:00
server_notices Use direct references for some configuration variables (part 3) (#10885) 2021-09-23 07:13:34 -04:00
spam_checker_api Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
state Factor out a separate EventContext.for_outlier (#10883) 2021-09-22 17:58:57 +01:00
static Display an error page during failure of fallback UIA. (#10561) 2021-08-18 08:13:35 -04:00
storage Improve typing in user_directory files (#10891) 2021-09-24 10:38:22 +01:00
streams Remove unnecessary parentheses around tuples returned from methods (#10889) 2021-09-23 11:59:07 +01:00
util Opt out of cache expiry for get_users_who_share_room_with_user (#10826) 2021-09-22 14:21:58 +01:00
__init__.py 1.43.0 2021-09-21 11:49:15 +01:00
event_auth.py Rename MSC2716 things from chunk to batch to match /batch_send endpoint (#10838) 2021-09-21 15:06:28 -05:00
notifier.py Add type hints for event streams. (#10856) 2021-09-21 13:34:26 -04:00
python_dependencies.py Validate new m.room.power_levels events (#10232) 2021-08-26 17:07:58 +01:00
server.py Use direct references for some configuration variables (part 2) (#10812) 2021-09-15 08:34:52 -04:00
types.py Remove unnecessary parentheses around tuples returned from methods (#10889) 2021-09-23 11:59:07 +01:00
visibility.py [pyupgrade] synapse/ (#10348) 2021-07-19 15:28:05 +01:00