fix some pc_services bugs

This commit is contained in:
zefie
2022-12-05 21:34:06 -05:00
parent 871b4919fa
commit aab56257c5

View File

@@ -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 (res != vault_dir) return;
if (minisrv_config.services[k].servicevault_dir) {
if (minisrv_config.services[k].servicevault_dir == vault_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 += "<br><br>The interpreter said:<br><pre>" + e.stack + "</pre>";
}
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;