mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-08-08 18:02:19 -04:00
Merge remote-tracking branch 'upstream/release-v1.39'
This commit is contained in:
commit
9754df5623
260 changed files with 3981 additions and 2390 deletions
|
@ -181,7 +181,7 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
# When joining a room we need to queue any events for that room up.
|
||||
# For each room, a list of (pdu, origin) tuples.
|
||||
self.room_queues = {} # type: Dict[str, List[Tuple[EventBase, str]]]
|
||||
self.room_queues: Dict[str, List[Tuple[EventBase, str]]] = {}
|
||||
self._room_pdu_linearizer = Linearizer("fed_room_pdu")
|
||||
|
||||
self._room_backfill = Linearizer("room_backfill")
|
||||
|
@ -368,7 +368,7 @@ class FederationHandler(BaseHandler):
|
|||
ours = await self.state_store.get_state_groups_ids(room_id, seen)
|
||||
|
||||
# state_maps is a list of mappings from (type, state_key) to event_id
|
||||
state_maps = list(ours.values()) # type: List[StateMap[str]]
|
||||
state_maps: List[StateMap[str]] = list(ours.values())
|
||||
|
||||
# we don't need this any more, let's delete it.
|
||||
del ours
|
||||
|
@ -735,7 +735,7 @@ class FederationHandler(BaseHandler):
|
|||
# we need to make sure we re-load from the database to get the rejected
|
||||
# state correct.
|
||||
fetched_events.update(
|
||||
(await self.store.get_events(missing_desired_events, allow_rejected=True))
|
||||
await self.store.get_events(missing_desired_events, allow_rejected=True)
|
||||
)
|
||||
|
||||
# check for events which were in the wrong room.
|
||||
|
@ -845,7 +845,7 @@ class FederationHandler(BaseHandler):
|
|||
# exact key to expect. Otherwise check it matches any key we
|
||||
# have for that device.
|
||||
|
||||
current_keys = [] # type: Container[str]
|
||||
current_keys: Container[str] = []
|
||||
|
||||
if device:
|
||||
keys = device.get("keys", {}).get("keys", {})
|
||||
|
@ -1185,7 +1185,7 @@ class FederationHandler(BaseHandler):
|
|||
if e_type == EventTypes.Member and event.membership == Membership.JOIN
|
||||
]
|
||||
|
||||
joined_domains = {} # type: Dict[str, int]
|
||||
joined_domains: Dict[str, int] = {}
|
||||
for u, d in joined_users:
|
||||
try:
|
||||
dom = get_domain_from_id(u)
|
||||
|
@ -1314,7 +1314,7 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
room_version = await self.store.get_room_version(room_id)
|
||||
|
||||
event_map = {} # type: Dict[str, EventBase]
|
||||
event_map: Dict[str, EventBase] = {}
|
||||
|
||||
async def get_event(event_id: str):
|
||||
with nested_logging_context(event_id):
|
||||
|
@ -1414,12 +1414,15 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
Invites must be signed by the invitee's server before distribution.
|
||||
"""
|
||||
pdu = await self.federation_client.send_invite(
|
||||
destination=target_host,
|
||||
room_id=event.room_id,
|
||||
event_id=event.event_id,
|
||||
pdu=event,
|
||||
)
|
||||
try:
|
||||
pdu = await self.federation_client.send_invite(
|
||||
destination=target_host,
|
||||
room_id=event.room_id,
|
||||
event_id=event.event_id,
|
||||
pdu=event,
|
||||
)
|
||||
except RequestSendFailed:
|
||||
raise SynapseError(502, f"Can't connect to server {target_host}")
|
||||
|
||||
return pdu
|
||||
|
||||
|
@ -1593,7 +1596,7 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
# Ask the remote server to create a valid knock event for us. Once received,
|
||||
# we sign the event
|
||||
params = {"ver": supported_room_versions} # type: Dict[str, Iterable[str]]
|
||||
params: Dict[str, Iterable[str]] = {"ver": supported_room_versions}
|
||||
origin, event, event_format_version = await self._make_and_verify_event(
|
||||
target_hosts, room_id, knockee, Membership.KNOCK, content, params=params
|
||||
)
|
||||
|
@ -1931,7 +1934,7 @@ class FederationHandler(BaseHandler):
|
|||
builder=builder
|
||||
)
|
||||
|
||||
event_allowed = await self.third_party_event_rules.check_event_allowed(
|
||||
event_allowed, _ = await self.third_party_event_rules.check_event_allowed(
|
||||
event, context
|
||||
)
|
||||
if not event_allowed:
|
||||
|
@ -2023,7 +2026,7 @@ class FederationHandler(BaseHandler):
|
|||
# for knock events, we run the third-party event rules. It's not entirely clear
|
||||
# why we don't do this for other sorts of membership events.
|
||||
if event.membership == Membership.KNOCK:
|
||||
event_allowed = await self.third_party_event_rules.check_event_allowed(
|
||||
event_allowed, _ = await self.third_party_event_rules.check_event_allowed(
|
||||
event, context
|
||||
)
|
||||
if not event_allowed:
|
||||
|
@ -2450,14 +2453,14 @@ class FederationHandler(BaseHandler):
|
|||
state_sets_d = await self.state_store.get_state_groups(
|
||||
event.room_id, extrem_ids
|
||||
)
|
||||
state_sets = list(state_sets_d.values()) # type: List[Iterable[EventBase]]
|
||||
state_sets: List[Iterable[EventBase]] = list(state_sets_d.values())
|
||||
state_sets.append(state)
|
||||
current_states = await self.state_handler.resolve_events(
|
||||
room_version, state_sets, event
|
||||
)
|
||||
current_state_ids = {
|
||||
current_state_ids: StateMap[str] = {
|
||||
k: e.event_id for k, e in current_states.items()
|
||||
} # type: StateMap[str]
|
||||
}
|
||||
else:
|
||||
current_state_ids = await self.state_handler.get_current_state_ids(
|
||||
event.room_id, latest_event_ids=extrem_ids
|
||||
|
@ -2814,7 +2817,7 @@ class FederationHandler(BaseHandler):
|
|||
"""
|
||||
# exclude the state key of the new event from the current_state in the context.
|
||||
if event.is_state():
|
||||
event_key = (event.type, event.state_key) # type: Optional[Tuple[str, str]]
|
||||
event_key: Optional[Tuple[str, str]] = (event.type, event.state_key)
|
||||
else:
|
||||
event_key = None
|
||||
state_updates = {
|
||||
|
@ -3031,9 +3034,13 @@ class FederationHandler(BaseHandler):
|
|||
await member_handler.send_membership_event(None, event, context)
|
||||
else:
|
||||
destinations = {x.split(":", 1)[-1] for x in (sender_user_id, room_id)}
|
||||
await self.federation_client.forward_third_party_invite(
|
||||
destinations, room_id, event_dict
|
||||
)
|
||||
|
||||
try:
|
||||
await self.federation_client.forward_third_party_invite(
|
||||
destinations, room_id, event_dict
|
||||
)
|
||||
except (RequestSendFailed, HttpResponseException):
|
||||
raise SynapseError(502, "Failed to forward third party invite")
|
||||
|
||||
async def on_exchange_third_party_invite_request(
|
||||
self, event_dict: JsonDict
|
||||
|
@ -3149,7 +3156,7 @@ class FederationHandler(BaseHandler):
|
|||
|
||||
logger.debug("Checking auth on event %r", event.content)
|
||||
|
||||
last_exception = None # type: Optional[Exception]
|
||||
last_exception: Optional[Exception] = None
|
||||
|
||||
# for each public key in the 3pid invite event
|
||||
for public_key_object in event_auth.get_public_keys(invite_event):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue