fix some pc_services bugs
This commit is contained in:
@@ -85,7 +85,7 @@ function verifyServicePort(service_name, socket) {
|
|||||||
if (server) {
|
if (server) {
|
||||||
var socketPort = getServerDestinationPort(server);
|
var socketPort = getServerDestinationPort(server);
|
||||||
if (minisrv_config.services[service_name]) {
|
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)
|
if (minisrv_config.services[service_name].servicevault_dir)
|
||||||
return minisrv_config.services[service_name].servicevault_dir;
|
return minisrv_config.services[service_name].servicevault_dir;
|
||||||
else
|
else
|
||||||
@@ -97,20 +97,22 @@ function verifyServicePort(service_name, socket) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getServiceByVaultDir(vault_dir) {
|
function getServiceByVaultDir(vault_dir) {
|
||||||
var res = false;
|
var res = vault_dir;
|
||||||
Object.keys(minisrv_config.services).forEach((k) => {
|
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) {
|
||||||
if (minisrv_config.services[k].servicevault_dir == vault_dir) {
|
if (minisrv_config.services[k].servicevault_dir === vault_dir) {
|
||||||
res = k;
|
res = k;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (k == vault_dir) {
|
if (k === vault_dir) {
|
||||||
res = k;
|
res = k;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
console.log(res);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,8 +358,14 @@ async function processPath(socket, service_vault_file_path, request_headers = ne
|
|||||||
}
|
}
|
||||||
|
|
||||||
var privileged = false;
|
var privileged = false;
|
||||||
if (minisrv_config.services[service_name]) privileged = (minisrv_config.services[service_name].privileged) ? true : false;
|
if (minisrv_config.services[service_name]) {
|
||||||
else if (pc_services) privileged = (minisrv_config.services[getServiceByVaultDir(service_name)].privileged) ? true : false;
|
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) {
|
if (privileged) {
|
||||||
updateFromVM.push(["ssid_sessions", "ssid_sessions"]); // global ssid_sessions object for privileged service scripts, such as wtv-setup, wtv-head-waiter, etc
|
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];
|
headers = errpage[0];
|
||||||
data = errpage[1];
|
data = errpage[1];
|
||||||
if (pc_services) {
|
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>";
|
data += "<br><br>The interpreter said:<br><pre>" + e.stack + "</pre>";
|
||||||
}
|
}
|
||||||
console.error(" * Scripting error:", e);
|
console.error(" * Scripting error:", e);
|
||||||
@@ -778,8 +786,9 @@ minisrv-no-mail-count: true`;
|
|||||||
var ssl = (socket.ssl) ? true : false;
|
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);
|
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 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;
|
var allow_double_slash = false;
|
||||||
if (minisrv_config.services[service_name]) {
|
if (minisrv_config.services[service_name]) {
|
||||||
if (minisrv_config.services[service_name].allow_double_slash) allow_double_slash = true;
|
if (minisrv_config.services[service_name].allow_double_slash) allow_double_slash = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user