From 1752bfed353d618dfa27ce89eb964f786d04f5b8 Mon Sep 17 00:00:00 2001 From: zefie Date: Sat, 1 Oct 2022 22:37:10 -0400 Subject: [PATCH] fix parsing of discuss boolean in sendmail --- .../ServiceVault/wtv-mail/sendmail.js | 13 +++++++------ zefie_wtvp_minisrv/app.js | 15 ++++++++++++--- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js index 66cd427b..c5d9f2ee 100644 --- a/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js +++ b/zefie_wtvp_minisrv/ServiceVault/wtv-mail/sendmail.js @@ -16,7 +16,7 @@ if (!intro_seen && !request_headers.query.intro_seen) { 'noback': true, }).getURL(); - headers = "200 OK\nwtv-visit: " + clientErrorMsg; + return "200 OK\nwtv-visit: " + clientErrorMsg; } if (request_headers.query.clear == "true") { @@ -29,7 +29,7 @@ Location: wtv-mail:/sendmail`; } var newsgroup = null; - if (request_headers.query.discuss) { + if (parseBool(request_headers.query.discuss)) { newsgroup = request_headers.query.group || request_headers.query.message_to || null; } @@ -117,7 +117,7 @@ Content-Type: audio/wav`; if (newsgroup !== null) { var request_is_async = true; if (msg_body === null) { - doClientError("Please type a message to send to the group."); + headers = doClientError("Please type a message to send to the group."); sendToClient(socket, headers, ''); } else { const Client = require('newsie').default @@ -150,14 +150,14 @@ Content-Type: audio/wav`; } return response.send(articleData); } else { - clientErrorMsg("Could not send post. Server returned error " + response.code); + headers = doClientError("Could not send post. Server returned error " + response.code); sendToClient(socket, headers, ''); return client.quit(); } }) .then(response => { if (response.code !== 240) { - clientErrorMsg("Could not send post. Server returned error " + response.code); + headers = doClientError("Could not send post. Server returned error " + response.code); sendToClient(socket, headers, ''); } else { headers = `300 OK @@ -169,7 +169,8 @@ Location: wtv-news:/news?group=${newsgroup}`; } }).catch(e => { console.log('usenet upstream uncaught error', e); - clientErrorMsg("Could not send post. Server returned unknown error"); + headers = doClientError("Could not send post. Server returned unknown error"); + sendToClient(socket, headers, ''); }); } diff --git a/zefie_wtvp_minisrv/app.js b/zefie_wtvp_minisrv/app.js index e553dcfe..379f5daa 100644 --- a/zefie_wtvp_minisrv/app.js +++ b/zefie_wtvp_minisrv/app.js @@ -39,6 +39,14 @@ var socket_sessions = new Array(); var ports = []; +// for scripts +function parseBool(val) { + if (typeof val === 'string') + val = val.toLowerCase(); + + return val === true || val === "true"; +} + // add .reverse() feature to all JavaScript Strings in this application // works for service vault scripts too. if (!String.prototype.reverse) { @@ -113,7 +121,7 @@ async function processPath(socket, service_vault_file_path, request_headers = ne // Furthermore, only modifications to variables in `updateFromVM` will be saved. // Example: an attempt to change "minisrv_config" from a ServiceVault script would be discarded - // node core functions/vars + // node core variables and functions var contextObj = { console: console, // needed for per-script debugging require: require, // this is dangerous but needed for some scripts at this time @@ -135,7 +143,7 @@ async function processPath(socket, service_vault_file_path, request_headers = ne fs: fs } - // Our variables + // Our variables and functions contextObj = { ...contextObj, minisrv_config: minisrv_config, @@ -151,7 +159,8 @@ async function processPath(socket, service_vault_file_path, request_headers = ne headers: headers, data: data, request_is_async: request_is_async, - minisrv_version_string: z_title + minisrv_version_string: z_title, + parseBool: parseBool } // Our prototype overrides