mirror of https://github.com/Lissy93/dashy.git
🩹 Ensure stat finished before startSSLServer()
The two chained stat() promises may not have finished by the time `enableSSL` is evaluated in case of a slow file system (e.g. on a Raspberry Pi where the only block device is an SD card).
This commit is contained in:
parent
a3a26ce063
commit
91d4fd55c0
|
@ -24,21 +24,23 @@ const printSuccess = () => {
|
|||
|
||||
// Check if the SSL certs are present and SSL should be enabled
|
||||
let enableSSL = false;
|
||||
stat(httpsCerts.public).then(() => {
|
||||
stat(httpsCerts.private).then(() => {
|
||||
const checkCertificateFiles = stat(httpsCerts.public).then(() => {
|
||||
return stat(httpsCerts.private).then(() => {
|
||||
enableSSL = true;
|
||||
}).catch(() => { printNotSoGood('Private key not present'); });
|
||||
}).catch(() => { printNotSoGood('Public key not present'); });
|
||||
|
||||
const startSSLServer = (app) => {
|
||||
// If SSL should be enabled, create a secured server and start it
|
||||
if (enableSSL) {
|
||||
const httpsServer = https.createServer({
|
||||
key: fs.readFileSync(httpsCerts.private),
|
||||
cert: fs.readFileSync(httpsCerts.public),
|
||||
}, app);
|
||||
httpsServer.listen(SSLPort, () => { printSuccess(); });
|
||||
}
|
||||
checkCertificateFiles.then(() => {
|
||||
// If SSL should be enabled, create a secured server and start it
|
||||
if (enableSSL) {
|
||||
const httpsServer = https.createServer({
|
||||
key: fs.readFileSync(httpsCerts.private),
|
||||
cert: fs.readFileSync(httpsCerts.public),
|
||||
}, app);
|
||||
httpsServer.listen(SSLPort, () => { printSuccess(); });
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const middleware = (req, res, next) => {
|
||||
|
|
Loading…
Reference in New Issue