fix for minibrowser

This commit is contained in:
zefie
2024-05-11 11:16:52 -04:00
parent b1cad550a7
commit 8aff6cc092
2 changed files with 27 additions and 12 deletions

View File

@@ -1473,12 +1473,13 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
if (headers["wtv-client-serial-number"] != null && socket.ssid == null) { if (headers["wtv-client-serial-number"] != null && socket.ssid == null) {
socket.ssid = wtvshared.makeSafeSSID(headers["wtv-client-serial-number"]); socket.ssid = wtvshared.makeSafeSSID(headers["wtv-client-serial-number"]);
if (minisrv_config.config.require_valid_ssid) { if (minisrv_config.config.require_valid_ssid) {
if (!wtvshared.checkSSID(headers["wtv-client-serial-number"])) { if (!wtvshared.checkSSID(socket.ssid)) {
if (socket.ssid.substring(0, 5) != "1SEGA" && socket.ssid.substring(0, 8) != "MSTVSIMU") { if (socket.ssid.substring(0, 5) != "1SEGA" && socket.ssid.substring(0, 8) != "MSTVSIMU") {
// reject invalid SSIDs, but let Dreamcast and MSTV Sim through for now until we figure out their checksumming method. // reject invalid SSIDs, but let Dreamcast and MSTV Sim through for now until we figure out their checksumming method.
var errpage = wtvshared.doErrorPage(400, "minisrv ran into a technical problem. Reason: Your SSID is not valid."); var errpage = wtvshared.doErrorPage(400, "minisrv ran into a technical problem. Reason: Your SSID is not valid.");
headers = errpage[0]; headers = errpage[0];
data = errpage[1]; data = errpage[1];
socket.close_me = true;
sendToClient(socket, headers, data); sendToClient(socket, headers, data);
return; return;
} }
@@ -1573,7 +1574,7 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
} }
if (socket_sessions[socket.id].secure != true) { if (socket_sessions[socket.id].secure != true) {
// first time so reroll sessions // first time so reroll sessions
if (minisrv_config.config.debug_flags.debug) console.log(" # [ SECURE ON BLOCK (" + socket.id + ") ]"); //if (minisrv_config.config.debug_flags.debug) console.log(" # [ SECURE ON BLOCK (" + socket.id + ") ]");
socket_sessions[socket.id].secure = true; socket_sessions[socket.id].secure = true;
} }
if (!headers.request_url) { if (!headers.request_url) {
@@ -1823,17 +1824,27 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
} }
} }
} }
} else {
cleanupSocket(socket);
} }
} catch (e) { } catch (e) {
cleanupSocket(socket); var errpage = wtvshared.doErrorPage(400);
headers = errpage[0];
data = errpage[1];
socket.close_me = true;
sendToClient(socket, headers, data);
} }
} else { } else {
cleanupSocket(socket); var errpage = wtvshared.doErrorPage(400);
headers = errpage[0];
data = errpage[1];
socket.close_me = true;
sendToClient(socket, headers, data);
} }
} else { } else {
cleanupSocket(socket); var errpage = wtvshared.doErrorPage(400);
headers = errpage[0];
data = errpage[1];
socket.close_me = true;
sendToClient(socket, headers, data);
} }
} }

View File

@@ -781,12 +781,16 @@ class WTVShared {
} }
censorSSID(ssid) { censorSSID(ssid) {
if (ssid) {
if (ssid.slice(0, 8) === "MSTVSIMU") { if (ssid.slice(0, 8) === "MSTVSIMU") {
return ssid.slice(0, 10) + ('*').repeat(10) + ssid.slice(20); return ssid.slice(0, 10) + ('*').repeat(10) + ssid.slice(20);
} else if (ssid.slice(0, 5) === "1SEGA") { } else if (ssid.slice(0, 5) === "1SEGA") {
return ssid.slice(0, 6) + ('*').repeat(6) + ssid.slice(12); return ssid.slice(0, 6) + ('*').repeat(6) + ssid.slice(12);
} }
return ssid.slice(0, 6) + ('*').repeat(9); return ssid.slice(0, 6) + ('*').repeat(9);
} else {
return "????????????????";
}
} }
/** /**