From a2f3ce67a19dc8a4a1f4b48c9def34b892b8fd5e Mon Sep 17 00:00:00 2001 From: Eric MacDonald Date: Sat, 7 Aug 2021 19:43:22 -0400 Subject: [PATCH 1/6] Using session capabilities to enable compression now --- zefie_wtvp_minisrv/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index b2c4071f..482b8a1f 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -495,7 +495,7 @@ function headerStringToObj(headers, response = false) { return headers_obj; } -async function sendToClient(socket, headers_obj, data, compress_data = false) { +async function sendToClient(socket, headers_obj, data) { var headers = ""; if (typeof (data) === 'undefined') data = ''; if (typeof (headers_obj) === 'string') { From 8775eba32e272d73c91adf509b13117b3bfd7778 Mon Sep 17 00:00:00 2001 From: Eric MacDonald Date: Sat, 7 Aug 2021 19:44:22 -0400 Subject: [PATCH 2/6] Remove debug log --- zefie_wtvp_minisrv/app.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 482b8a1f..80644604 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -543,8 +543,6 @@ async function sendToClient(socket, headers_obj, data) { var wtvcomp = new WTVLzpf(); data = wtvcomp.Compress(data); - console.log("data", data) - wtvcomp = null; // Makes the garbage gods happy so it cleans up our mess } From 1bc7cadac5d51c34c40c672e5e8803f9ccf4a3be Mon Sep 17 00:00:00 2001 From: Eric MacDonald Date: Sat, 7 Aug 2021 19:44:38 -0400 Subject: [PATCH 3/6] Remove other junk not needed --- zefie_wtvp_minisrv/app.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 80644604..41c27b60 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -546,9 +546,6 @@ async function sendToClient(socket, headers_obj, data) { wtvcomp = null; // Makes the garbage gods happy so it cleans up our mess } - if (headers_obj['minisrv-already-compressed']) delete headers_obj['minisrv-already-compressed']; - - // encrypt if needed if (socket_sessions[socket.id].secure == true) { headers_obj["wtv-encrypted"] = 'true'; From 72dcce0f8f84121121a5b619c61eed59750824fc Mon Sep 17 00:00:00 2001 From: Eric MacDonald Date: Sat, 7 Aug 2021 19:46:15 -0400 Subject: [PATCH 4/6] Use uncompressed length for Content-length like WNI (fixes HTML pages) --- zefie_wtvp_minisrv/app.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 41c27b60..e682e1b3 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -497,6 +497,7 @@ function headerStringToObj(headers, response = false) { async function sendToClient(socket, headers_obj, data) { var headers = ""; + var content_length = 0; if (typeof (data) === 'undefined') data = ''; if (typeof (headers_obj) === 'string') { // string to header object @@ -538,6 +539,8 @@ async function sendToClient(socket, headers_obj, data) { // compress if needed if (compress_data && clen > 0) { + content_length = clen; + headers_obj["wtv-lzpf"] = 0; var wtvcomp = new WTVLzpf(); @@ -562,14 +565,16 @@ async function sendToClient(socket, headers_obj, data) { if (headers_obj["Content-Length"]) delete headers_obj["Content-Length"]; if (headers_obj["Content-length"]) delete headers_obj["Content-length"]; - // On the WNI server this is the length before compression but we're using the length after compression. - // It matches the HTTP spec anyway so leaving. - if (typeof data.length !== 'undefined') { - headers_obj["Content-length"] = data.length; - } else if (typeof data.byteLength !== 'undefined') { - headers_obj["Content-length"] = data.byteLength; + if (content_length == 0) { + if (typeof data.length !== 'undefined') { + content_length = data.length; + } else if (typeof data.byteLength !== 'undefined') { + content_length = data.byteLength; + } } + headers_obj["Content-length"] = content_length; + if (ssid_sessions[socket.ssid]) { if (ssid_sessions[socket.ssid].data_store.wtvsec_login) { if (ssid_sessions[socket.ssid].data_store.wtvsec_login.ticket_b64) { From 47f54dda46e8f909ec14e32301f62b92dfe8c897 Mon Sep 17 00:00:00 2001 From: Eric MacDonald Date: Sat, 7 Aug 2021 19:49:45 -0400 Subject: [PATCH 5/6] Whoopies. Needed to define things --- zefie_wtvp_minisrv/app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index e682e1b3..6a52e8fa 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -496,6 +496,7 @@ function headerStringToObj(headers, response = false) { } async function sendToClient(socket, headers_obj, data) { + var compress_data = false; var headers = ""; var content_length = 0; if (typeof (data) === 'undefined') data = ''; From 760ee5ea751d4d36186e27581a895e729bf42b6c Mon Sep 17 00:00:00 2001 From: zefie Date: Sat, 7 Aug 2021 21:44:08 -0400 Subject: [PATCH 6/6] set compression default to on for test branch --- zefie_wtvp_minisrv/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zefie_wtvp_minisrv/config.json b/zefie_wtvp_minisrv/config.json index b32aae9c..1df5fb84 100644 --- a/zefie_wtvp_minisrv/config.json +++ b/zefie_wtvp_minisrv/config.json @@ -14,7 +14,7 @@ "post_percentages": [ 0, 25, 50, 100 ], "verbosity": 2, "error_log_file": "errors.log", - "enable_lzpf_compression": false + "enable_lzpf_compression": true }, "services": { "wtv-head-waiter": {