Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Enable cleaning up extremities with dummy events by default to preven…
Browse files Browse the repository at this point in the history
…t undue build up of forward extremities. (#5884)
  • Loading branch information
anoadragon453 committed Feb 25, 2020
2 parents 4c42e1a + a4f3ca4 commit ba03d64
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 32 deletions.
1 change: 1 addition & 0 deletions changelog.d/5884.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Enable cleaning up extremities with dummy events by default to prevent undue build up of forward extremities.
1 change: 1 addition & 0 deletions changelog.d/6104.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Threepid validity checks on msisdns should not be dependent on 'threepid_behaviour_email'.
4 changes: 1 addition & 3 deletions synapse/config/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -485,10 +485,8 @@ class LimitRemoteRoomsConfig(object):

_check_resource_config(self.listeners)

# An experimental option to try and periodically clean up extremities
# by sending dummy events.
self.cleanup_extremities_with_dummy_events = config.get(
"cleanup_extremities_with_dummy_events", False
"cleanup_extremities_with_dummy_events", True
)

def has_tls_listener(self):
Expand Down
63 changes: 34 additions & 29 deletions synapse/handlers/ui_auth/checkers.py
Original file line number Diff line number Diff line change
Expand Up @@ -148,42 +148,47 @@ def _check_threepid(self, medium, authdict):
identity_handler = self.hs.get_handlers().identity_handler

logger.info("Getting validated threepid. threepidcreds: %r", (threepid_creds,))
if self.hs.config.threepid_behaviour_email == ThreepidBehaviour.REMOTE:
if medium == "email":

# msisdns are currently always ThreepidBehaviour.REMOTE
if medium == "msisdn":
if not self.hs.config.account_threepid_delegate_msisdn:
raise SynapseError(
400, "Phone number verification is not enabled on this homeserver"
)
threepid = yield identity_handler.threepid_from_creds(
self.hs.config.account_threepid_delegate_msisdn, threepid_creds
)
elif medium == "email":
if self.hs.config.threepid_behaviour_email == ThreepidBehaviour.REMOTE:
assert self.hs.config.account_threepid_delegate_email
threepid = yield identity_handler.threepid_from_creds(
self.hs.config.account_threepid_delegate_email, threepid_creds
)
elif medium == "msisdn":
threepid = yield identity_handler.threepid_from_creds(
self.hs.config.account_threepid_delegate_msisdn, threepid_creds
elif self.hs.config.threepid_behaviour_email == ThreepidBehaviour.LOCAL:
threepid = None
row = yield self.store.get_threepid_validation_session(
medium,
threepid_creds["client_secret"],
sid=threepid_creds["sid"],
validated=True,
)
else:
raise SynapseError(400, "Unrecognized threepid medium: %s" % (medium,))
elif self.hs.config.threepid_behaviour_email == ThreepidBehaviour.LOCAL:
row = yield self.store.get_threepid_validation_session(
medium,
threepid_creds["client_secret"],
sid=threepid_creds["sid"],
validated=True,
)

threepid = (
{
"medium": row["medium"],
"address": row["address"],
"validated_at": row["validated_at"],
}
if row
else None
)
if row:
threepid = {
"medium": row["medium"],
"address": row["address"],
"validated_at": row["validated_at"],
}

if row:
# Valid threepid returned, delete from the db
yield self.store.delete_threepid_session(threepid_creds["sid"])
# Valid threepid returned, delete from the db
yield self.store.delete_threepid_session(threepid_creds["sid"])
else:
raise SynapseError(
400, "Email address verification is not enabled on this homeserver"
)
else:
raise SynapseError(
400, "Password resets are not enabled on this homeserver"
)
# this can't happen!
raise AssertionError("Unrecognized threepid medium: %s" % (medium,))

if not threepid:
raise LoginError(401, "", errcode=Codes.UNAUTHORIZED)
Expand Down

0 comments on commit ba03d64

Please sign in to comment.