Check if redirect available

This commit is contained in:
Ildar Kamalov 2019-02-19 19:19:40 +03:00
parent e873149bee
commit 340a4fb58e
4 changed files with 54 additions and 19 deletions

View File

@ -199,22 +199,33 @@ let Form = (props) => {
: <Trans>encryption_chain_invalid</Trans>
}
</li>
{subject &&
<li><Trans>encryption_subject</Trans>: {subject}</li>
}
{issuer &&
<li><Trans>encryption_issuer</Trans>: {issuer}</li>
}
{not_after && not_after !== EMPTY_DATE &&
<li>
<Trans>encryption_expire</Trans>:&nbsp;
{format(not_after, 'YYYY-MM-DD HH:mm:ss')}
</li>
}
{dns_names &&
<li>
<Trans>encryption_hostnames</Trans>: {dns_names}
</li>
{valid_cert &&
<Fragment>
{subject &&
<li>
<Trans>encryption_subject</Trans>:&nbsp;
{subject}
</li>
}
{issuer &&
<li>
<Trans>encryption_issuer</Trans>:&nbsp;
{issuer}
</li>
}
{not_after && not_after !== EMPTY_DATE &&
<li>
<Trans>encryption_expire</Trans>:&nbsp;
{format(not_after, 'YYYY-MM-DD HH:mm:ss')}
</li>
}
{dns_names &&
<li>
<Trans>encryption_hostnames</Trans>:&nbsp;
{dns_names}
</li>
}
</Fragment>
}
</ul>
</Fragment>

View File

@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
import { withNamespaces } from 'react-i18next';
import debounce from 'lodash/debounce';
import { DEBOUNCE_TIMEOUT } from '../../../helpers/constants';
import Form from './Form';
import Card from '../../ui/Card';
@ -13,7 +14,7 @@ class Encryption extends Component {
handleFormChange = debounce((values) => {
this.props.validateTlsConfig(values);
}, 300);
}, DEBOUNCE_TIMEOUT);
render() {
const { encryption, t } = this.props;

View File

@ -73,8 +73,13 @@ export const SETTINGS_NAMES = {
export const STANDARD_DNS_PORT = 53;
export const STANDARD_WEB_PORT = 80;
export const EMPTY_DATE = '0001-01-01T00:00:00Z';
export const DEBOUNCE_TIMEOUT = 300;
export const CHECK_TIMEOUT = 1000;
export const STOP_TIMEOUT = 10000;
export const UNSAFE_PORTS = [
1,
7,

View File

@ -4,7 +4,13 @@ import subHours from 'date-fns/sub_hours';
import addHours from 'date-fns/add_hours';
import round from 'lodash/round';
import { STATS_NAMES, STANDARD_DNS_PORT, STANDARD_WEB_PORT } from './constants';
import {
STATS_NAMES,
STANDARD_DNS_PORT,
STANDARD_WEB_PORT,
CHECK_TIMEOUT,
STOP_TIMEOUT,
} from './constants';
export const formatTime = (time) => {
const parsedTime = dateParse(time);
@ -151,7 +157,19 @@ export const redirectToCurrentProtocol = (values) => {
if (protocol !== 'https:' && enabled && port_https) {
window.location.replace(`https://${hostname}${httpsPort}/${hash}`);
} else if (protocol === 'https:' && enabled && port_https && port_https !== port) {
window.location.replace(`https://${hostname}${httpsPort}/${hash}`);
// TODO
const redirectCheck = setInterval(() => {
fetch(`https://${hostname}${httpsPort}/${hash}`, { mode: 'no-cors' })
.then(() => {
clearInterval(redirectCheck);
window.location.replace(`https://${hostname}${httpsPort}/${hash}`);
})
.catch(() => false);
}, CHECK_TIMEOUT);
setTimeout(() => {
clearInterval(redirectCheck);
console.error('Redirect check stopped');
}, STOP_TIMEOUT);
} else if (protocol === 'https:' && (!enabled || !port_https)) {
window.location.replace(`http://${hostname}/${hash}`);
}