mirror of
https://mau.dev/maunium/synapse.git
synced 2024-11-15 22:42:23 +01:00
Correctly handle all the places that can throw exceptions
This commit is contained in:
parent
92d850fc87
commit
963256638d
4 changed files with 36 additions and 14 deletions
|
@ -97,8 +97,11 @@ def lookup(destination, path):
|
||||||
if ":" in destination:
|
if ":" in destination:
|
||||||
return "https://%s%s" % (destination, path)
|
return "https://%s%s" % (destination, path)
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
srv = srvlookup.lookup("matrix", "tcp", destination)[0]
|
srv = srvlookup.lookup("matrix", "tcp", destination)[0]
|
||||||
return "https://%s:%d%s" % (srv.host, srv.port, path)
|
return "https://%s:%d%s" % (srv.host, srv.port, path)
|
||||||
|
except:
|
||||||
|
return "https://%s:%d%s" % (destination, 8448, path)
|
||||||
|
|
||||||
def get_json(origin_name, origin_key, destination, path):
|
def get_json(origin_name, origin_key, destination, path):
|
||||||
request_json = {
|
request_json = {
|
||||||
|
|
|
@ -61,7 +61,8 @@ class FederationBase(object):
|
||||||
# Check local db.
|
# Check local db.
|
||||||
new_pdu = yield self.store.get_event(
|
new_pdu = yield self.store.get_event(
|
||||||
pdu.event_id,
|
pdu.event_id,
|
||||||
allow_rejected=True
|
allow_rejected=True,
|
||||||
|
allow_none=True,
|
||||||
)
|
)
|
||||||
if new_pdu:
|
if new_pdu:
|
||||||
signed_pdus.append(new_pdu)
|
signed_pdus.append(new_pdu)
|
||||||
|
@ -69,6 +70,7 @@ class FederationBase(object):
|
||||||
|
|
||||||
# Check pdu.origin
|
# Check pdu.origin
|
||||||
if pdu.origin != origin:
|
if pdu.origin != origin:
|
||||||
|
try:
|
||||||
new_pdu = yield self.get_pdu(
|
new_pdu = yield self.get_pdu(
|
||||||
destinations=[pdu.origin],
|
destinations=[pdu.origin],
|
||||||
event_id=pdu.event_id,
|
event_id=pdu.event_id,
|
||||||
|
@ -78,6 +80,8 @@ class FederationBase(object):
|
||||||
if new_pdu:
|
if new_pdu:
|
||||||
signed_pdus.append(new_pdu)
|
signed_pdus.append(new_pdu)
|
||||||
continue
|
continue
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
logger.warn("Failed to find copy of %s with valid signature")
|
logger.warn("Failed to find copy of %s with valid signature")
|
||||||
|
|
||||||
|
|
|
@ -411,9 +411,12 @@ class FederationServer(FederationBase):
|
||||||
"_handle_new_pdu getting state for %s",
|
"_handle_new_pdu getting state for %s",
|
||||||
pdu.room_id
|
pdu.room_id
|
||||||
)
|
)
|
||||||
|
try:
|
||||||
state, auth_chain = yield self.get_state_for_room(
|
state, auth_chain = yield self.get_state_for_room(
|
||||||
origin, pdu.room_id, pdu.event_id,
|
origin, pdu.room_id, pdu.event_id,
|
||||||
)
|
)
|
||||||
|
except:
|
||||||
|
logger.warn("Failed to get state for event: %s", pdu.event_id)
|
||||||
|
|
||||||
ret = yield self.handler.on_receive_pdu(
|
ret = yield self.handler.on_receive_pdu(
|
||||||
origin,
|
origin,
|
||||||
|
|
|
@ -788,6 +788,18 @@ class FederationHandler(BaseHandler):
|
||||||
|
|
||||||
defer.returnValue(ret)
|
defer.returnValue(ret)
|
||||||
|
|
||||||
|
@defer.inlineCallbacks
|
||||||
|
def trigger_query_auth(self, destination, event_id):
|
||||||
|
local_auth_chain = yield self.store.get_auth_chain([event_id])
|
||||||
|
|
||||||
|
result = yield self.replication_layer.query_auth(
|
||||||
|
destination,
|
||||||
|
event.room_id,
|
||||||
|
event.event_id,
|
||||||
|
local_auth_chain,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@defer.inlineCallbacks
|
@defer.inlineCallbacks
|
||||||
@log_function
|
@log_function
|
||||||
def do_auth(self, origin, event, context, auth_events):
|
def do_auth(self, origin, event, context, auth_events):
|
||||||
|
|
Loading…
Reference in a new issue