Check for liveliness on submission when the server was previously dead
Fixes https://github.com/vector-im/riot-web/issues/10017 Specifically the `return` at the end of the diff fixes the problem, but it seems worthwhile to check for liveliness when we know the server has been dead in previous attempts.pull/21833/head
parent
380639516b
commit
c6a18b11f0
|
@ -145,9 +145,31 @@ module.exports = React.createClass({
|
||||||
return this.state.busy || this.props.busy;
|
return this.state.busy || this.props.busy;
|
||||||
},
|
},
|
||||||
|
|
||||||
onPasswordLogin: function(username, phoneCountry, phoneNumber, password) {
|
onPasswordLogin: async function(username, phoneCountry, phoneNumber, password) {
|
||||||
// Prevent people from submitting their password when something isn't right.
|
if (!this.state.serverIsAlive) {
|
||||||
if (this.isBusy()) return;
|
this.setState({busy: true});
|
||||||
|
// Do a quick liveliness check on the URLs
|
||||||
|
try {
|
||||||
|
await AutoDiscoveryUtils.validateServerConfigWithStaticUrls(
|
||||||
|
this.props.serverConfig.hsUrl,
|
||||||
|
this.props.serverConfig.isUrl,
|
||||||
|
);
|
||||||
|
this.setState({serverIsAlive: true, errorText: ""});
|
||||||
|
} catch (e) {
|
||||||
|
this.setState({
|
||||||
|
busy: false,
|
||||||
|
...AutoDiscoveryUtils.authComponentStateForError(e),
|
||||||
|
});
|
||||||
|
if (this.state.serverErrorIsFatal) {
|
||||||
|
return; // Server is dead - do not continue.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent people from submitting their password when something isn't right.
|
||||||
|
if (!this.state.serverIsAlive) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
busy: true,
|
busy: true,
|
||||||
|
|
Loading…
Reference in New Issue