From d70cb5bf3641365efc3fb8afa21eb4f9d42ff19b Mon Sep 17 00:00:00 2001 From: zefie Date: Thu, 17 Mar 2022 19:24:06 -0400 Subject: [PATCH] mostly fix bad-disk detection - may still get bad-disk screen once after fixing disk - may only be an issue if the user reconnects before the cleanup --- .../ServiceVault/wtv-head-waiter/ValidateLogin.js | 5 ++++- .../ServiceVault/wtv-head-waiter/bad-disk.js | 13 ++++++++----- zefie_wtvp_minisrv/WTVClientSessionData.js | 2 +- zefie_wtvp_minisrv/app.js | 5 ++++- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/ValidateLogin.js b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/ValidateLogin.js index b3df4137..2a5e335a 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/ValidateLogin.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/ValidateLogin.js @@ -64,7 +64,10 @@ minisrv-no-mail-count: true `; } } else { - if (ssid_sessions[socket.ssid].getNumberOfUserAccounts() > 1 && user_id === 0 && request_headers.query.initial_login) { + if (ssid_sessions[socket.ssid].baddisk === true) { + gourl = "wtv-head-waiter:/bad-disk?" + } + else if (ssid_sessions[socket.ssid].getNumberOfUserAccounts() > 1 && user_id === 0 && request_headers.query.initial_login) { gourl = "wtv-head-waiter:/choose-user?" } else { var limitedLogin = (!ssid_sessions[socket.ssid].lockdown && (!ssid_sessions[socket.ssid].get('password_valid') && ssid_sessions[socket.ssid].getUserPasswordEnabled())); diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/bad-disk.js b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/bad-disk.js index 6ab600d3..193d51dd 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/bad-disk.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-head-waiter/bad-disk.js @@ -1,6 +1,9 @@ var minisrv_service_file = true; +// remove restrictions once this page is shown, since the user will be 'trapped' anyway ssid_sessions[socket.ssid].disableLockdown(); +ssid_sessions[socket.ssid].delete("wtv-my-disk-sucks-sucks-sucks"); +ssid_sessions[socket.ssid].baddisk = false; headers = `200 OK Content-type: text/html`; @@ -12,14 +15,14 @@ data = `
- - + -
Please Call @@ -52,9 +55,9 @@ or replaced before you can connect to WebTV.
-
+
-
+
diff --git a/zefie_wtvp_minisrv/WTVClientSessionData.js b/zefie_wtvp_minisrv/WTVClientSessionData.js index baab0c88..4e5a9d15 100644 --- a/zefie_wtvp_minisrv/WTVClientSessionData.js +++ b/zefie_wtvp_minisrv/WTVClientSessionData.js @@ -56,7 +56,7 @@ class WTVClientSessionData { this.mailstore = new WTVMail(this.minisrv_config, this) this.loginWhitelist = Object.assign([], this.lockdownWhitelist); // clone lockdown whitelist into login whitelist this.loginWhitelist.push("wtv-head-waiter:/choose-user"); - this.loginWhitelist.push("wtv-head-waiter:/password"); + this.loginWhitelist.push("wtv-head-waiter:/password"); } assignMailStore() { diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 37ec99f6..a679a582 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -429,6 +429,7 @@ async function processURL(socket, request_headers) { // lockdown mode and URL not authorized headers = "300 Unauthorized\n"; headers += "Location: " + minisrv_config.config.unauthorized_url + "\n"; + headers += "minisrv-no-mail-count: true\n"; data = ""; sendToClient(socket, headers, data); console.log(" * Lockdown rejected request for " + shortURL + " on socket ID", socket.id); @@ -440,6 +441,7 @@ async function processURL(socket, request_headers) { // user is not fully logged in, and URL not authorized headers = "300 Unauthorized\n"; headers += "Location: client:relogin\n"; + headers += "minisrv-no-mail-count: true\n"; data = ""; sendToClient(socket, headers, data); console.log(" * Incomplete login rejected request for " + shortURL + " on socket ID", socket.id); @@ -458,7 +460,8 @@ async function processURL(socket, request_headers) { if (!ssid_sessions[socket.ssid].isUserLoggedIn() && !ssid_sessions[socket.ssid].isAuthorized(shortURL, 'login')) { // lockdown mode and URL not authorized headers = `300 Unauthorized -Location: " + minisrv_config.config.unauthorized_url`; +Location: ${minisrv_config.config.unauthorized_url} +minisrv-no-mail-count: true`; data = ""; sendToClient(socket, headers, data); console.log(" * Rejected login bypass request for " + shortURL + " on socket ID", socket.id);