From dbbdd109a053fc1b6ca42c28ec2718b161484b28 Mon Sep 17 00:00:00 2001 From: "Rob Swindell (on Debian Linux)" <rob@synchro.net> Date: Thu, 10 Apr 2025 12:45:00 -0700 Subject: [PATCH] Fix default mode value (should *not* be 10, i.e TG_NODESYNC|TG_CRLF) Bug introduced in commit 49053f3158e5a0b671c the 'mode' value was by default, undefined. the 'timeout' value is by default, 10. When mode value/flags was not provided on the command-line, undefined was passed to bbs.rlogin_gate() as the 5th parameter, but the number 10 is passed as the 6th parameter (for time-out). The problem is, the first Number parameter passed to bbs.rlogin_gate() is interpretted as the mode value and so that becomes 10 (0x0A) which includes TG_NODESYNC thus enabling all node messages/activity being displayed to the rlogin user and interrupting their rlogin session (e.g. game play). Just make the 0 the default value for mode, like we did in telgate.js. --- exec/rlogin.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/exec/rlogin.js b/exec/rlogin.js index 14fd3d05d1..0fb3f7828f 100644 --- a/exec/rlogin.js +++ b/exec/rlogin.js @@ -22,7 +22,7 @@ require("sbbsdefs.js", 'TG_RLOGINSWAP'); -var mode; +var mode = 0; var addr; var client_name = ''; var server_name = ''; @@ -44,7 +44,7 @@ for(var i = 0; i < argv.length; i++) { if(!addr) addr = arg; else if(!mode) - mode = arg; + mode = eval(arg); else if(!client_name) client_name = arg; else if(!server_name) @@ -90,7 +90,7 @@ for(var i = 0; i < argv.length; i++) { timeout = Number(value); break; case 'm': - mode = value; + mode = eval(value); break; default: alert(js.exec_file + ": Unrecognized option: " + arg); @@ -108,7 +108,6 @@ if(!quiet) { console.pause(); write(format(options.connecting_msg || "\x01h\x01yConnecting to \x01w%s \x01n...\r\n", remote_host)); } -mode = eval(mode); var result = bbs.rlogin_gate( addr // address[:port] ,client_name || (mode & TG_RLOGINSWAP ? user.name : user.alias) -- GitLab