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