diff --git a/ctrl/sbbs.ini b/ctrl/sbbs.ini index b3e1c7fc1e6a4082c5d4e2f777d2845cecb64535..07d681431843663485fc16b61065419479300ffe 100644 --- a/ctrl/sbbs.ini +++ b/ctrl/sbbs.ini @@ -21,7 +21,7 @@ ExternalYield=10 AnswerSound= HangupSound= ; Supported options (separated with |): -; KEEP_ALIVE +; SEND_TELNET_GA ; XTRN_MINIMIZED ; AUTO_LOGON ; DEBUG_TELNET diff --git a/src/sbbs3/ctrl/TelnetCfgDlgUnit.cpp b/src/sbbs3/ctrl/TelnetCfgDlgUnit.cpp index 9726d266edfd42fbf53b43e9377f7e127b6c4a90..560ca5f106dd817e6f1b4568834169a8f318e4ba 100644 --- a/src/sbbs3/ctrl/TelnetCfgDlgUnit.cpp +++ b/src/sbbs3/ctrl/TelnetCfgDlgUnit.cpp @@ -6,7 +6,7 @@ * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * * * - * Copyright 2000 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2003 Rob Swindell - http://www.synchro.net/copyright.html * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * @@ -88,7 +88,7 @@ void __fastcall TTelnetCfgDlg::FormShow(TObject *Sender) AnswerSoundEdit->Text=AnsiString(MainForm->bbs_startup.answer_sound); HangupSoundEdit->Text=AnsiString(MainForm->bbs_startup.hangup_sound); CmdLogCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_DEBUG_TELNET; - KeepAliveCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_KEEP_ALIVE; + TelnetGaCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_SEND_TELNET_GA; XtrnMinCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_XTRN_MINIMIZED; AutoLogonCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_AUTO_LOGON; HostnameCheckBox->Checked @@ -164,10 +164,10 @@ void __fastcall TTelnetCfgDlg::OKBtnClick(TObject *Sender) ,AnswerSoundEdit->Text.c_str()); SAFECOPY(MainForm->bbs_startup.hangup_sound ,HangupSoundEdit->Text.c_str()); - if(KeepAliveCheckBox->Checked==true) - MainForm->bbs_startup.options|=BBS_OPT_KEEP_ALIVE; + if(TelnetGaCheckBox->Checked==true) + MainForm->bbs_startup.options|=BBS_OPT_SEND_TELNET_GA; else - MainForm->bbs_startup.options&=~BBS_OPT_KEEP_ALIVE; + MainForm->bbs_startup.options&=~BBS_OPT_SEND_TELNET_GA; if(XtrnMinCheckBox->Checked==true) MainForm->bbs_startup.options|=BBS_OPT_XTRN_MINIMIZED; else diff --git a/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm b/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm index 4ab70d20bc7bd5319273f83c0fb4acada752566d..d1acc1c3b0fb577f89c915fff57076a6661e9a80 100644 --- a/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm +++ b/src/sbbs3/ctrl/TelnetCfgDlgUnit.dfm @@ -197,13 +197,15 @@ object TelnetCfgDlg: TTelnetCfgDlg ShowHint = True TabOrder = 0 end - object KeepAliveCheckBox: TCheckBox + object TelnetGaCheckBox: TCheckBox Left = 9 Top = 76 - Width = 144 + Width = 208 Height = 26 - Hint = 'Instruct WinSock to keep your dial-up connection active' - Caption = 'Send Keep-Alives' + Hint = + 'Send periodic Telnet GA commands to help detect dropped connecti' + + 'ons.' + Caption = 'Send Telnet Go-Aheads' ParentShowHint = False ShowHint = True TabOrder = 2 diff --git a/src/sbbs3/ctrl/TelnetCfgDlgUnit.h b/src/sbbs3/ctrl/TelnetCfgDlgUnit.h index c15c246ede85adcc99c913f21eacc3eb0b4f534b..571f311235653f2ddbb6eb2e566c30151ff0ec8d 100644 --- a/src/sbbs3/ctrl/TelnetCfgDlgUnit.h +++ b/src/sbbs3/ctrl/TelnetCfgDlgUnit.h @@ -79,7 +79,7 @@ __published: TEdit *TelnetInterfaceEdit; TLabel *TelnetPortLabel; TEdit *TelnetPortEdit; - TCheckBox *KeepAliveCheckBox; + TCheckBox *TelnetGaCheckBox; TCheckBox *AutoLogonCheckBox; TTabSheet *RLoginTabSheet; TLabel *RLoginPortLabel; diff --git a/src/sbbs3/getkey.cpp b/src/sbbs3/getkey.cpp index f7c0aabab97f3745ca33987fc86bf546a40e864f..e3fbe719f359f1c8c3ef1c82a29394842dc7f287 100644 --- a/src/sbbs3/getkey.cpp +++ b/src/sbbs3/getkey.cpp @@ -266,7 +266,8 @@ char sbbs_t::getkey(long mode) RESTORELINE; } - if(now!=last_telnet_cmd && now-timeout>=60 && !((now-timeout)%60)) { + if(startup->options&BBS_OPT_SEND_TELNET_GA + && now!=last_telnet_cmd && now-timeout>=60 && !((now-timeout)%60)) { // Let's make sure the socket is up // Sending will trigger a socket d/c detection send_telnet_cmd(TELNET_GA,0); diff --git a/src/sbbs3/sbbs_ini.c b/src/sbbs3/sbbs_ini.c index 4ef41e487f406bd0d5b271f686427399423ef83b..bcfd8ca34266a51d9c189ec84bf5416b219e1de8 100644 --- a/src/sbbs3/sbbs_ini.c +++ b/src/sbbs3/sbbs_ini.c @@ -49,6 +49,7 @@ static ini_bitdesc_t bbs_options[] = { { BBS_OPT_ALLOW_RLOGIN ,"ALLOW_RLOGIN" }, { BBS_OPT_USE_2ND_RLOGIN ,"USE_2ND_RLOGIN" }, { BBS_OPT_NO_QWK_EVENTS ,"NO_QWK_EVENTS" }, + { BBS_OPT_SEND_TELNET_GA ,"SEND_TELNET_GA" }, { BBS_OPT_NO_HOST_LOOKUP ,"NO_HOST_LOOKUP" }, { BBS_OPT_NO_RECYCLE ,"NO_RECYCLE" }, { BBS_OPT_GET_IDENT ,"GET_IDENT" }, diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index 11468debabe647601b1f9068891e0453b7a6f9ef..ec384d3df1ce0f4b3ea39b3cee99472ba45e72ba 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -104,6 +104,7 @@ typedef struct { #define BBS_OPT_ALLOW_RLOGIN (1<<5) /* Allow logins via BSD RLogin */ #define BBS_OPT_USE_2ND_RLOGIN (1<<6) /* Use 2nd username in BSD RLogin */ #define BBS_OPT_NO_QWK_EVENTS (1<<7) /* Don't run QWK-related events */ +#define BBS_OPT_SEND_TELNET_GA (1<<8) /* Send periodic Telnet go-aheads */ #define BBS_OPT_NO_HOST_LOOKUP (1<<11) #define BBS_OPT_NO_RECYCLE (1<<27) /* Disable recycling of server */ #define BBS_OPT_GET_IDENT (1<<28) /* Get Identity (RFC 1413) */ diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp index 3392330817b6a28dd2d6d49a97a5e1d892902233..0bb8c0dad3ac2325b3c1470513fe8b3a31f43569 100644 --- a/src/sbbs3/xtrn.cpp +++ b/src/sbbs3/xtrn.cpp @@ -874,7 +874,8 @@ int sbbs_t::external(char* cmdline, long mode, char* startup_dir) // Let's make sure the socket is up // Sending will trigger a socket d/c detection - send_telnet_cmd(TELNET_GA,0); + if(startup->options&BBS_OPT_SEND_TELNET_GA) + send_telnet_cmd(TELNET_GA,0); // Check if the node has been interrupted getnodedat(cfg.node_num,&thisnode,0);