i tried, the box wont listen (attempt to workaround http/1.0 issue)

This commit is contained in:
zefie
2022-10-22 20:05:50 -04:00
parent de33d39a93
commit 0bb95df5dc
2 changed files with 25 additions and 10 deletions

View File

@@ -825,12 +825,22 @@ minisrv-no-mail-count: true`;
var urlToPath = wtvshared.fixPathSlashes(service_name + path.sep + shortURL); var urlToPath = wtvshared.fixPathSlashes(service_name + path.sep + shortURL);
processPath(socket, urlToPath, request_headers, service_name, shared_romcache, pc_services); processPath(socket, urlToPath, request_headers, service_name, shared_romcache, pc_services);
} else { } else {
// error reading headers (no request_url provided) debug('request_headers', request_headers);
var errpage = wtvshared.doErrorPage(400); if (request_headers.request.indexOf("HTTP/1.0") > 0) {
headers = errpage[0]; // webtv in HTTP/1.0 mode, try to kick it back to WTVP
data = errpage[1] var errpage = wtvshared.doErrorPage(500, null, null, false, true);
socket_sessions[socket.id].close_me = true; headers = errpage[0];
sendToClient(socket, headers, data); data = ''
socket_sessions[socket.id].close_me = true;
sendToClient(socket, headers, data);
} else {
// error reading headers (no request_url provided)
var errpage = wtvshared.doErrorPage(400, null, null, false, true);
headers = errpage[0];
data = ''
socket_sessions[socket.id].close_me = true;
sendToClient(socket, headers, data);
}
} }
} }
} }

View File

@@ -81,10 +81,10 @@ class WTVShared {
}); });
return out; return out;
} else { } else {
if (!minisrv_config.services[service]) { if (!this.minisrv_config.services[service]) {
throw ("SERVICE ERROR: Attempted to provision unconfigured service: " + service) throw ("SERVICE ERROR: Attempted to provision unconfigured service: " + service)
} else { } else {
return minisrv_config.services[service].toString(overrides); return this.minisrv_config.services[service].toString(overrides);
} }
} }
} }
@@ -684,7 +684,7 @@ class WTVShared {
}); });
} }
doErrorPage(code, data = null, details = null, pc_mode = false) { doErrorPage(code, data = null, details = null, pc_mode = false, wtv_reset = false) {
var headers = null; var headers = null;
var minisrv_config = this.minisrv_config; var minisrv_config = this.minisrv_config;
switch (code) { switch (code) {
@@ -720,7 +720,12 @@ class WTVShared {
headers += "Content-Type: text/html\n"; headers += "Content-Type: text/html\n";
break; break;
} }
console.error(" * doErrorPage Called:", code, data); if (wtv_reset && !pc_mode) {
headers += "wtv-service: reset\n";
headers += this.getServiceString('wtv-1800') + "\n";
headers += "wtv-visit: wtv-1800:/preregister?scriptless-visit-reason=999\n";
console.error(" * doErrorPage Called (sent wtv-reset):", code, data);
} else console.error(" * doErrorPage Called:", code, data);
return new Array(headers, data); return new Array(headers, data);
} }