From e896b009f10fa2f40d453ba5fdbc9a83f28c0699 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 8 Dec 2020 10:58:16 +0000 Subject: [PATCH 1/2] Handle manual hs urls better --- src/components/views/dialogs/ServerPickerDialog.tsx | 3 ++- src/components/views/elements/ServerPicker.tsx | 2 +- src/utils/AutoDiscoveryUtils.js | 11 +++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/views/dialogs/ServerPickerDialog.tsx b/src/components/views/dialogs/ServerPickerDialog.tsx index 4d967220e0..e8a5fdcd1c 100644 --- a/src/components/views/dialogs/ServerPickerDialog.tsx +++ b/src/components/views/dialogs/ServerPickerDialog.tsx @@ -51,7 +51,8 @@ export default class ServerPickerDialog extends React.PureComponent; } - let serverName = serverConfig.hsName; + let serverName = serverConfig.static ? serverConfig.hsUrl : serverConfig.hsName; if (serverConfig.hsNameIsDifferent) { serverName = {serverConfig.hsName} diff --git a/src/utils/AutoDiscoveryUtils.js b/src/utils/AutoDiscoveryUtils.js index 94aa0c3544..3831dc9656 100644 --- a/src/utils/AutoDiscoveryUtils.js +++ b/src/utils/AutoDiscoveryUtils.js @@ -34,6 +34,8 @@ export class ValidatedServerConfig { isUrl: string; isDefault: boolean; + // when the server config is based on static URLs the hsName is not resolvable and things may wish to use hsUrl + static: boolean; warning: string; } @@ -161,7 +163,7 @@ export default class AutoDiscoveryUtils { const url = new URL(homeserverUrl); const serverName = url.hostname; - return AutoDiscoveryUtils.buildValidatedConfigFromDiscovery(serverName, result, syntaxOnly); + return AutoDiscoveryUtils.buildValidatedConfigFromDiscovery(serverName, result, syntaxOnly, true); } /** @@ -179,12 +181,12 @@ export default class AutoDiscoveryUtils { * input. * @param {string} serverName The domain name the AutoDiscovery result is for. * @param {*} discoveryResult The AutoDiscovery result. - * @param {boolean} syntaxOnly If true, errors relating to liveliness of the servers will - * not be raised. + * @param {boolean} syntaxOnly If true, errors relating to liveliness of the servers will not be raised. + * @param {boolean} isStatic If true, then the discoveryResult was synthesised locally. * @returns {Promise} Resolves to the validated configuration. */ static buildValidatedConfigFromDiscovery( - serverName: string, discoveryResult, syntaxOnly=false): ValidatedServerConfig { + serverName: string, discoveryResult, syntaxOnly=false, isStatic=false): ValidatedServerConfig { if (!discoveryResult || !discoveryResult["m.homeserver"]) { // This shouldn't happen without major misconfiguration, so we'll log a bit of information // in the log so we can find this bit of codee but otherwise tell teh user "it broke". @@ -252,6 +254,7 @@ export default class AutoDiscoveryUtils { isUrl: preferredIdentityUrl, isDefault: false, warning: hsResult.error, + static: isStatic, }); } } From 5be65a525ddad3faa523ae6b6e17409f13f30676 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 9 Dec 2020 11:14:06 +0000 Subject: [PATCH 2/2] Improve identifiers and code readability --- src/components/views/dialogs/ServerPickerDialog.tsx | 13 +++++++++++-- src/components/views/elements/ServerPicker.tsx | 2 +- src/utils/AutoDiscoveryUtils.js | 8 ++++---- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/components/views/dialogs/ServerPickerDialog.tsx b/src/components/views/dialogs/ServerPickerDialog.tsx index e8a5fdcd1c..65d53f0870 100644 --- a/src/components/views/dialogs/ServerPickerDialog.tsx +++ b/src/components/views/dialogs/ServerPickerDialog.tsx @@ -49,10 +49,19 @@ export default class ServerPickerDialog extends React.PureComponent; } - let serverName = serverConfig.static ? serverConfig.hsUrl : serverConfig.hsName; + let serverName = serverConfig.isNameResolvable ? serverConfig.hsName : serverConfig.hsUrl; if (serverConfig.hsNameIsDifferent) { serverName =