diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 0692364e8cb8eebe43ccda4dae43ebc584a6fb8b..5cf1498a7116e6d56b6caa07f6cd07dee1ac1ac3 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -1071,6 +1071,8 @@ static BYTE* telnet_interpret(sbbs_t* sbbs, BYTE* inbuf, int inlen, ,sbbs->cfg.node_num ,sbbs->telnet_mode&TELNET_MODE_GATE ? "passed-through" : "received" ,speed); + sbbs->cur_rate=atoi(speed); + sbbs->cur_cps=sbbs->cur_rate/10; } else if(option==TELNET_NEGOTIATE_WINDOW_SIZE) { long cols = (sbbs->telnet_cmd[3]<<8) | sbbs->telnet_cmd[4]; @@ -4883,13 +4885,16 @@ NO_SSH: identity=NULL; if(startup->options&BBS_OPT_GET_IDENT) { sbbs->bprintf("Resolving identity..."); - identify(&client_addr, startup->telnet_port, str, sizeof(str)-1,0); - identity=strrchr(str,':'); - if(identity!=NULL) { - identity++; /* skip colon */ - while(*identity && *identity<=' ') /* point to user name */ - identity++; - lprintf(LOG_INFO,"%04d Identity: %s",client_socket, identity); + /* ToDo: Make ident timeout configurable */ + if(identify(&client_addr, startup->telnet_port, str, sizeof(str)-1, /* timeout: */1)) { + lprintf(LOG_DEBUG,"%04d Ident Response: %s",client_socket, str); + identity=strrchr(str,':'); + if(identity!=NULL) { + identity++; /* skip colon */ + SKIP_WHITESPACE(identity); + if(*identity) + lprintf(LOG_INFO,"%04d Identity: %s",client_socket, identity); + } } sbbs->putcom(crlf); }