From 06b2f3a3b5f9954d7a87465f14e878af9897684f Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Fri, 25 Sep 2020 15:50:10 +0100 Subject: [PATCH] Try to find auth events at both resident joining server and event origin --- federationsender/internal/perform/join.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/federationsender/internal/perform/join.go b/federationsender/internal/perform/join.go index 5fdb0195d..cc0b1d3dc 100644 --- a/federationsender/internal/perform/join.go +++ b/federationsender/internal/perform/join.go @@ -59,9 +59,15 @@ func (r joinContext) CheckSendJoinResponse( // Try to retrieve the event from the server that sent us the send // join response. - tx, txerr := r.federation.GetEvent(ctx, serverName, eventID) + tx, txerr := r.federation.GetEvent(ctx, server, eventID) if txerr != nil { - return nil, fmt.Errorf("missingAuth r.federation.GetEvent: %w", txerr) + if server == serverName { + return nil, fmt.Errorf("missingAuth r.federation.GetEvent via %q: %w", server, txerr) + } + tx, txerr = r.federation.GetEvent(ctx, serverName, eventID) + if txerr != nil { + return nil, fmt.Errorf("missingAuth r.federation.GetEvent via %q and %q: %w", server, serverName, txerr) + } } // For each event returned, add it to the set of return events. We