From aab56257c5abb5b6845e3dc7ce340684fb433d6c Mon Sep 17 00:00:00 2001 From: zefie Date: Mon, 5 Dec 2022 21:34:06 -0500 Subject: [PATCH] fix some pc_services bugs --- zefie_wtvp_minisrv/app.js | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index 64cc2048..c7705f2e 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -85,7 +85,7 @@ function verifyServicePort(service_name, socket) { if (server) { var socketPort = getServerDestinationPort(server); if (minisrv_config.services[service_name]) { - if (minisrv_config.services[service_name].port == socketPort) { + if (minisrv_config.services[service_name].port === socketPort) { if (minisrv_config.services[service_name].servicevault_dir) return minisrv_config.services[service_name].servicevault_dir; else @@ -97,20 +97,22 @@ function verifyServicePort(service_name, socket) { } function getServiceByVaultDir(vault_dir) { - var res = false; + var res = vault_dir; Object.keys(minisrv_config.services).forEach((k) => { - if (minisrv_config.services[k].servicevault_dir) { - if (minisrv_config.services[k].servicevault_dir == vault_dir) { + if (res != vault_dir) return; + if (minisrv_config.services[k].servicevault_dir) { + if (minisrv_config.services[k].servicevault_dir === vault_dir) { res = k; return false; } } else { - if (k == vault_dir) { + if (k === vault_dir) { res = k; return false; } } }); + console.log(res); return res; } @@ -356,8 +358,14 @@ async function processPath(socket, service_vault_file_path, request_headers = ne } var privileged = false; - if (minisrv_config.services[service_name]) privileged = (minisrv_config.services[service_name].privileged) ? true : false; - else if (pc_services) privileged = (minisrv_config.services[getServiceByVaultDir(service_name)].privileged) ? true : false; + if (minisrv_config.services[service_name]) { + privileged = (minisrv_config.services[service_name].privileged) ? true : false; + } else if (pc_services) { + var real_service_name = getServiceByVaultDir(service_name); + if (real_service_name) { + privileged = (minisrv_config.services[real_service_name].privileged) ? true : false; + } + } if (privileged) { updateFromVM.push(["ssid_sessions", "ssid_sessions"]); // global ssid_sessions object for privileged service scripts, such as wtv-setup, wtv-head-waiter, etc @@ -591,7 +599,7 @@ async function processPath(socket, service_vault_file_path, request_headers = ne headers = errpage[0]; data = errpage[1]; if (pc_services) { - if (minisrv_config.services[getServiceByVaultDir(service_name)].show_verbose_errors) + if (minisrv_config.services[real_service_name].show_verbose_errors) data += "

The interpreter said:
" + e.stack + "
"; } console.error(" * Scripting error:", e); @@ -778,8 +786,9 @@ minisrv-no-mail-count: true`; var ssl = (socket.ssl) ? true : false; if (original_service_name == service_name) console.log(" * " + ((ssl) ? "SSL " : "") + "PC request on service " + service_name + " for " + request_headers.request_url, 'on', socket.id); else console.log(" * " + ((ssl) ? "SSL " : "") + "PC request on service " + original_service_name + " (Service Vault " + service_name + ") for " + request_headers.request_url, 'on', socket.id); + } else { + var service_name = verifyServicePort(shortURL.split(':/')[0], socket); } - var service_name = verifyServicePort(shortURL.split(':/')[0], socket); var allow_double_slash = false; if (minisrv_config.services[service_name]) { if (minisrv_config.services[service_name].allow_double_slash) allow_double_slash = true;