From 4f83bf900d321541d0fffb95d361424a912e94a8 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Wed, 31 Mar 2004 03:41:11 +0000 Subject: [PATCH] RLogin improvements: * handles long (>25 char) user names better * log message when logging in as an unknown user * log message when no user name specified during login * no longer send telnet negotiation (assuming Telnet session) if RLogin fails --- src/sbbs3/answer.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/sbbs3/answer.cpp b/src/sbbs3/answer.cpp index 224535fc0d..18ea78efc7 100644 --- a/src/sbbs3/answer.cpp +++ b/src/sbbs3/answer.cpp @@ -76,14 +76,14 @@ bool sbbs_t::answer() rlogin_name[0]=0; if(sys_status&SS_RLOGIN) { if(incom(1000)==0) { - for(i=0;i<LEN_ALIAS;i++) { + for(i=0;i<(int)sizeof(str)-1;i++) { in=incom(1000); if(in==0 || in==NOINP) break; str[i]=in; } str[i]=0; - for(i=0;i<LEN_ALIAS;i++) { + for(i=0;i<(int)sizeof(str2)-1;i++) { in=incom(1000); if(in==0 || in==NOINP) break; @@ -98,18 +98,26 @@ bool sbbs_t::answer() } terminal[i]=0; truncstr(terminal,"/"); - lprintf(LOG_DEBUG,"Node %d RLogin: '%s' / '%s / %s'",cfg.node_num,str,str2,terminal); + lprintf(LOG_DEBUG,"Node %d RLogin: '%.*s' / '%.*s' / '%s'" + ,cfg.node_num + ,LEN_ALIAS*2,str + ,LEN_ALIAS*2,str2 + ,terminal); SAFECOPY(rlogin_name ,startup->options&BBS_OPT_USE_2ND_RLOGIN ? str2 : str); useron.number=userdatdupe(0, U_ALIAS, LEN_ALIAS, rlogin_name, 0); if(useron.number) getuserdat(&cfg,&useron); + else + lprintf(LOG_DEBUG,"Node %d RLogin: Unknown user: %s",cfg.node_num,rlogin_name); + } + if(rlogin_name[0]==0) { + lprintf(LOG_DEBUG,"!Node %d RLogin: No user name received",cfg.node_num); + sys_status&=~SS_RLOGIN; } } - if(rlogin_name[0]==0) - sys_status&=~SS_RLOGIN; - if(!(sys_status&SS_RLOGIN)) { + if(!(telnet_mode&TELNET_MODE_OFF)) { /* Disable Telnet Terminal Echo */ send_telnet_cmd(TELNET_WILL,TELNET_ECHO); /* Will suppress Go Ahead */ -- GitLab