|
|
1.1 root 1: /* Synchronet Control Panel (GUI Borland C++ Builder Project for Win32) */
2:
3: /* $Id: WebCfgDlgUnit.cpp,v 1.1 2004/11/08 09:32:47 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 2004 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:
38: #include <vcl.h>
39: #pragma hdrstop
40:
41: #include "MainFormUnit.h"
42: #include "WebCfgDlgUnit.h"
43: #include <stdio.h> // sprintf()
44: #include <mmsystem.h> // sndPlaySound()
45: //---------------------------------------------------------------------------
46: #pragma package(smart_init)
47: #pragma resource "*.dfm"
48: TWebCfgDlg *WebCfgDlg;
49: //---------------------------------------------------------------------------
50: __fastcall TWebCfgDlg::TWebCfgDlg(TComponent* Owner)
51: : TForm(Owner)
52: {
53: }
54: //---------------------------------------------------------------------------
55: void __fastcall TWebCfgDlg::FormShow(TObject *Sender)
56: {
57: char str[128];
58:
59: if(MainForm->web_startup.interface_addr==0)
60: NetworkInterfaceEdit->Text="<ANY>";
61: else {
62: sprintf(str,"%d.%d.%d.%d"
63: ,(MainForm->web_startup.interface_addr>>24)&0xff
64: ,(MainForm->web_startup.interface_addr>>16)&0xff
65: ,(MainForm->web_startup.interface_addr>>8)&0xff
66: ,MainForm->web_startup.interface_addr&0xff
67: );
68: NetworkInterfaceEdit->Text=AnsiString(str);
69: }
70: if(MainForm->web_startup.max_clients==0)
71: MaxClientsEdit->Text="infinite";
72: else
73: MaxClientsEdit->Text=AnsiString((int)MainForm->web_startup.max_clients);
74: MaxInactivityEdit->Text=AnsiString((int)MainForm->web_startup.max_inactivity);
75: PortEdit->Text=AnsiString((int)MainForm->web_startup.port);
76: AutoStartCheckBox->Checked=MainForm->WebAutoStart;
77:
78: HtmlRootEdit->Text=AnsiString(MainForm->web_startup.root_dir);
79: ErrorSubDirEdit->Text=AnsiString(MainForm->web_startup.error_dir);
80: EmbeddedJsExtEdit->Text=AnsiString(MainForm->web_startup.js_ext);
81: ServerSideJsExtEdit->Text=AnsiString(MainForm->web_startup.ssjs_ext);
82:
83: AnswerSoundEdit->Text=AnsiString(MainForm->web_startup.answer_sound);
84: HangupSoundEdit->Text=AnsiString(MainForm->web_startup.hangup_sound);
85: HackAttemptSoundEdit->Text=AnsiString(MainForm->web_startup.hack_sound);
86:
87: DebugTxCheckBox->Checked=MainForm->web_startup.options&WEB_OPT_DEBUG_TX;
88: DebugRxCheckBox->Checked=MainForm->web_startup.options&WEB_OPT_DEBUG_RX;
89: AccessLogCheckBox->Checked=MainForm->web_startup.options&WEB_OPT_HTTP_LOGGING;
90: AccessLogCheckBoxClick(Sender);
91:
92: VirtualHostsCheckBox->Checked=MainForm->web_startup.options&WEB_OPT_VIRTUAL_HOSTS;
93:
94: HostnameCheckBox->Checked
95: =!(MainForm->web_startup.options&BBS_OPT_NO_HOST_LOOKUP);
96:
97: PageControl->ActivePage=GeneralTabSheet;
98: }
99: //---------------------------------------------------------------------------
100: void __fastcall TWebCfgDlg::OKBtnClick(TObject *Sender)
101: {
102: char str[128],*p;
103: DWORD addr;
104:
105: SAFECOPY(str,NetworkInterfaceEdit->Text.c_str());
106: p=str;
107: while(*p && *p<=' ') p++;
108: if(*p && isdigit(*p)) {
109: addr=atoi(p)<<24;
110: while(*p && *p!='.') p++;
111: if(*p=='.') p++;
112: addr|=atoi(p)<<16;
113: while(*p && *p!='.') p++;
114: if(*p=='.') p++;
115: addr|=atoi(p)<<8;
116: while(*p && *p!='.') p++;
117: if(*p=='.') p++;
118: addr|=atoi(p);
119: MainForm->web_startup.interface_addr=addr;
120: } else
121: MainForm->web_startup.interface_addr=0;
122: MainForm->web_startup.max_clients=MaxClientsEdit->Text.ToIntDef(10);
123: MainForm->web_startup.max_inactivity=MaxInactivityEdit->Text.ToIntDef(300);
124: MainForm->web_startup.port=PortEdit->Text.ToIntDef(23);
125: MainForm->WebAutoStart=AutoStartCheckBox->Checked;
126:
127: SAFECOPY(MainForm->web_startup.root_dir
128: ,HtmlRootEdit->Text.c_str());
129: SAFECOPY(MainForm->web_startup.error_dir
130: ,ErrorSubDirEdit->Text.c_str());
131: SAFECOPY(MainForm->web_startup.js_ext
132: ,EmbeddedJsExtEdit->Text.c_str());
133: SAFECOPY(MainForm->web_startup.ssjs_ext
134: ,ServerSideJsExtEdit->Text.c_str());
135:
136: SAFECOPY(MainForm->web_startup.answer_sound
137: ,AnswerSoundEdit->Text.c_str());
138: SAFECOPY(MainForm->web_startup.hangup_sound
139: ,HangupSoundEdit->Text.c_str());
140: SAFECOPY(MainForm->web_startup.hack_sound
141: ,HackAttemptSoundEdit->Text.c_str());
142:
143: if(DebugTxCheckBox->Checked==true)
144: MainForm->web_startup.options|=WEB_OPT_DEBUG_TX;
145: else
146: MainForm->web_startup.options&=~WEB_OPT_DEBUG_TX;
147: if(DebugRxCheckBox->Checked==true)
148: MainForm->web_startup.options|=WEB_OPT_DEBUG_RX;
149: else
150: MainForm->web_startup.options&=~WEB_OPT_DEBUG_RX;
151: if(AccessLogCheckBox->Checked==true)
152: MainForm->web_startup.options|=WEB_OPT_HTTP_LOGGING;
153: else
154: MainForm->web_startup.options&=~WEB_OPT_HTTP_LOGGING;
155: if(HostnameCheckBox->Checked==false)
156: MainForm->web_startup.options|=BBS_OPT_NO_HOST_LOOKUP;
157: else
158: MainForm->web_startup.options&=~BBS_OPT_NO_HOST_LOOKUP;
159: if(VirtualHostsCheckBox->Checked==true)
160: MainForm->web_startup.options|=WEB_OPT_VIRTUAL_HOSTS;
161: else
162: MainForm->web_startup.options&=~WEB_OPT_VIRTUAL_HOSTS;
163:
164: MainForm->SaveSettings(Sender);
165: }
166: //---------------------------------------------------------------------------
167: void __fastcall TWebCfgDlg::AnswerSoundButtonClick(TObject *Sender)
168: {
169: OpenDialog->FileName=AnswerSoundEdit->Text;
170: if(OpenDialog->Execute()==true) {
171: AnswerSoundEdit->Text=OpenDialog->FileName;
172: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC);
173: }
174: }
175: //---------------------------------------------------------------------------
176: void __fastcall TWebCfgDlg::HangupSoundButtonClick(TObject *Sender)
177: {
178: OpenDialog->FileName=HangupSoundEdit->Text;
179: if(OpenDialog->Execute()==true) {
180: HangupSoundEdit->Text=OpenDialog->FileName;
181: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC);
182: }
183: }
184: //---------------------------------------------------------------------------
185: void __fastcall TWebCfgDlg::HackAttemptSoundButtonClick(TObject *Sender)
186: {
187: OpenDialog->FileName=HackAttemptSoundEdit->Text;
188: if(OpenDialog->Execute()==true) {
189: HackAttemptSoundEdit->Text=OpenDialog->FileName;
190: sndPlaySound(OpenDialog->FileName.c_str(),SND_ASYNC);
191: }
192: }
193: //---------------------------------------------------------------------------
194:
195: void __fastcall TWebCfgDlg::AccessLogCheckBoxClick(TObject *Sender)
196: {
197: LogBaseLabel->Enabled=AccessLogCheckBox->Checked;
198: LogBaseNameEdit->Enabled=AccessLogCheckBox->Checked;
199: }
200: //---------------------------------------------------------------------------
201:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.