From e1f99073f3d9788a4b48d2bb7091e3894dcefa1a Mon Sep 17 00:00:00 2001 From: Rory& Date: Thu, 16 May 2024 11:46:45 +0200 Subject: Dont use refs for proxy --- ArcaneLibs | 2 +- LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs | 5 +++-- .../Homeservers/AuthenticatedHomeserverMxApiExtended.cs | 4 ++-- LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs | 4 ++-- LibMatrix/Homeservers/RemoteHomeServer.cs | 6 +++++- LibMatrix/Services/HomeserverProviderService.cs | 12 ++++++------ 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/ArcaneLibs b/ArcaneLibs index e885d07..68eca20 160000 --- a/ArcaneLibs +++ b/ArcaneLibs @@ -1 +1 @@ -Subproject commit e885d07cb1c0e75a1a16fb473118a86ff3dc5d27 +Subproject commit 68eca20fbf4d5c08b6960fb2362ba3733d2df9e5 diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs index 5520d3a..c729a44 100644 --- a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs +++ b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs @@ -19,8 +19,8 @@ using Microsoft.Extensions.Logging.Abstractions; namespace LibMatrix.Homeservers; public class AuthenticatedHomeserverGeneric : RemoteHomeserver { - public AuthenticatedHomeserverGeneric(string serverName, HomeserverResolverService.WellKnownUris wellKnownUris, ref string? proxy, string accessToken) : base(serverName, - wellKnownUris, ref proxy) { + public AuthenticatedHomeserverGeneric(string serverName, HomeserverResolverService.WellKnownUris wellKnownUris, string? proxy, string accessToken) : base(serverName, + wellKnownUris, proxy) { AccessToken = accessToken; ClientHttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); @@ -42,6 +42,7 @@ public class AuthenticatedHomeserverGeneric : RemoteHomeserver { public string UserLocalpart => UserId.Split(":")[0][1..]; public string ServerName => UserId.Split(":", 2)[1]; + [JsonIgnore] public string AccessToken { get; set; } public HsNamedCaches NamedCaches { get; set; } = null!; diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverMxApiExtended.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverMxApiExtended.cs index f55acb8..64d11f9 100644 --- a/LibMatrix/Homeservers/AuthenticatedHomeserverMxApiExtended.cs +++ b/LibMatrix/Homeservers/AuthenticatedHomeserverMxApiExtended.cs @@ -2,5 +2,5 @@ using LibMatrix.Services; namespace LibMatrix.Homeservers; -public class AuthenticatedHomeserverMxApiExtended(string serverName, HomeserverResolverService.WellKnownUris wellKnownUris, ref string? proxy, string accessToken) - : AuthenticatedHomeserverGeneric(serverName, wellKnownUris, ref proxy, accessToken); \ No newline at end of file +public class AuthenticatedHomeserverMxApiExtended(string serverName, HomeserverResolverService.WellKnownUris wellKnownUris, string? proxy, string accessToken) + : AuthenticatedHomeserverGeneric(serverName, wellKnownUris, proxy, accessToken); \ No newline at end of file diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs index 307a226..83ebf20 100644 --- a/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs +++ b/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs @@ -9,8 +9,8 @@ namespace LibMatrix.Homeservers; public class AuthenticatedHomeserverSynapse : AuthenticatedHomeserverGeneric { public readonly SynapseAdminApiClient Admin; - public AuthenticatedHomeserverSynapse(string serverName, HomeserverResolverService.WellKnownUris wellKnownUris, ref string? proxy, string accessToken) : base(serverName, - wellKnownUris, ref proxy, accessToken) { + public AuthenticatedHomeserverSynapse(string serverName, HomeserverResolverService.WellKnownUris wellKnownUris, string? proxy, string accessToken) : base(serverName, + wellKnownUris, proxy, accessToken) { Admin = new(this); } diff --git a/LibMatrix/Homeservers/RemoteHomeServer.cs b/LibMatrix/Homeservers/RemoteHomeServer.cs index c29137c..8669ca7 100644 --- a/LibMatrix/Homeservers/RemoteHomeServer.cs +++ b/LibMatrix/Homeservers/RemoteHomeServer.cs @@ -12,7 +12,7 @@ using Microsoft.Extensions.Logging.Abstractions; namespace LibMatrix.Homeservers; public class RemoteHomeserver { - public RemoteHomeserver(string baseUrl, HomeserverResolverService.WellKnownUris wellKnownUris, ref string? proxy) { + public RemoteHomeserver(string baseUrl, HomeserverResolverService.WellKnownUris wellKnownUris, string? proxy) { if (string.IsNullOrWhiteSpace(proxy)) proxy = null; BaseUrl = baseUrl; @@ -31,8 +31,12 @@ public class RemoteHomeserver { private Dictionary _profileCache { get; set; } = new(); public string BaseUrl { get; } + [JsonIgnore] public MatrixHttpClient ClientHttpClient { get; set; } + + [JsonIgnore] public FederationClient? FederationClient { get; set; } + public HomeserverResolverService.WellKnownUris WellKnownUris { get; set; } public async Task GetProfileAsync(string mxid, bool useCache = false) { diff --git a/LibMatrix/Services/HomeserverProviderService.cs b/LibMatrix/Services/HomeserverProviderService.cs index 9867184..3e42c21 100644 --- a/LibMatrix/Services/HomeserverProviderService.cs +++ b/LibMatrix/Services/HomeserverProviderService.cs @@ -19,7 +19,7 @@ public class HomeserverProviderService(ILogger logger return await AuthenticatedHomeserverCache.GetOrAdd($"{homeserver}{accessToken}{proxy}{impersonatedMxid}", async () => { var wellKnownUris = await hsResolver.ResolveHomeserverFromWellKnown(homeserver, enableClient, enableServer); - var rhs = new RemoteHomeserver(homeserver, wellKnownUris, ref proxy); + var rhs = new RemoteHomeserver(homeserver, wellKnownUris, proxy); AuthenticatedHomeserverGeneric? hs = null; if (!useGeneric) { @@ -42,10 +42,10 @@ public class HomeserverProviderService(ILogger logger try { if (clientVersions.UnstableFeatures.TryGetValue("gay.rory.mxapiextensions.v0", out var a) && a) - hs = new AuthenticatedHomeserverMxApiExtended(homeserver, wellKnownUris, ref proxy, accessToken); + hs = new AuthenticatedHomeserverMxApiExtended(homeserver, wellKnownUris, proxy, accessToken); else { if (serverVersion is { Server.Name: "Synapse" }) - hs = new AuthenticatedHomeserverSynapse(homeserver, wellKnownUris, ref proxy, accessToken); + hs = new AuthenticatedHomeserverSynapse(homeserver, wellKnownUris, proxy, accessToken); } } catch (Exception e) { @@ -54,7 +54,7 @@ public class HomeserverProviderService(ILogger logger } } - hs ??= new AuthenticatedHomeserverGeneric(homeserver, wellKnownUris, ref proxy, accessToken); + hs ??= new AuthenticatedHomeserverGeneric(homeserver, wellKnownUris, proxy, accessToken); await hs.Initialise(); @@ -68,8 +68,8 @@ public class HomeserverProviderService(ILogger logger public async Task GetRemoteHomeserver(string homeserver, string? proxy = null, bool useCache = true, bool enableServer = true) => useCache ? await RemoteHomeserverCache.GetOrAdd($"{homeserver}{proxy}", - async () => { return new RemoteHomeserver(homeserver, await hsResolver.ResolveHomeserverFromWellKnown(homeserver, enableServer: enableServer), ref proxy); }) - : new RemoteHomeserver(homeserver, await hsResolver.ResolveHomeserverFromWellKnown(homeserver, enableServer: enableServer), ref proxy); + async () => { return new RemoteHomeserver(homeserver, await hsResolver.ResolveHomeserverFromWellKnown(homeserver, enableServer: enableServer), proxy); }) + : new RemoteHomeserver(homeserver, await hsResolver.ResolveHomeserverFromWellKnown(homeserver, enableServer: enableServer), proxy); public async Task GetFederationClient(string homeserver, string keyId, string? proxy = null, bool useCache = true) => useCache -- cgit 1.4.1