|
|
1.1 ! root 1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */ ! 2: ! 3: /* $Id: TelnetCfgDlgUnit.cpp,v 1.19 2006/12/29 02:51:56 rswindell Exp $ */ ! 4: ! 5: /**************************************************************************** ! 6: * @format.tab-size 4 (Plain Text/Source Code File Header) * ! 7: * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * ! 8: * * ! 9: * Copyright 2006 Rob Swindell - http://www.synchro.net/copyright.html * ! 10: * * ! 11: * This program is free software; you can redistribute it and/or * ! 12: * modify it under the terms of the GNU General Public License * ! 13: * as published by the Free Software Foundation; either version 2 * ! 14: * of the License, or (at your option) any later version. * ! 15: * See the GNU General Public License for more details: gpl.txt or * ! 16: * http://www.fsf.org/copyleft/gpl.html * ! 17: * * ! 18: * Anonymous FTP access to the most recent released source is available at * ! 19: * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net * ! 20: * * ! 21: * Anonymous CVS access to the development source and modification history * ! 22: * is available at cvs.synchro.net:/cvsroot/sbbs, example: * ! 23: * cvs -d :pserver:[email protected]:/cvsroot/sbbs login * ! 24: * (just hit return, no password is necessary) * ! 25: * cvs -d :pserver:[email protected]:/cvsroot/sbbs checkout src * ! 26: * * ! 27: * For Synchronet coding style and modification guidelines, see * ! 28: * http://www.synchro.net/source.html * ! 29: * * ! 30: * You are encouraged to submit any modifications (preferably in Unix diff * ! 31: * format) via e-mail to [email protected] * ! 32: * * ! 33: * Note: If this box doesn't appear square, then you need to fix your tabs. * ! 34: ****************************************************************************/ ! 35: ! 36: //--------------------------------------------------------------------- ! 37: #include <vcl.h> ! 38: #pragma hdrstop ! 39: ! 40: #include "MainFormUnit.h" ! 41: #include "TextFileEditUnit.h" ! 42: #include "TelnetCfgDlgUnit.h" ! 43: #include <stdio.h> // sprintf() ! 44: #include <mmsystem.h> // sndPlaySound() ! 45: //--------------------------------------------------------------------- ! 46: #pragma resource "*.dfm" ! 47: TTelnetCfgDlg *TelnetCfgDlg; ! 48: //--------------------------------------------------------------------- ! 49: __fastcall TTelnetCfgDlg::TTelnetCfgDlg(TComponent* AOwner) ! 50: : TForm(AOwner) ! 51: { ! 52: } ! 53: //--------------------------------------------------------------------- ! 54: void __fastcall TTelnetCfgDlg::FormShow(TObject *Sender) ! 55: { ! 56: char str[128]; ! 57: ! 58: if(MainForm->bbs_startup.telnet_interface==0) ! 59: TelnetInterfaceEdit->Text="<ANY>"; ! 60: else { ! 61: sprintf(str,"%d.%d.%d.%d" ! 62: ,(MainForm->bbs_startup.telnet_interface>>24)&0xff ! 63: ,(MainForm->bbs_startup.telnet_interface>>16)&0xff ! 64: ,(MainForm->bbs_startup.telnet_interface>>8)&0xff ! 65: ,MainForm->bbs_startup.telnet_interface&0xff ! 66: ); ! 67: TelnetInterfaceEdit->Text=AnsiString(str); ! 68: } ! 69: if(MainForm->bbs_startup.rlogin_interface==0) ! 70: RLoginInterfaceEdit->Text="<ANY>"; ! 71: else { ! 72: sprintf(str,"%d.%d.%d.%d" ! 73: ,(MainForm->bbs_startup.rlogin_interface>>24)&0xff ! 74: ,(MainForm->bbs_startup.rlogin_interface>>16)&0xff ! 75: ,(MainForm->bbs_startup.rlogin_interface>>8)&0xff ! 76: ,MainForm->bbs_startup.rlogin_interface&0xff ! 77: ); ! 78: RLoginInterfaceEdit->Text=AnsiString(str); ! 79: } ! 80: ! 81: if(MainForm->bbs_startup.ssh_interface==0) ! 82: SshInterfaceEdit->Text="<ANY>"; ! 83: else { ! 84: sprintf(str,"%d.%d.%d.%d" ! 85: ,(MainForm->bbs_startup.ssh_interface>>24)&0xff ! 86: ,(MainForm->bbs_startup.ssh_interface>>16)&0xff ! 87: ,(MainForm->bbs_startup.ssh_interface>>8)&0xff ! 88: ,MainForm->bbs_startup.ssh_interface&0xff ! 89: ); ! 90: SshInterfaceEdit->Text=AnsiString(str); ! 91: } ! 92: ! 93: TelnetPortEdit->Text=AnsiString((int)MainForm->bbs_startup.telnet_port); ! 94: RLoginPortEdit->Text=AnsiString((int)MainForm->bbs_startup.rlogin_port); ! 95: SshPortEdit->Text=AnsiString((int)MainForm->bbs_startup.ssh_port); ! 96: ! 97: FirstNodeEdit->Text=AnsiString((int)MainForm->bbs_startup.first_node); ! 98: LastNodeEdit->Text=AnsiString((int)MainForm->bbs_startup.last_node); ! 99: AutoStartCheckBox->Checked=MainForm->SysAutoStart; ! 100: AnswerSoundEdit->Text=AnsiString(MainForm->bbs_startup.answer_sound); ! 101: HangupSoundEdit->Text=AnsiString(MainForm->bbs_startup.hangup_sound); ! 102: CmdLogCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_DEBUG_TELNET; ! 103: TelnetGaCheckBox->Checked ! 104: =!(MainForm->bbs_startup.options&BBS_OPT_NO_TELNET_GA); ! 105: XtrnMinCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_XTRN_MINIMIZED; ! 106: AutoLogonCheckBox->Checked=MainForm->bbs_startup.options&BBS_OPT_AUTO_LOGON; ! 107: HostnameCheckBox->Checked ! 108: =!(MainForm->bbs_startup.options&BBS_OPT_NO_HOST_LOOKUP); ! 109: IdentityCheckBox->Checked ! 110: =MainForm->bbs_startup.options&BBS_OPT_GET_IDENT; ! 111: ! 112: RLoginEnabledCheckBox->Checked ! 113: =MainForm->bbs_startup.options&BBS_OPT_ALLOW_RLOGIN; ! 114: RLogin2ndNameCheckBox->Checked ! 115: =MainForm->bbs_startup.options&BBS_OPT_USE_2ND_RLOGIN; ! 116: SshEnabledCheckBox->Checked ! 117: =MainForm->bbs_startup.options&BBS_OPT_ALLOW_SSH; ! 118: ! 119: QWKEventsCheckBox->Checked ! 120: =!(MainForm->bbs_startup.options&BBS_OPT_NO_QWK_EVENTS); ! 121: EventsCheckBox->Checked ! 122: =!(MainForm->bbs_startup.options&BBS_OPT_NO_EVENTS); ! 123: JavaScriptCheckBox->Checked ! 124: =!(MainForm->bbs_startup.options&BBS_OPT_NO_JAVASCRIPT); ! 125: ! 126: RLoginEnabledCheckBoxClick(Sender); ! 127: SshEnabledCheckBoxClick(Sender); ! 128: PageControl->ActivePage=GeneralTabSheet; ! 129: } ! 130: //--------------------------------------------------------------------------- ! 131: ! 132: void __fastcall TTelnetCfgDlg::OKBtnClick(TObject *Sender) ! 133: { ! 134: char str[128],*p; ! 135: DWORD addr; ! 136: ! 137: SAFECOPY(str,TelnetInterfaceEdit->Text.c_str()); ! 138: p=str; ! 139: while(*p && *p<=' ') p++; ! 140: if(*p && isdigit(*p)) { ! 141: addr=atoi(p)<<24; ! 142: while(*p && *p!='.') p++; ! 143: if(*p=='.') p++; ! 144: addr|=atoi(p)<<16; ! 145: while(*p && *p!='.') p++; ! 146: if(*p=='.') p++; ! 147: addr|=atoi(p)<<8; ! 148: while(*p && *p!='.') p++; ! 149: if(*p=='.') p++; ! 150: addr|=atoi(p); ! 151: MainForm->bbs_startup.telnet_interface=addr; ! 152: } else ! 153: MainForm->bbs_startup.telnet_interface=0; ! 154: ! 155: SAFECOPY(str,RLoginInterfaceEdit->Text.c_str()); ! 156: p=str; ! 157: while(*p && *p<=' ') p++; ! 158: if(*p && isdigit(*p)) { ! 159: addr=atoi(p)<<24; ! 160: while(*p && *p!='.') p++; ! 161: if(*p=='.') p++; ! 162: addr|=atoi(p)<<16; ! 163: while(*p && *p!='.') p++; ! 164: if(*p=='.') p++; ! 165: addr|=atoi(p)<<8; ! 166: while(*p && *p!='.') p++; ! 167: if(*p=='.') p++; ! 168: addr|=atoi(p); ! 169: MainForm->bbs_startup.rlogin_interface=addr; ! 170: } else ! 171: MainForm->bbs_startup.rlogin_interface=0; ! 172: ! 173: SAFECOPY(str,SshInterfaceEdit->Text.c_str()); ! 174: p=str; ! 175: while(*p && *p<=' ') p++; ! 176: if(*p && isdigit(*p)) { ! 177: addr=atoi(p)<<24; ! 178: while(*p && *p!='.') p++; ! 179: if(*p=='.') p++; ! 180: addr|=atoi(p)<<16; ! 181: while(*p && *p!='.') p++; ! 182: if(*p=='.') p++; ! 183: addr|=atoi(p)<<8; ! 184: while(*p && *p!='.') p++; ! 185: if(*p=='.') p++; ! 186: addr|=atoi(p); ! 187: MainForm->bbs_startup.ssh_interface=addr; ! 188: } else ! 189: MainForm->bbs_startup.ssh_interface=0; ! 190: ! 191: MainForm->bbs_startup.telnet_port=TelnetPortEdit->Text.ToIntDef(23); ! 192: MainForm->bbs_startup.rlogin_port=RLoginPortEdit->Text.ToIntDef(513); ! 193: MainForm->bbs_startup.ssh_port=SshPortEdit->Text.ToIntDef(22); ! 194: ! 195: MainForm->bbs_startup.first_node=FirstNodeEdit->Text.ToIntDef(1); ! 196: MainForm->bbs_startup.last_node=LastNodeEdit->Text.ToIntDef(1); ! 197: ! 198: MainForm->SysAutoStart=AutoStartCheckBox->Checked; ! 199: SAFECOPY(MainForm->bbs_startup.answer_sound ! 200: ,AnswerSoundEdit->Text.c_str()); ! 201: SAFECOPY(MainForm->bbs_startup.hangup_sound ! 202: ,HangupSoundEdit->Text.c_str()); ! 203: if(TelnetGaCheckBox->Checked==false) ! 204: MainForm->bbs_startup.options|=BBS_OPT_NO_TELNET_GA; ! 205: else ! 206: MainForm->bbs_startup.options&=~BBS_OPT_NO_TELNET_GA; ! 207: if(XtrnMinCheckBox->Checked==true) ! 208: MainForm->bbs_startup.options|=BBS_OPT_XTRN_MINIMIZED; ! 209: else ! 210: MainForm->bbs_startup.options&=~BBS_OPT_XTRN_MINIMIZED; ! 211: if(QWKEventsCheckBox->Checked==true) ! 212: MainForm->bbs_startup.options&=~BBS_OPT_NO_QWK_EVENTS; ! 213: else ! 214: MainForm->bbs_startup.options|=BBS_OPT_NO_QWK_EVENTS; ! 215: if(EventsCheckBox->Checked==true) ! 216: MainForm->bbs_startup.options&=~BBS_OPT_NO_EVENTS; ! 217: else ! 218: MainForm->bbs_startup.options|=BBS_OPT_NO_EVENTS; ! 219: if(JavaScriptCheckBox->Checked==true) ! 220: MainForm->bbs_startup.options&=~BBS_OPT_NO_JAVASCRIPT; ! 221: else ! 222: MainForm->bbs_startup.options|=BBS_OPT_NO_JAVASCRIPT; ! 223: ! 224: if(AutoLogonCheckBox->Checked==true) ! 225: MainForm->bbs_startup.options|=BBS_OPT_AUTO_LOGON; ! 226: else ! 227: MainForm->bbs_startup.options&=~BBS_OPT_AUTO_LOGON; ! 228: if(CmdLogCheckBox->Checked==true) ! 229: MainForm->bbs_startup.options|=BBS_OPT_DEBUG_TELNET; ! 230: else ! 231: MainForm->bbs_startup.options&=~BBS_OPT_DEBUG_TELNET; ! 232: if(HostnameCheckBox->Checked==false) ! 233: MainForm->bbs_startup.options|=BBS_OPT_NO_HOST_LOOKUP; ! 234: else ! 235: MainForm->bbs_startup.options&=~BBS_OPT_NO_HOST_LOOKUP; ! 236: if(IdentityCheckBox->Checked==true) ! 237: MainForm->bbs_startup.options|=BBS_OPT_GET_IDENT; ! 238: else ! 239: MainForm->bbs_startup.options&=~BBS_OPT_GET_IDENT; ! 240: ! 241: if(RLoginEnabledCheckBox->Checked==true) ! 242: MainForm->bbs_startup.options|=BBS_OPT_ALLOW_RLOGIN; ! 243: else ! 244: MainForm->bbs_startup.options&=~BBS_OPT_ALLOW_RLOGIN; ! 245: if(RLogin2ndNameCheckBox->Checked==true) ! 246: MainForm->bbs_startup.options|=BBS_OPT_USE_2ND_RLOGIN; ! 247: else ! 248: MainForm->bbs_startup.options&=~BBS_OPT_USE_2ND_RLOGIN; ! 249: ! 250: if(SshEnabledCheckBox->Checked==true) ! 251: MainForm->bbs_startup.options|=BBS_OPT_ALLOW_SSH; ! 252: else ! 253: MainForm->bbs_startup.options&=~BBS_OPT_ALLOW_SSH; ! 254: ! 255: MainForm->SaveIniSettings(Sender); ! 256: } ! 257: //--------------------------------------------------------------------------- ! 258: ! 259: void __fastcall TTelnetCfgDlg::AnswerSoundButtonClick(TObject *Sender) ! 260: { ! 261: OpenDialog->FileName=AnswerSoundEdit->Text; ! 262: if(OpenDialog->Execute()==true) { ! 263: AnswerSoundEdit->Text=OpenDialog->FileName; ! 264: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 265: } ! 266: } ! 267: //--------------------------------------------------------------------------- ! 268: ! 269: void __fastcall TTelnetCfgDlg::HangupSoundButtonClick(TObject *Sender) ! 270: { ! 271: OpenDialog->FileName=HangupSoundEdit->Text; ! 272: if(OpenDialog->Execute()==true) { ! 273: HangupSoundEdit->Text=OpenDialog->FileName; ! 274: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 275: } ! 276: } ! 277: //--------------------------------------------------------------------------- ! 278: ! 279: void __fastcall TTelnetCfgDlg::RLoginEnabledCheckBoxClick(TObject *Sender) ! 280: { ! 281: RLoginPortEdit->Enabled = RLoginEnabledCheckBox->Checked; ! 282: RLoginInterfaceEdit->Enabled = RLoginEnabledCheckBox->Checked; ! 283: RLoginIPallowButton->Enabled = RLoginEnabledCheckBox->Checked; ! 284: RLogin2ndNameCheckBox->Enabled = RLoginEnabledCheckBox->Checked; ! 285: RLoginPortLabel->Enabled = RLoginEnabledCheckBox->Checked; ! 286: RLoginInterfaceLabel->Enabled = RLoginEnabledCheckBox->Checked; ! 287: } ! 288: //--------------------------------------------------------------------------- ! 289: ! 290: void __fastcall TTelnetCfgDlg::RLoginIPallowButtonClick(TObject *Sender) ! 291: { ! 292: char filename[MAX_PATH+1]; ! 293: ! 294: sprintf(filename,"%srlogin.cfg" ! 295: ,MainForm->cfg.ctrl_dir); ! 296: Application->CreateForm(__classid(TTextFileEditForm), &TextFileEditForm); ! 297: TextFileEditForm->Filename=AnsiString(filename); ! 298: TextFileEditForm->Caption="Allowed IP addresses for RLogin"; ! 299: TextFileEditForm->ShowModal(); ! 300: delete TextFileEditForm; ! 301: } ! 302: //--------------------------------------------------------------------------- ! 303: ! 304: void __fastcall TTelnetCfgDlg::SshEnabledCheckBoxClick(TObject *Sender) ! 305: { ! 306: SshPortEdit->Enabled = SshEnabledCheckBox->Checked; ! 307: SshInterfaceEdit->Enabled = SshEnabledCheckBox->Checked; ! 308: SshPortLabel->Enabled = SshEnabledCheckBox->Checked; ! 309: SshInterfaceLabel->Enabled = SshEnabledCheckBox->Checked; ! 310: } ! 311: //--------------------------------------------------------------------------- ! 312: ! 313:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.