fix some mstv sim related issues

This commit is contained in:
zefie
2021-08-08 13:11:54 -04:00
parent 6741e1e374
commit acd90bc66b
7 changed files with 58 additions and 41 deletions

View File

@@ -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];
}

View File

@@ -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];

View File

@@ -63,7 +63,7 @@ data += `
<shadow>
<input type=button action="ValidateAgreement?registering=true&subscriber_name=${human_name}&subscriber_username=${nickname}" Value="Quick Reg" name="speedyreg" borderimage="file://ROM/Borders/ButtonBorder2.bif" usestyle width=130>
`;
if (minisrv_config.config.allow_guests) data += `<input type=button action="ValidateWelcome" Value="Sign in as Guest" name="noreg" borderimage="file://ROM/Borders/ButtonBorder2.bif" usestyle width=170 >`;
if (minisrv_config.config.allow_guests) data += `<input type=button action="BeMyGuest" Value="Sign in as Guest" name="noreg" borderimage="file://ROM/Borders/ButtonBorder2.bif" usestyle width=170 >`;
data += `<input type=submit Value=Continue name="Continue" borderimage="file://ROM/Borders/ButtonBorder2.bif" usestyle width=110 selected>
</shadow>

View File

@@ -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.<br><a href="${redirect[1]}">Click here if you are not automatically redirected.</a>`;
var redirect = [3, "client:relog?"];
} else {
message = `Are you ready to register your box with ${minisrv_config.config.service_name}?

View File

@@ -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.<br><a href="${redirect[1]}">Click here if you are not automatically redirected.</a>`;
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.<br><br>Returning from whence you came...";

View File

@@ -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<br>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<br>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;

View File

@@ -199,6 +199,9 @@
<Content Include="ServiceVault\wtv-music\get-playlist.js">
<SubType>Code</SubType>
</Content>
<Content Include="ServiceVault\wtv-register\BeMyGuest.js">
<SubType>Code</SubType>
</Content>
<Content Include="ServiceVault\wtv-register\FinishRegistration.js">
<SubType>Code</SubType>
</Content>