|
|
1.1 ! root 1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */ ! 2: ! 3: /* $Id: FtpCfgDlgUnit.cpp,v 1.10 2006/05/10 22:25:43 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 "FtpCfgDlgUnit.h" ! 42: #include "TextFileEditUnit.h" ! 43: #include <stdio.h> // sprintf() ! 44: #include <mmsystem.h> // sndPlaySound() ! 45: //--------------------------------------------------------------------- ! 46: #pragma resource "*.dfm" ! 47: TFtpCfgDlg *FtpCfgDlg; ! 48: //--------------------------------------------------------------------- ! 49: __fastcall TFtpCfgDlg::TFtpCfgDlg(TComponent* AOwner) ! 50: : TForm(AOwner) ! 51: { ! 52: } ! 53: //--------------------------------------------------------------------- ! 54: void __fastcall TFtpCfgDlg::FormShow(TObject *Sender) ! 55: { ! 56: char str[128]; ! 57: ! 58: if(MainForm->ftp_startup.interface_addr==0) ! 59: NetworkInterfaceEdit->Text="<ANY>"; ! 60: else { ! 61: sprintf(str,"%d.%d.%d.%d" ! 62: ,(MainForm->ftp_startup.interface_addr>>24)&0xff ! 63: ,(MainForm->ftp_startup.interface_addr>>16)&0xff ! 64: ,(MainForm->ftp_startup.interface_addr>>8)&0xff ! 65: ,MainForm->ftp_startup.interface_addr&0xff ! 66: ); ! 67: NetworkInterfaceEdit->Text=AnsiString(str); ! 68: } ! 69: if(MainForm->ftp_startup.pasv_ip_addr==0) ! 70: PasvIpAddrEdit->Text="<unspecified>"; ! 71: else { ! 72: sprintf(str,"%d.%d.%d.%d" ! 73: ,(MainForm->ftp_startup.pasv_ip_addr>>24)&0xff ! 74: ,(MainForm->ftp_startup.pasv_ip_addr>>16)&0xff ! 75: ,(MainForm->ftp_startup.pasv_ip_addr>>8)&0xff ! 76: ,MainForm->ftp_startup.pasv_ip_addr&0xff ! 77: ); ! 78: PasvIpAddrEdit->Text=AnsiString(str); ! 79: } ! 80: ! 81: MaxClientsEdit->Text=AnsiString((int)MainForm->ftp_startup.max_clients); ! 82: MaxInactivityEdit->Text=AnsiString((int)MainForm->ftp_startup.max_inactivity); ! 83: QwkTimeoutEdit->Text=AnsiString((int)MainForm->ftp_startup.qwk_timeout); ! 84: PortEdit->Text=AnsiString((int)MainForm->ftp_startup.port); ! 85: AutoStartCheckBox->Checked=MainForm->FtpAutoStart; ! 86: LogFileCheckBox->Checked=MainForm->FtpLogFile; ! 87: ! 88: PasvIpLookupCheckBox->Checked=MainForm->ftp_startup.options&FTP_OPT_LOOKUP_PASV_IP; ! 89: PasvPortLowEdit->Text=AnsiString((int)MainForm->ftp_startup.pasv_port_low); ! 90: PasvPortHighEdit->Text=AnsiString((int)MainForm->ftp_startup.pasv_port_high); ! 91: ! 92: IndexFileNameEdit->Text=AnsiString(MainForm->ftp_startup.index_file_name); ! 93: HtmlFileNameEdit->Text=AnsiString(MainForm->ftp_startup.html_index_file); ! 94: HtmlJavaScriptEdit->Text=AnsiString(MainForm->ftp_startup.html_index_script); ! 95: AnswerSoundEdit->Text=AnsiString(MainForm->ftp_startup.answer_sound); ! 96: HangupSoundEdit->Text=AnsiString(MainForm->ftp_startup.hangup_sound); ! 97: HackAttemptSoundEdit->Text=AnsiString(MainForm->ftp_startup.hack_sound); ! 98: CmdLogCheckBox->Checked=MainForm->ftp_startup.options&FTP_OPT_DEBUG_RX; ! 99: DebugTxCheckBox->Checked=MainForm->ftp_startup.options&FTP_OPT_DEBUG_TX; ! 100: DebugDataCheckBox->Checked=MainForm->ftp_startup.options&FTP_OPT_DEBUG_DATA; ! 101: DirFilesCheckBox->Checked=MainForm->ftp_startup.options&FTP_OPT_DIR_FILES; ! 102: AllowQWKCheckBox->Checked ! 103: =MainForm->ftp_startup.options&FTP_OPT_ALLOW_QWK; ! 104: LocalFileSysCheckBox->Checked ! 105: =!(MainForm->ftp_startup.options&FTP_OPT_NO_LOCAL_FSYS); ! 106: HostnameCheckBox->Checked ! 107: =!(MainForm->ftp_startup.options&FTP_OPT_NO_HOST_LOOKUP); ! 108: AutoIndexCheckBox->Checked=MainForm->ftp_startup.options&FTP_OPT_INDEX_FILE; ! 109: AutoIndexCheckBoxClick(Sender); ! 110: HtmlIndexCheckBox->Checked ! 111: =MainForm->ftp_startup.options&FTP_OPT_HTML_INDEX_FILE; ! 112: HtmlIndexCheckBoxClick(Sender); ! 113: PasvIpLookupCheckBoxClick(Sender); ! 114: ! 115: PageControl->ActivePage=GeneralTabSheet; ! 116: } ! 117: //--------------------------------------------------------------------------- ! 118: ! 119: void __fastcall TFtpCfgDlg::OKBtnClick(TObject *Sender) ! 120: { ! 121: char str[128],*p; ! 122: DWORD addr; ! 123: ! 124: SAFECOPY(str,NetworkInterfaceEdit->Text.c_str()); ! 125: p=str; ! 126: while(*p && *p<=' ') p++; ! 127: if(*p && isdigit(*p)) { ! 128: addr=atoi(p)<<24; ! 129: while(*p && *p!='.') p++; ! 130: if(*p=='.') p++; ! 131: addr|=atoi(p)<<16; ! 132: while(*p && *p!='.') p++; ! 133: if(*p=='.') p++; ! 134: addr|=atoi(p)<<8; ! 135: while(*p && *p!='.') p++; ! 136: if(*p=='.') p++; ! 137: addr|=atoi(p); ! 138: MainForm->ftp_startup.interface_addr=addr; ! 139: } else ! 140: MainForm->ftp_startup.interface_addr=0; ! 141: SAFECOPY(str,PasvIpAddrEdit->Text.c_str()); ! 142: p=str; ! 143: while(*p && *p<=' ') p++; ! 144: if(*p && isdigit(*p)) { ! 145: addr=atoi(p)<<24; ! 146: while(*p && *p!='.') p++; ! 147: if(*p=='.') p++; ! 148: addr|=atoi(p)<<16; ! 149: while(*p && *p!='.') p++; ! 150: if(*p=='.') p++; ! 151: addr|=atoi(p)<<8; ! 152: while(*p && *p!='.') p++; ! 153: if(*p=='.') p++; ! 154: addr|=atoi(p); ! 155: MainForm->ftp_startup.pasv_ip_addr=addr; ! 156: } else ! 157: MainForm->ftp_startup.pasv_ip_addr=0; ! 158: ! 159: MainForm->ftp_startup.max_clients=MaxClientsEdit->Text.ToIntDef(10); ! 160: MainForm->ftp_startup.max_inactivity=MaxInactivityEdit->Text.ToIntDef(300); ! 161: MainForm->ftp_startup.qwk_timeout=QwkTimeoutEdit->Text.ToIntDef(600); ! 162: MainForm->ftp_startup.port=PortEdit->Text.ToIntDef(23); ! 163: MainForm->FtpAutoStart=AutoStartCheckBox->Checked; ! 164: MainForm->FtpLogFile=LogFileCheckBox->Checked; ! 165: ! 166: MainForm->ftp_startup.pasv_port_low=PasvPortLowEdit->Text.ToIntDef(IPPORT_RESERVED); ! 167: MainForm->ftp_startup.pasv_port_high=PasvPortHighEdit->Text.ToIntDef(0xffff); ! 168: ! 169: SAFECOPY(MainForm->ftp_startup.index_file_name ! 170: ,IndexFileNameEdit->Text.c_str()); ! 171: SAFECOPY(MainForm->ftp_startup.html_index_file ! 172: ,HtmlFileNameEdit->Text.c_str()); ! 173: SAFECOPY(MainForm->ftp_startup.html_index_script ! 174: ,HtmlJavaScriptEdit->Text.c_str()); ! 175: ! 176: SAFECOPY(MainForm->ftp_startup.answer_sound ! 177: ,AnswerSoundEdit->Text.c_str()); ! 178: SAFECOPY(MainForm->ftp_startup.hangup_sound ! 179: ,HangupSoundEdit->Text.c_str()); ! 180: SAFECOPY(MainForm->ftp_startup.hack_sound ! 181: ,HackAttemptSoundEdit->Text.c_str()); ! 182: ! 183: if(DebugTxCheckBox->Checked==true) ! 184: MainForm->ftp_startup.options|=FTP_OPT_DEBUG_TX; ! 185: else ! 186: MainForm->ftp_startup.options&=~FTP_OPT_DEBUG_TX; ! 187: if(CmdLogCheckBox->Checked==true) ! 188: MainForm->ftp_startup.options|=FTP_OPT_DEBUG_RX; ! 189: else ! 190: MainForm->ftp_startup.options&=~FTP_OPT_DEBUG_RX; ! 191: if(DebugDataCheckBox->Checked==true) ! 192: MainForm->ftp_startup.options|=FTP_OPT_DEBUG_DATA; ! 193: else ! 194: MainForm->ftp_startup.options&=~FTP_OPT_DEBUG_DATA; ! 195: if(HostnameCheckBox->Checked==false) ! 196: MainForm->ftp_startup.options|=FTP_OPT_NO_HOST_LOOKUP; ! 197: else ! 198: MainForm->ftp_startup.options&=~FTP_OPT_NO_HOST_LOOKUP; ! 199: if(AllowQWKCheckBox->Checked==true) ! 200: MainForm->ftp_startup.options|=FTP_OPT_ALLOW_QWK; ! 201: else ! 202: MainForm->ftp_startup.options&=~FTP_OPT_ALLOW_QWK; ! 203: if(DirFilesCheckBox->Checked==true) ! 204: MainForm->ftp_startup.options|=FTP_OPT_DIR_FILES; ! 205: else ! 206: MainForm->ftp_startup.options&=~FTP_OPT_DIR_FILES; ! 207: if(LocalFileSysCheckBox->Checked==false) ! 208: MainForm->ftp_startup.options|=FTP_OPT_NO_LOCAL_FSYS; ! 209: else ! 210: MainForm->ftp_startup.options&=~FTP_OPT_NO_LOCAL_FSYS; ! 211: if(AutoIndexCheckBox->Checked==true) ! 212: MainForm->ftp_startup.options|=FTP_OPT_INDEX_FILE; ! 213: else ! 214: MainForm->ftp_startup.options&=~FTP_OPT_INDEX_FILE; ! 215: if(HtmlIndexCheckBox->Checked==true) ! 216: MainForm->ftp_startup.options|=FTP_OPT_HTML_INDEX_FILE; ! 217: else ! 218: MainForm->ftp_startup.options&=~FTP_OPT_HTML_INDEX_FILE; ! 219: if(PasvIpLookupCheckBox->Checked==true) ! 220: MainForm->ftp_startup.options|=FTP_OPT_LOOKUP_PASV_IP; ! 221: else ! 222: MainForm->ftp_startup.options&=~FTP_OPT_LOOKUP_PASV_IP; ! 223: ! 224: MainForm->SaveIniSettings(Sender); ! 225: } ! 226: //--------------------------------------------------------------------------- ! 227: ! 228: void __fastcall TFtpCfgDlg::AnswerSoundButtonClick(TObject *Sender) ! 229: { ! 230: OpenDialog->FileName=AnswerSoundEdit->Text; ! 231: if(OpenDialog->Execute()==true) { ! 232: AnswerSoundEdit->Text=OpenDialog->FileName; ! 233: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 234: } ! 235: } ! 236: //--------------------------------------------------------------------------- ! 237: ! 238: void __fastcall TFtpCfgDlg::HangupSoundButtonClick(TObject *Sender) ! 239: { ! 240: OpenDialog->FileName=HangupSoundEdit->Text; ! 241: if(OpenDialog->Execute()==true) { ! 242: HangupSoundEdit->Text=OpenDialog->FileName; ! 243: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 244: } ! 245: } ! 246: //--------------------------------------------------------------------------- ! 247: void __fastcall TFtpCfgDlg::HackAttemptSoundButtonClick(TObject *Sender) ! 248: { ! 249: OpenDialog->FileName=HackAttemptSoundEdit->Text; ! 250: if(OpenDialog->Execute()==true) { ! 251: HackAttemptSoundEdit->Text=OpenDialog->FileName; ! 252: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC); ! 253: } ! 254: } ! 255: //--------------------------------------------------------------------------- ! 256: ! 257: void __fastcall TFtpCfgDlg::AutoIndexCheckBoxClick(TObject *Sender) ! 258: { ! 259: IndexFileNameEdit->Enabled=AutoIndexCheckBox->Checked; ! 260: } ! 261: //--------------------------------------------------------------------------- ! 262: ! 263: ! 264: void __fastcall TFtpCfgDlg::HtmlJavaScriptButtonClick(TObject *Sender) ! 265: { ! 266: OpenDialog->FileName=HtmlJavaScriptEdit->Text; ! 267: if(OpenDialog->Execute()==true) { ! 268: HtmlJavaScriptEdit->Text=OpenDialog->FileName; ! 269: } ! 270: } ! 271: //--------------------------------------------------------------------------- ! 272: ! 273: void __fastcall TFtpCfgDlg::HtmlIndexCheckBoxClick(TObject *Sender) ! 274: { ! 275: HtmlFileNameEdit->Enabled=HtmlIndexCheckBox->Checked; ! 276: HtmlJavaScriptEdit->Enabled=HtmlIndexCheckBox->Checked; ! 277: HtmlJavaScriptLabel->Enabled=HtmlIndexCheckBox->Checked; ! 278: } ! 279: //--------------------------------------------------------------------------- ! 280: ! 281: void __fastcall TFtpCfgDlg::PasvIpLookupCheckBoxClick(TObject *Sender) ! 282: { ! 283: PasvIpAddrEdit->Enabled = !PasvIpLookupCheckBox->Checked; ! 284: } ! 285: //--------------------------------------------------------------------------- ! 286:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.