Skip to content
Snippets Groups Projects
Commit e5eca8bc authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Add support for -v (verbose) option and modopts.ini

Don't display remote host name/addr unless -v option is specified or
verbosity=1 is set in modopts.ini.

Allow the displayed messages to be customized or disabled as the sysop wishes
via modopts.ini keys:
- help_msg
- connecting_msg
- failed_connect_msg
(e.g. set to a blank string to disable)

The following settings are also now configurable via modopts.ini:
- quiet (correlates with -q option)
- pause (correlates with -P option)
- clear (correlates with -C option)
- timeout (correlates with -T option)
- verbosity (correlates with -v option)

... a sysop can control the default behavior of all invocations of telgate.js
or rlogin.js via a single file now (modopts.ini).

The rlogin.js module will first look ing for the [rlogin] section in
modopts.ini and if it doesn't exist, then [telgate] section. telgate.js just
looks for the [telgate] section.

For the #synchronet irc crew: Nelgin and Keyop
parent 6faadeeb
No related branches found
No related tags found
1 merge request!455Update branch with changes from master
......@@ -9,6 +9,7 @@
// -m <telnet-gateway-mode> (Number or TG_* vars OR'd together, default: 0)
// -p send current user alias and password as server and client-name values
// -q don't display banner or pause prompt (quiet)
// -v increase verbosity (display remote host name/address/port in messages)
// -P don't pause for user key-press
// -C don't clear screen after successful session
......@@ -21,15 +22,21 @@
require("sbbsdefs.js", 'TG_RLOGINSWAP');
var quiet = false;
var pause = true;
var clear = true;
var mode;
var addr;
var client_name;
var server_name;
var term_type;
var timeout = 10;
var options;
if((options = load({}, "modopts.js","rlogin")) == null) {
if((options = load({}, "modopts.js","telgate")) == null)
options = {};
}
var quiet = options.quiet === undefined ? false : options.quiet;
var pause = options.pause === undefined ? true : options.pause;
var clear = options.clear === undefined ? true : options.clear;
var timeout = options.timeout === undefined ? 10 : options.timeout;
var verbosity = options.verbosity === undefined ? 0 : options.verbosity;
for(var i = 0; i < argv.length; i++) {
var arg = argv[i];
......@@ -60,6 +67,9 @@ for(var i = 0; i < argv.length; i++) {
case 'C':
clear = false;
break;
case 'v':
++verbosity;
break;
case 'p': // send alias and password as expected by Synchronet
client_name = user.security.password;
server_name = user.alias;
......@@ -91,11 +101,12 @@ if(!addr) {
alert(js.exec_file + ": No destination address specified");
exit(1);
}
var remote_host = (verbosity > 0 ? addr : "remote host");
if(!quiet) {
write("\r\n\x01h\x01hPress \x01yCtrl-]\x01w for a control menu anytime.\r\n\r\n");
write(options.help_msg || "\r\n\x01h\x01hPress \x01yCtrl-]\x01w for a control menu anytime.\r\n\r\n");
if(pause)
console.pause();
writeln("\x01h\x01yConnecting to: \x01w" + addr + "\x01n");
write(format(options.connecting_msg || "\x01h\x01yConnecting to \x01w%s \x01n...\r\n", remote_host));
}
mode = eval(mode);
var result = bbs.rlogin_gate(
......@@ -107,6 +118,6 @@ var result = bbs.rlogin_gate(
,timeout
);
if(result === false)
alert(js.exec_file + ": Failed to connect to: " + addr);
alert(options.failed_connect_msg || (js.exec_file + ": Failed to connect to " + remote_host));
else if(clear)
console.clear();
......@@ -7,6 +7,7 @@
// -T <connect-timeout-seconds> (default: 10 seconds)
// -m <telnet-gateway-mode> (Number or TG_* vars OR'd together, default: 0)
// -q don't display banner or pause prompt (quiet)
// -v increase verbosity (display remote host name/address/port in messages)
// -P don't pause for user key-press
// -C don't clear screen after successful session
// -s <string-to-send after connect> (multiple may be specified)
......@@ -21,13 +22,17 @@ load("sbbsdefs.js");
"use strict";
var quiet = false;
var pause = true;
var clear = true;
var mode = 0;
var addr;
var timeout = 10;
var send = [];
var options;
if((options = load({}, "modopts.js","telgate")) == null)
options = {};
var quiet = options.quiet === undefined ? false : options.quiet;
var pause = options.pause === undefined ? true : options.pause;
var clear = options.clear === undefined ? true : options.clear;
var timeout = options.timeout === undefined ? 10 : options.timeout;
var verbosity = options.verbosity === undefined ? 0 : options.verbosity;
for(var i = 0; i < argv.length; i++) {
var arg = argv[i];
......@@ -52,6 +57,9 @@ for(var i = 0; i < argv.length; i++) {
case 'C':
clear = false;
continue;
case 'v':
++verbosity;
break;
}
var value = arg.length > 2 ? arg.substring(2) : argv[++i];
switch(arg[1]) { // value options
......@@ -76,15 +84,16 @@ if(!addr) {
alert(js.exec_file + ": No destination address specified");
exit(1);
}
var remote_host = (verbosity > 0 ? addr : "remote host");
if(!quiet) {
write("\r\n\x01h\x01hPress \x01yCtrl-]\x01w for a control menu anytime.\r\n\r\n");
write(options.help_msg || "\r\n\x01h\x01hPress \x01yCtrl-]\x01w for a control menu anytime.\r\n\r\n");
if(pause)
console.pause();
writeln("\x01h\x01yConnecting to: \x01w" + addr + "\x01n");
write(format(options.connecting_msg || "\x01h\x01yConnecting to \x01w%s \x01n...\r\n", remote_host));
}
var result = bbs.telnet_gate(addr, mode, timeout, send);
if(result === false)
alert(js.exec_file + ": Failed to connect to: " + addr);
alert(options.failed_connect_msg || (js.exec_file + ": Failed to connect to " + remote_host));
else if(clear)
console.clear();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment