diff --git a/src/sbbs3/telgate.cpp b/src/sbbs3/telgate.cpp index faa73f56165edaa25bf42c727f0de53f714a801d..70f843345d3c1d0d82bd2bb82f4f6f9579c0a802 100644 --- a/src/sbbs3/telgate.cpp +++ b/src/sbbs3/telgate.cpp @@ -133,6 +133,9 @@ void sbbs_t::telnet_gate(char* destaddr, ulong mode) l=p-(char*)buf; sendsocket(remote_socket,(char*)buf,l); } + + /* This is required for gating to Unix telnetd */ + send_telnet_cmd(TELNET_DONT,TELNET_TERM_TYPE); // Re-negotiation of terminal type /* Text/NVT mode by default */ send_telnet_cmd(TELNET_DONT,TELNET_BINARY); @@ -143,6 +146,16 @@ void sbbs_t::telnet_gate(char* destaddr, ulong mode) gettimeleft(); rd=RingBufRead(&inbuf,buf,sizeof(buf)); if(rd) { +#if 0 + if(memchr(buf,TELNET_IAC,rd)) { + char dump[2048]; + dump[0]; + p=dump; + for(int i=0;i<rd;i++) + p+=sprintf(p,"%u ",buf[i]); + lprintf(LOG_DEBUG,"Node %d Telnet cmd from client: %s", cfg.node_num, dump); + } +#endif if(!(telnet_mode&TELNET_MODE_BIN_RX)) { if(*buf==0x1d) { // ^] save_console=console; @@ -228,6 +241,16 @@ void sbbs_t::telnet_gate(char* destaddr, ulong mode) lprintf(LOG_INFO,"Node %d Telnet gate disconnected",cfg.node_num); break; } +#if 0 + if(memchr(buf,TELNET_IAC,rd)) { + char dump[2048]; + dump[0]; + p=dump; + for(int i=0;i<rd;i++) + p+=sprintf(p,"%u ",buf[i]); + lprintf(LOG_DEBUG,"Node %d Telnet cmd from remote: %s", cfg.node_num, dump); + } +#endif RingBufWrite(&outbuf,buf,rd); } console&=~CON_RAW_IN;