mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-02-14 16:01:21 -05:00
Don't bail out of joining if we encounter a rejected event
This commit is contained in:
parent
4678055173
commit
a3e332af19
@ -38,7 +38,7 @@ def check_auth(auth, auth_chain, events):
|
|||||||
print "Failed:", e.event_id, e.type, e.state_key
|
print "Failed:", e.event_id, e.type, e.state_key
|
||||||
print "Auth_events:", auth_events
|
print "Auth_events:", auth_events
|
||||||
print ex
|
print ex
|
||||||
print json.dumps(e.get_dict(), sort_keys=True, indent=4)
|
# print json.dumps(e.get_dict(), sort_keys=True, indent=4)
|
||||||
# raise
|
# raise
|
||||||
print "Success:", e.event_id, e.type, e.state_key
|
print "Success:", e.event_id, e.type, e.state_key
|
||||||
|
|
||||||
|
@ -649,8 +649,6 @@ class FederationHandler(BaseHandler):
|
|||||||
# FIXME
|
# FIXME
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self._check_auth_tree(auth_chain, event)
|
|
||||||
|
|
||||||
event_stream_id, max_stream_id = yield self._persist_auth_tree(
|
event_stream_id, max_stream_id = yield self._persist_auth_tree(
|
||||||
auth_chain, state, event
|
auth_chain, state, event
|
||||||
)
|
)
|
||||||
@ -1001,7 +999,16 @@ class FederationHandler(BaseHandler):
|
|||||||
is_new_state=(not outliers and not backfilled),
|
is_new_state=(not outliers and not backfilled),
|
||||||
)
|
)
|
||||||
|
|
||||||
def _check_auth_tree(self, auth_events, event):
|
@defer.inlineCallbacks
|
||||||
|
def _persist_auth_tree(self, auth_events, state, event):
|
||||||
|
events_to_context = {}
|
||||||
|
for e in auth_events:
|
||||||
|
ctx = yield self.state_handler.compute_event_context(
|
||||||
|
e, outlier=True,
|
||||||
|
)
|
||||||
|
events_to_context[e.event_id] = ctx
|
||||||
|
e.internal_metadata.outlier = True
|
||||||
|
|
||||||
event_map = {
|
event_map = {
|
||||||
e.event_id: e
|
e.event_id: e
|
||||||
for e in auth_events
|
for e in auth_events
|
||||||
@ -1021,17 +1028,17 @@ class FederationHandler(BaseHandler):
|
|||||||
if create_event:
|
if create_event:
|
||||||
a[(EventTypes.Create, "")] = create_event
|
a[(EventTypes.Create, "")] = create_event
|
||||||
|
|
||||||
|
try:
|
||||||
self.auth.check(e, auth_events=a)
|
self.auth.check(e, auth_events=a)
|
||||||
|
except AuthError:
|
||||||
@defer.inlineCallbacks
|
logger.warn(
|
||||||
def _persist_auth_tree(self, auth_events, state, event):
|
"Rejecting %s because %s",
|
||||||
events_to_context = {}
|
event.event_id, e.msg
|
||||||
for e in auth_events:
|
|
||||||
ctx = yield self.state_handler.compute_event_context(
|
|
||||||
e, outlier=True,
|
|
||||||
)
|
)
|
||||||
events_to_context[e.event_id] = ctx
|
|
||||||
e.internal_metadata.outlier = True
|
if e == event:
|
||||||
|
raise
|
||||||
|
events_to_context[e.event_id].rejected = RejectedReason.AUTH_ERROR
|
||||||
|
|
||||||
yield self.store.persist_events(
|
yield self.store.persist_events(
|
||||||
[
|
[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user