From 2a4997e84685d7ac1e7347180b9ef0515f1c25b1 Mon Sep 17 00:00:00 2001 From: zefie Date: Mon, 26 Jul 2021 08:47:24 -0400 Subject: [PATCH] v0.9.8 - fix: app.js: Use \r\n, fix connections= service setting - update: config.json: fix some service flags that were misset - Add ServiceFlags.txt: brief description of wtv-service flags - update: Moved tellyscripts to wtv-1800:/preregister - update: fixed bug where "send_tellyscript was undefined" - update: initial work on bf0app flashrom support (incomplete) - add wtv-1800:/offer-open-isp-suggest for dreamcast clients - fix: wtv-tricks:/info was not updated to use new ClientSessionData structure - update: app.js: add special filtering for Dreamcast clients - update: change default service logos --- ServiceFlags.txt | 16 ++ .../bf0app/bf0app_production_braindead.tok | Bin 0 -> 5168 bytes .../ServiceVault/wtv-1800/finish-prereg.js | 78 ---------- .../ServiceVault/wtv-1800/noflash.js.meh | 49 +++++++ .../wtv-1800/offer-open-isp-suggest.js | 14 ++ .../ServiceVault/wtv-1800/preregister.js | 137 ++++++++++++++++-- .../ServiceVault/wtv-flashrom/get-by-path.js | 3 +- .../wtv-flashrom/initiate-lc2-download.js | 9 +- .../wtv-star/ROMCache/MSNLogo.gif | Bin 1801 -> 0 bytes .../wtv-star/ROMCache/splash_logo_msn.gif | Bin 5122 -> 0 bytes .../ServiceVault/wtv-tricks/info.js | 4 +- zefie_wtvp_minisrv/app.js | 18 ++- zefie_wtvp_minisrv/config.json | 20 +-- zefie_wtvp_minisrv/package.json | 2 +- zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj | 1 - 15 files changed, 234 insertions(+), 117 deletions(-) create mode 100644 ServiceFlags.txt create mode 100644 zefie_wtvp_minisrv/ServiceDeps/premade_tellyscripts/bf0app/bf0app_production_braindead.tok delete mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-1800/finish-prereg.js create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-1800/noflash.js.meh create mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-1800/offer-open-isp-suggest.js delete mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-star/ROMCache/MSNLogo.gif delete mode 100644 zefie_wtvp_minisrv/ServiceVault/wtv-star/ROMCache/splash_logo_msn.gif diff --git a/ServiceFlags.txt b/ServiceFlags.txt new file mode 100644 index 00000000..88f316d9 --- /dev/null +++ b/ServiceFlags.txt @@ -0,0 +1,16 @@ +wtv service flags: +DontEncryptRequests (Do not encrypt requests from client -> server) +UseHTTP (Instead of WTVP) +WideOpen (Allow untrusted links to this service) +UseServiceCookies (Pass service cookie to this service) +NoMeter (Dont meter this service) + +0x00000001 = DontEncryptRequests +0x00000002 = UseHTTP (untested) +0x00000004 = WideOpen +0x00000007 = DontEncryptRequests + WideOpen + UseHTTP +0x00000010 = UseServiceCookies +0x00000040 = NoMeter + +Note: +Service Cookies and Metering are not implemented in minisrv. \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceDeps/premade_tellyscripts/bf0app/bf0app_production_braindead.tok b/zefie_wtvp_minisrv/ServiceDeps/premade_tellyscripts/bf0app/bf0app_production_braindead.tok new file mode 100644 index 0000000000000000000000000000000000000000..e1410f425d78034cbe59d5f3f02172c9c4c06898 GIT binary patch literal 5168 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 CbZI^S literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-1800/finish-prereg.js b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/finish-prereg.js deleted file mode 100644 index b7e3f32c..00000000 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-1800/finish-prereg.js +++ /dev/null @@ -1,78 +0,0 @@ -if (socket.ssid != null) { - if (!ssid_sessions[socket.ssid].data_store.wtvsec_login) { - ssid_sessions[socket.ssid].data_store.wtvsec_login = new WTVSec(); - ssid_sessions[socket.ssid].data_store.wtvsec_login.IssueChallenge(); - ssid_sessions[socket.ssid].data_store.wtvsec_login.set_incarnation(request_headers["wtv-incarnation"]); - } -} else { - console.log(" * Something bad happened (we don't know the client ssid???)"); - var errpage = doErrorCode(400) - headers = errpage[0]; - data = errpage[1]; -} - -if (ssid_sessions[socket.ssid].data_store.wtvsec_login) { - var prereg_contype = "text/html"; - - if (request_headers.query.relogin) { // relogin - ssid_sessions[socket.ssid].data_store.wtvsec_login.ticket_b64 = null; // clear old ticket - } - - // if relogin and wtv-script-id != 0, skip tellyscript - var romtype, file_path = null; - var send_tellyscript = true; - var wtv_script_id = parseInt(ssid_sessions[socket.ssid].get("wtv-script-id")); - if (request_headers.query.relogin && wtv_script_id != 0) send_tellyscript = false; - if (send_tellyscript && minisrv_config.services[service_name].send_tellyscripts) { - if (minisrv_config.services[service_name].send_tellyscript_ssid_whitelist) { - var send_telly_to_ssid = (minisrv_config.services[service_name].send_tellyscript_ssid_whitelist.findIndex(element => element == socket.ssid) != -1) - if (send_telly_to_ssid) romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); - } else { - romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); - } - } - - switch (romtype) { - case "US-LC2-disk-0MB-8MB": - prereg_contype = "text/tellyscript"; - // if wtv-open-access: true then client expects OpenISP - if (ssid_sessions[socket.ssid].get("wtv-open-access") == "true") var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/LC2/LC2_OISP_5555732_56k.tok"; - else var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/LC2/LC2_WTV_18006138199_56k.tok"; - break; - - default: - data = ''; - break; - } - - headers = `200 OK -Connection: Keep-Alive -wtv-initial-key: ` + ssid_sessions[socket.ssid].data_store.wtvsec_login.challenge_key.toString(CryptoJS.enc.Base64) + ` -Content-Type: `+ prereg_contype + ` -wtv-service: reset -` + getServiceString('wtv-1800') + ` -` + getServiceString('wtv-star') + ` -` + getServiceString('wtv-head-waiter') + ` -` + getServiceString('wtv-flashrom') + ` -wtv-boot-url: wtv-1800:/preregister?relogin=true -wtv-visit: wtv-head-waiter:/login? -wtv-client-time-zone: GMT -0000 -wtv-client-time-dst-rule: GMT -wtv-client-date: `+ strftime("%a, %d %b %Y %H:%M:%S", new Date(new Date().toUTCString())) + ` GMT`; - - if (file_path) { - request_is_async = true; - fs.readFile(file_path, null, function (err, file_read_data) { - if (err) { - var errmsg = doErrorCode(400); - headers = errmsg[0]; - file_read_data = errmsg[1] + "\n" + err.toString(); - } - sendToClient(socket, headers, file_read_data); - }); - } -} else { - var errpage = doErrorCode(400); - headers = errpage[0]; - data = errpage[1]; -} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-1800/noflash.js.meh b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/noflash.js.meh new file mode 100644 index 00000000..89b09d45 --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/noflash.js.meh @@ -0,0 +1,49 @@ +if (socket.ssid != null && !ssid_sessions[socket.ssid].get("wtvsec_login")) { + var wtvsec_login = new WTVSec(); + wtvsec_login.IssueChallenge(); + wtvsec_login.set_incarnation(request_headers["wtv-incarnation"]); + ssid_sessions[socket.ssid].set("wtvsec_login", wtvsec_login); +} else if (socket.ssid != null) { + var wtvsec_login = ssid_sessions[socket.ssid].get("wtvsec_login"); +} + +if (wtvsec_login) { + + +headers = `200 OK +Connection: Keep-Alive +wtv-initial-key: ` + wtvsec_login.challenge_key.toString(CryptoJS.enc.Base64) + ` +Content-Type: text/tellyscript +wtv-service: reset +` + getServiceString('wtv-head-waiter') + ` +` + getServiceString('wtv-star') + ` +` + getServiceString('wtv-flashrom') + ` +wtv-boot-url: wtv-head-waiter:/login? +wtv-visit: wtv-head-waiter:/login? +wtv-client-time-zone: GMT -0000 +wtv-client-time-dst-rule: GMT +wtv-client-date: `+ strftime("%a, %d %b %Y %H:%M:%S", new Date(new Date().toUTCString())) + ` GMT`; + + var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/bf0app/bf0app_production_braindead"; + //var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/LC2/LC2_OISP_5555732_56k.tok"; + + if (file_path) { + request_is_async = true; + fs.readFile(file_path, null, function (err, file_read_data) { + if (err) { + + headers=`500 Some error occurred...` + } + sendToClient(socket, headers, file_read_data); + }); + + + + + } +} else { + console.log(" * Something bad happened (we don't know the client ssid???)"); + headers=`500 missing ssid` +} + + diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-1800/offer-open-isp-suggest.js b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/offer-open-isp-suggest.js new file mode 100644 index 00000000..2885e20f --- /dev/null +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/offer-open-isp-suggest.js @@ -0,0 +1,14 @@ +var gourl = "wtv-1800:/finish-prereg?"; +if (request_headers.query.relogin) gourl += "relogin=true"; + + +if (request_headers["wtv-ticket"]) { + gourl = "wtv-head-waiter:/login-stage-two?"; +} + +headers = `200 OK +Connection: Keep-Alive +wtv-expire-all: wtv- +wtv-open-isp-disabled: false +wtv-visit: `+ gourl + ` +Content-type: text/html`; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-1800/preregister.js b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/preregister.js index ebb0d9a6..80cb0b13 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-1800/preregister.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-1800/preregister.js @@ -1,10 +1,6 @@ -var gourl = "wtv-1800:/finish-prereg?"; +var gourl = "wtv-head-waiter:/login?"; if (request_headers.query.relogin) gourl += "relogin=true"; - - -if (request_headers["wtv-ticket"]) { - gourl = "wtv-head-waiter:/login-stage-two?"; -} +var send_initial_key = true; if (socket.ssid) { if (ssid_sessions[socket.ssid].data_store) { @@ -19,17 +15,132 @@ if (socket.ssid) { } } }); - if (i > 0 && zdebug) console.log(" # Closed", i, "previous sockets for", socket.ssid); + if (i > 0 && zdebug) console.log(" # Closed", i, "previous sockets for", filterSSID(socket.ssid)); } } if (ssid_sessions[socket.ssid].data_store.wtvsec_login) { delete ssid_sessions[socket.ssid].data_store.wtvsec_login; } + + ssid_sessions[socket.ssid].data_store.wtvsec_login = new WTVSec(); + ssid_sessions[socket.ssid].data_store.wtvsec_login.IssueChallenge(); + ssid_sessions[socket.ssid].data_store.wtvsec_login.set_incarnation(request_headers["wtv-incarnation"]); +} else { + console.log(" * Something bad happened (we don't know the client ssid???)"); + var errpage = doErrorCode(400) + headers = errpage[0]; + data = errpage[1]; } -headers = `200 OK -Connection: Keep-Alive -wtv-expire-all: wtv- -wtv-open-isp-disabled: false -wtv-visit: `+ gourl + ` -Content-type: text/html`; +if (ssid_sessions[socket.ssid].data_store.wtvsec_login) { + var prereg_contype = "text/html"; + + if (request_headers.query.relogin) { // relogin + ssid_sessions[socket.ssid].data_store.wtvsec_login.ticket_b64 = null; // clear old ticket + } + + // if relogin and wtv-script-id != 0, skip tellyscript + var file_path = null; + var bf0app_update = false; + var romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); + var send_tellyscripts = (minisrv_config.services[service_name].send_tellyscripts && !request_headers.query.relogin); + var wtv_script_id = parseInt(ssid_sessions[socket.ssid].get("wtv-script-id")); + var bootrom = ssid_sessions[socket.ssid].get("wtv-client-bootrom-version"); + if (request_headers.query.relogin && wtv_script_id != 0) send_tellyscript = false; + if (send_tellyscripts) { + if (minisrv_config.services[service_name].send_tellyscript_ssid_whitelist) { + var send_telly_to_ssid = (minisrv_config.services[service_name].send_tellyscript_ssid_whitelist.findIndex(element => element == socket.ssid) != -1) + if (send_telly_to_ssid) { + romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); + } + } else { + romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); + } + + switch (romtype) { + case "US-LC2-disk-0MB-8MB": + prereg_contype = "text/tellyscript"; + // if wtv-open-access: true then client expects OpenISP + if (ssid_sessions[socket.ssid].get("wtv-open-access") == "true") var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/LC2/LC2_OISP_5555732_56k.tok"; + else var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/LC2/lc2_production_normal.tok"; + break; + + case "US-LC2-disk-0MB-8MB-softmodem-CPU5230": + prereg_contype = "text/tellyscript"; + // if wtv-open-access: true then client expects OpenISP + if (ssid_sessions[socket.ssid].get("wtv-open-access") == "true") var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/DERBY/derby_production_normal.tok"; + else var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/DERBY/derby_production_normal.tok"; + break; + + case "US-WEBSTAR-disk-0MB-16MB-softmodem-CPU5230": + prereg_contype = "text/tellyscript"; + // if wtv-open-access: true then client expects OpenISP + if (ssid_sessions[socket.ssid].get("wtv-open-access") == "true") var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/WEBSTAR/dishplayer_production_normal.tok"; + else var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/WEBSTAR/dishplayer_production_normal.tok"; + break; + + case "JP-Fiji": + prereg_contype = "text/tellyscript"; + // if wtv-open-access: true then client expects OpenISP + if (ssid_sessions[socket.ssid].get("wtv-open-access") == "true") var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/DC/dc_production_normal.tok"; + else var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/DC/dc_production_normal.tok"; + break; + + case "bf0app": + prereg_contype = "text/tellyscript"; + // if wtv-open-access: true then client expects OpenISP + if (ssid_sessions[socket.ssid].get("wtv-open-access") == "true") var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/BF0APP/bf0app_production_braindead.tok"; + else var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/BF0APP/bf0app_production_braindead.tok"; + break; + + default: + data = ''; + break; + } + } + + if (!request_headers['wtv-client-rom-type'] && bootrom == "105") { + // assume old classic in flash mode, override user setting and send tellyscript + // because it is required to proceed in flash mode + prereg_contype = "text/tellyscript"; + var file_path = __dirname + "/ServiceDeps/premade_tellyscripts/bf0app/bf0app_production_braindead.tok"; + bf0app_update = true; + } + + if (request_headers["wtv-ticket"]) { + gourl = "wtv-head-waiter:/login-stage-two?relogin=true"; + send_initial_key = false; + } + + headers = "200 OK\n" + headers += "Connection: Keep-Alive\n"; + if (send_initial_key) headers += "wtv-initial-key: " + ssid_sessions[socket.ssid].data_store.wtvsec_login.challenge_key.toString(CryptoJS.enc.Base64) + "\n"; + headers += "Content-Type: " + prereg_contype + "\n"; + headers += "wtv-service: reset\n"; + headers += getServiceString('wtv-1800') + "\n"; + headers += getServiceString('wtv-star') + "\n"; + if (!bf0app_update) headers += getServiceString('wtv-head-waiter') + "\n"; + headers += getServiceString('wtv-flashrom') + "\n"; + if (!bf0app_update) headers += "wtv-boot-url: wtv-1800:/preregister?relogin=true\n" + if (!bf0app_update) headers += "wtv-open-isp-disabled: false\n"; + if (!bf0app_update) headers += "wtv-visit: "+gourl+"\n"; + if (!bf0app_update) headers += "wtv-client-time-zone: GMT -0000\n"; + if (!bf0app_update) headers += "wtv-client-time-dst-rule: GMT\n" + if (!bf0app_update) headers += "wtv-client-date: " + strftime("%a, %d %b %Y %H:%M:%S", new Date(new Date().toUTCString())) + " GMT"; + + if (file_path) { + request_is_async = true; + fs.readFile(file_path, null, function (err, file_read_data) { + if (err) { + var errmsg = doErrorCode(400); + headers = errmsg[0]; + file_read_data = errmsg[1] + "\n" + err.toString(); + } + sendToClient(socket, headers, file_read_data); + }); + } +} else { + var errpage = doErrorCode(400); + headers = errpage[0]; + data = errpage[1]; +} \ No newline at end of file diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js index fcc973e9..004221d5 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/get-by-path.js @@ -22,8 +22,9 @@ function doLocalFlashROM(flashrom_file_path) { } } +var romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); -if (request_headers.query.raw) { +if (request_headers.query.raw || romtype == "bf0app") { if ((/\.brom$/).test(request_path)) headers += "Content-Type: binary/x-wtv-bootrom"; // maybe? else headers += "Content-Type: binary/x-wtv-flashblock"; var flashrom_file_path = null; diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js index dcc51996..8ba45429 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-flashrom/initiate-lc2-download.js @@ -1,7 +1,12 @@ if (request_headers.query.path) { +var url = "wtv-flashrom:/get-lc2-page?path=" + request_headers.query.path; +var romtype = ssid_sessions[socket.ssid].get("wtv-client-rom-type"); +if (romtype == "bf0app") { + url = "client:updateflash?ipaddr="+minisrv_config.services[service_name].host+"&port="+minisrv_config.services[service_name].port+"&path=" + request_headers.query.path; +} headers = "300 OK\n"; - headers += "wtv-visit: wtv-flashrom:/get-lc2-page?path=" + request_headers.query.path + "\n"; - headers += "Location: wtv-flashrom:/get-lc2-page?path=" + request_headers.query.path + "\n"; + headers += "wtv-visit: " + url + "\n"; + headers += "Location: " + url + "\n"; headers += "Content-type: text/html"; data = ''; } else { diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-star/ROMCache/MSNLogo.gif b/zefie_wtvp_minisrv/ServiceVault/wtv-star/ROMCache/MSNLogo.gif deleted file mode 100644 index 59b3829d26941a8190ccc2230e23f42dc86f712b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1801 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

HwyA1Ip$TJcPsg23jNTCB9 z_CqFsgrBqx?s9wZ`f8LFO1R1DQ%j(*B}7Svh9feN(1~7H75e@N4}bHy7kdu^{m)JB8Am`A>m{Neir{agzz8Gf z9KH1!U{_vPk=N+Xy+BaD8w^c*T%&KXsHGcH?lqo{A9(Yeg6129m1&D8D*VcikVv?? z#bLS8F5j0TKlweHr8=VetHNW|tLklv>NDp>nParrV=<5`Tg%a?4_6TH2Qn*0J|m51&We>N@lbFo8hc@NoNR7FAwNaRq}9$ zMQM(m4t+G$Ht;?y)}*a}@^Q>d+ur7TN?%{dKhY%^500A`Sen`<#B}b)I4PPU{A0WM zlwV0SEA5?qG@%q}a_vx}_i>rQ#(?rKx@%VNC!D@?)BL>pR+Ym!|2&)y!yTkTs|h2D z5Gpw=JZobqj*}LZt$OgQ-ZO*XJL7w{PqX3;AWRr-%WFwolcA8|wl~Teyueti^e421 k%>MY-09ak_wS@Kocx@}7VZ^HOjGs67ZEM)ClQ2NzKX%rZRR910 diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js index 9afbc6b1..00bf7b82 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-tricks/info.js @@ -2,8 +2,8 @@ var client_caps = null; if (socket.ssid != null) { - if (ssid_sessions[socket.ssid].data_store.capabilities) { - client_caps = ssid_sessions[socket.ssid].data_store.capabilities; + if (ssid_sessions[socket.ssid].capabilities) { + client_caps = ssid_sessions[socket.ssid].capabilities; } } if (client_caps) { diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 734a1e4f..e3691b90 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -196,6 +196,8 @@ function filterSSID(obj) { if (typeof (obj) == "string") { if (obj.substr(0, 8) == "MSTVSIMU") { return obj.substr(0, 10) + ('*').repeat(10) + obj.substr(20); + } else if (obj.substr(0, 5) == "1SEGA") { + return obj.substr(0, 6) + ('*').repeat(6) + obj.substr(13); } else { return obj.substr(0, 6) + ('*').repeat(9); } @@ -204,6 +206,8 @@ function filterSSID(obj) { var ssid = obj["wtv-client-serial-number"]; if (ssid.substr(0, 8) == "MSTVSIMU") { obj["wtv-client-serial-number"] = ssid.substr(0, 10) + ('*').repeat(10) + ssid.substr(20); + } else if (ssid.substr(0, 5) == "1SEGA") { + obj["wtv-client-serial-number"] = ssid.substr(0, 6) + ('*').repeat(6) + ssid.substr(13); } else { obj["wtv-client-serial-number"] = ssid.substr(0, 6) + ('*').repeat(9); } @@ -490,9 +494,9 @@ async function sendToClient(socket, headers_obj, data) { } else { if (k.indexOf('_') >= 0) { var j = k.split('_')[0]; - headers += j + ": " + headers_obj[k] + "\n"; + headers += j + ": " + headers_obj[k] + "\r\n"; } else { - headers += k + ": " + headers_obj[k] + "\n"; + headers += k + ": " + headers_obj[k] + "\r\n"; } } }); @@ -501,17 +505,17 @@ async function sendToClient(socket, headers_obj, data) { // send to client var toClient = null; if (typeof data == 'string') { - toClient = headers + "\n" + data; + toClient = headers + "\r\n" + data; socket.write(toClient); } else if (typeof data == 'object') { if (zquiet) var verbosity_mod = (headers_obj["wtv-encrypted"] == 'true') ? " encrypted response" : ""; if (socket_sessions[socket.id].secure_headers == true) { // encrypt headers if (zquiet)verbosity_mod += " with encrypted headers"; - var enc_headers = socket_sessions[socket.id].wtvsec.Encrypt(1, headers + "\n"); + var enc_headers = socket_sessions[socket.id].wtvsec.Encrypt(1, headers + "\r\n"); socket.write(new Uint8Array(concatArrayBuffer(enc_headers, data))); } else { - socket.write(new Uint8Array(concatArrayBuffer(Buffer.from(headers + "\n"), data))); + socket.write(new Uint8Array(concatArrayBuffer(Buffer.from(headers + "\r\n"), data))); } if (zquiet) console.log(" * Sent" + verbosity_mod + " " + headers_obj.http_response + " to client (Content-Type:", headers_obj['Content-Type'], "~", headers_obj['Content-Length'], "bytes)"); } @@ -1217,11 +1221,11 @@ Object.keys(minisrv_config.services).forEach(function (k) { minisrv_config.services[k].toString = function () { var outstr = "wtv-service: name=" + this.name + " host=" + this.host + " port=" + this.port; if (this.flags) outstr += " flags=" + this.flags; - if (this.connections) outstr += " flags=" + this.connections; + if (this.connections) outstr += " connections=" + this.connections; if (k == "wtv-star") { outstr += "\nwtv-service: name=wtv-* host=" + this.host + " port=" + this.port; if (this.flags) outstr += " flags=" + this.flags; - if (this.connections) outstr += " flags=" + this.connections; + if (this.connections) outstr += " connections=" + this.connections; } return outstr; } diff --git a/zefie_wtvp_minisrv/config.json b/zefie_wtvp_minisrv/config.json index 898e651a..4c69fe7a 100644 --- a/zefie_wtvp_minisrv/config.json +++ b/zefie_wtvp_minisrv/config.json @@ -5,11 +5,11 @@ "UserServiceVault", "ServiceVault" ], - "service_name": "MSNTV", - "service_logo": "MSNLogo.gif", - "service_splash_logo": "splash_logo_msn.gif", + "service_name": "WebTV", + "service_logo": "WebTVLogoJewel.gif", + "service_splash_logo": "file://ROM/images/SplashLogo1.gif", "hide_ssid_in_logs": true, - "post_percentages": [ 0, 25, 50, 100], + "post_percentages": [ 0, 25, 50, 100 ], "verbosity": 2, "error_log_file": "errors.log" }, @@ -17,6 +17,7 @@ "wtv-1800": { "port": 1615, "connections": 1, + "flags": "0x00000004", "send_tellyscripts": false }, "wtv-star": { @@ -25,12 +26,10 @@ }, "wtv-head-waiter": { "port": 1601, - "flags": "0x00000001", "connections": 1 }, "wtv-update": { - "port": 1619, - "flags": "0x04", + "port": 1635, "connections": 3 }, "wtv-log": { @@ -39,8 +38,7 @@ "write_logs_to_disk": false }, "wtv-home": { - "port": 1612, - "flags": "0x00000010" + "port": 1612 }, "wtv-tricks": { "port": 1602, @@ -53,7 +51,6 @@ }, "wtv-music": { "port": 1656, - "flags": "0x04", "connections": 3 }, "wtv-setup": { @@ -63,8 +60,7 @@ }, "wtv-chat": { "port": 1630, - "connections": 3, - "flags": "0x00000010" + "connections": 3 }, "http": { "port": 1650, diff --git a/zefie_wtvp_minisrv/package.json b/zefie_wtvp_minisrv/package.json index 1f2fd2a6..2feae443 100644 --- a/zefie_wtvp_minisrv/package.json +++ b/zefie_wtvp_minisrv/package.json @@ -1,6 +1,6 @@ { "name": "zefie_wtvp_minisrv", - "version": "0.9.7", + "version": "0.9.8", "description": "WebTV Service (WTVP) Emulation Server", "main": "app.js", "homepage": "https://github.com/zefie/zefie_wtvp_minisrv", diff --git a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj index 96f24d9f..b40cd310 100644 --- a/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj +++ b/zefie_wtvp_minisrv/zefie_wtvp_minisrv.njsproj @@ -200,7 +200,6 @@ -