From 0bb95df5dcde3c01990cdf6790d818642d50fe99 Mon Sep 17 00:00:00 2001 From: zefie Date: Sat, 22 Oct 2022 20:05:50 -0400 Subject: [PATCH] i tried, the box wont listen (attempt to workaround http/1.0 issue) --- zefie_wtvp_minisrv/app.js | 22 ++++++++++++++++------ zefie_wtvp_minisrv/includes/WTVShared.js | 13 +++++++++---- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 7e21d215..7079473b 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -825,12 +825,22 @@ minisrv-no-mail-count: true`; var urlToPath = wtvshared.fixPathSlashes(service_name + path.sep + shortURL); processPath(socket, urlToPath, request_headers, service_name, shared_romcache, pc_services); } else { - // error reading headers (no request_url provided) - var errpage = wtvshared.doErrorPage(400); - headers = errpage[0]; - data = errpage[1] - socket_sessions[socket.id].close_me = true; - sendToClient(socket, headers, data); + debug('request_headers', request_headers); + if (request_headers.request.indexOf("HTTP/1.0") > 0) { + // webtv in HTTP/1.0 mode, try to kick it back to WTVP + var errpage = wtvshared.doErrorPage(500, null, null, false, true); + headers = errpage[0]; + 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); + } } } } diff --git a/zefie_wtvp_minisrv/includes/WTVShared.js b/zefie_wtvp_minisrv/includes/WTVShared.js index 1b7c399d..7d8854e2 100644 --- a/zefie_wtvp_minisrv/includes/WTVShared.js +++ b/zefie_wtvp_minisrv/includes/WTVShared.js @@ -81,10 +81,10 @@ class WTVShared { }); return out; } else { - if (!minisrv_config.services[service]) { + if (!this.minisrv_config.services[service]) { throw ("SERVICE ERROR: Attempted to provision unconfigured service: " + service) } 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 minisrv_config = this.minisrv_config; switch (code) { @@ -720,7 +720,12 @@ class WTVShared { headers += "Content-Type: text/html\n"; 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); }