From dbed1123aaf2ad5c1fcee6d8944363cd55ec33e5 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Tue, 13 Aug 2024 23:54:44 +0200 Subject: [PATCH] [backend/federation] Improve webfinger response reuse in UserResolver (ISH-364) --- .../Core/Federation/ActivityPub/UserResolver.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs index e0dff3eb..ea17f668 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs @@ -43,15 +43,18 @@ public class UserResolver( */ private async Task<(string Acct, string Uri)> WebFingerAsync( - string query, bool recurse = true, string? actorUri = null + string query, bool recurse = true, string? actorUri = null, + Dictionary? responses = null ) { if (actorUri == null) logger.LogDebug("Running WebFinger for query '{query}'", query); else - logger.LogDebug("Running WebFinger reverse discovery for query '{query}' and uri '{uri}'", query, actorUri); + logger.LogDebug("Performing WebFinger reverse discovery for query '{query}' and uri '{uri}'", + query, actorUri); + + responses ??= []; - var responses = new Dictionary(); var fingerRes = await webFingerSvc.ResolveAsync(query); if (fingerRes == null) { @@ -121,7 +124,7 @@ public class UserResolver( actor.Normalize(apUri); var domain = new Uri(actor.Id).Host; var username = new Uri(actor.Username!).Host; - return await WebFingerAsync($"acct:{username}@{domain}", false, apUri); + return await WebFingerAsync($"acct:{username}@{domain}", false, apUri, responses); } catch (Exception e) {