diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/BeMyGuest.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/BeMyGuest.js new file mode 100644 index 00000000..8c0382cc --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/BeMyGuest.js @@ -0,0 +1,26 @@ +if (minisrv_config.config.allow_guests) { + headers = `300 Moved +Connection: Close +wtv-noback-all: wtv-register: +wtv-expire-all: wtv-`; + if (socket.ssid) { + if (ssid_sessions[socket.ssid]) { + if (ssid_sessions[socket.ssid].data_store) { + if (ssid_sessions[socket.ssid].data_store.wtvsec_login) { + headers += "\nwtv-ticket: " + ssid_sessions[socket.ssid].data_store.wtvsec_login.ticket_b64; + } + } + } + } + headers += ` +wtv-service: reset +${getServiceString('wtv-1800')} +wtv-relogin-url: wtv-1800:/preregister?guest_login=true +wtv-reconnect-url: wtv-1800:/preregister?guest_login=true&reconnect=true +wtv-boot-url: wtv-1800:/preregister?guest_login=true +Location: client:relogin`; +} else { + var errpage = doErrorPage(400, "Guest mode is not enabled on this service."); + headers = errpage[0]; + data = errpage[1]; +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js index 4279e69a..db85437c 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/ValidateWelcome.js @@ -1,17 +1,4 @@ -if (request_headers.query.noreg && minisrv_config.config.allow_guests) { - headers = `300 Moved -Connection: Close -wtv-noback-all: wtv-register: -wtv-expire-all: wtv- -wtv-ticket: ${ssid_sessions[socket.ssid].data_store.wtvsec_login.ticket_b64} -wtv-service: reset -${getServiceString('wtv-1800')} -wtv-relogin-url: wtv-1800:/preregister?guest_login=true -wtv-reconnect-url: wtv-1800:/preregister?guest_login=true&reconnect=true -wtv-boot-url: wtv-1800:/preregister?guest_login=true -Location: client:relogin`; - -} else if (!request_headers.query.registering) { +if (!request_headers.query.registering) { var errpage = doErrorPage(400); headers = errpage[0]; data = errpage[1]; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js b/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js index cb93f026..aecdd722 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-register/register.js @@ -63,7 +63,7 @@ data += ` `; -if (minisrv_config.config.allow_guests) data += ``; +if (minisrv_config.config.allow_guests) data += ``; data += ` diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js index 3f5ad1bd..b206c2b4 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/register.js @@ -12,7 +12,7 @@ wtv-relogin-url: wtv-1800:/preregister?relogin=true wtv-reconnect-url: wtv-1800:/preregister?reconnect=true wtv-boot-url: wtv-1800:/preregister?relogin=true`; - var message = "You will now be be redirected to registration."; + var message = `You will now be be redirected to registration.
Click here if you are not automatically redirected.`; var redirect = [3, "client:relog?"]; } else { message = `Are you ready to register your box with ${minisrv_config.config.service_name}? diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js index 1d2495fc..6580bbd3 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/unregister.js @@ -8,7 +8,7 @@ if (!ssid_sessions[socket.ssid].getSessionData("registered")) { if (ssid_sessions[socket.ssid].unregisterBox()) { headers += "\nwtv-noback-all: wtv-"; headers += "\nwtv-expire-all: wtv-"; - var message = "Your account data has been successfully removed. You will now be be redirected to registration."; + var message = `Your account data has been successfully removed. You will now be be redirected to registration.
Click here if you are not automatically redirected.`; var redirect = [3, "client:relog?"]; } else { var message = "There was an error deleting your account data. Please try again later. If the problem persists, please contact " + minisrv_config.config.service_owner + " to request manual deletion. SSID verifcation may be required to perform a manual deletion.

Returning from whence you came..."; diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 41c94acc..0bc18bff 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -1061,33 +1061,34 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq var post_string = "POST"; if (socket_sessions[socket.id].secure == true) { post_string = "Encrypted " + post_string; - } else { - // if the request is not encrypted, the client may have just sent the data with the primary headers, so lets look for that. - if (data_hex.indexOf("0d0a0d0a") != -1) socket_sessions[socket.id].post_data = data_hex.substring(data_hex.indexOf("0d0a0d0a") + 8); - if (data_hex.indexOf("0a0a") != -1) socket_sessions[socket.id].post_data = data_hex.substring(data_hex.indexOf("0a0a") + 4); - } - if (socket_sessions[socket.id].post_data.length == (socket_sessions[socket.id].post_data_length * 2)) { - // got all expected data - if (socket_sessions[socket.id].expecting_post_data) delete socket_sessions[socket.id].expecting_post_data; - console.log(" * Incoming", post_string, "request on", socket.id, "from", filterSSID(socket.ssid), "to", headers['request_url'], "(got all expected", socket_sessions[socket.id].post_data_length, "bytes of data from client already)"); - headers.post_data = CryptoJS.enc.Hex.parse(socket_sessions[socket.id].post_data); - if (socket_sessions[socket.id].headers) delete socket_sessions[socket.id].headers; - processURL(socket, headers); - } else { - // expecting more data (see below) - socket_sessions[socket.id].expecting_post_data = true; - console.log(" * Incoming", post_string, "request on", socket.id, "from", filterSSID(socket.ssid), "to", headers['request_url'], "(expecting", socket_sessions[socket.id].post_data_length, "bytes of data from client...)"); - } - if (socket_sessions[socket.id].post_data.length > (socket_sessions[socket.id].post_data_length * 2)) { - // got too much data ? ... should not ever reach this code - var errpage = doErrorPage(400, "Received too much data in POST request
Got " + (socket_sessions[socket.id].post_data.length / 2) + ", expected " + socket_sessions[socket.id].post_data_length); - headers = errpage[0]; - data = errpage[1]; - sendToClient(socket, headers, data); - return; } + + // the client may have just sent the data with the primary headers, so lets look for that. + if (data_hex.indexOf("0d0a0d0a") != -1) socket_sessions[socket.id].post_data = data_hex.substring(data_hex.indexOf("0d0a0d0a") + 8); + if (data_hex.indexOf("0a0a") != -1) socket_sessions[socket.id].post_data = data_hex.substring(data_hex.indexOf("0a0a") + 4); + + } + if (socket_sessions[socket.id].post_data.length == (socket_sessions[socket.id].post_data_length * 2)) { + // got all expected data + if (socket_sessions[socket.id].expecting_post_data) delete socket_sessions[socket.id].expecting_post_data; + console.log(" * Incoming", post_string, "request on", socket.id, "from", filterSSID(socket.ssid), "to", headers['request_url'], "(got all expected", socket_sessions[socket.id].post_data_length, "bytes of data from client already)"); + headers.post_data = CryptoJS.enc.Hex.parse(socket_sessions[socket.id].post_data); + if (socket_sessions[socket.id].headers) delete socket_sessions[socket.id].headers; + processURL(socket, headers); + } else { + // expecting more data (see below) + socket_sessions[socket.id].expecting_post_data = true; + console.log(" * Incoming", post_string, "request on", socket.id, "from", filterSSID(socket.ssid), "to", headers['request_url'], "(expecting", socket_sessions[socket.id].post_data_length, "bytes of data from client...)"); + } + if (socket_sessions[socket.id].post_data.length > (socket_sessions[socket.id].post_data_length * 2)) { + // got too much data ? ... should not ever reach this code + var errpage = doErrorPage(400, "Received too much data in POST request
Got " + (socket_sessions[socket.id].post_data.length / 2) + ", expected " + socket_sessions[socket.id].post_data_length); + headers = errpage[0]; + data = errpage[1]; + sendToClient(socket, headers, data); return; } + return; } else { delete socket_sessions[socket.id].headers; delete socket_sessions[socket.id].post_data; diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj index 6f63a8be..e5f9c67b 100644 --- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj +++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj @@ -199,6 +199,9 @@ Code + + Code + Code