BINKP server in MIS, start of externalizing database calls
This commit is contained in:
parent
0ebbf78a03
commit
f02c1fd0bc
|
@ -43,6 +43,7 @@ Uses
|
|||
bbs_Ansi_MenuBox,
|
||||
bbs_Core,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
MPL_Execute;
|
||||
|
||||
Constructor TAnsiMenuHelp.Create;
|
||||
|
@ -261,7 +262,6 @@ Var
|
|||
Delete (Key, 1, 1);
|
||||
|
||||
Temp := strWordGet(1, Key, ']');
|
||||
|
||||
Cmd := strWordGet(1, Temp, ';');
|
||||
Data := strWordGet(2, Temp, ';');
|
||||
|
||||
|
@ -434,6 +434,7 @@ Begin
|
|||
CurKey := Keyword
|
||||
Else Begin
|
||||
CurKey := LastKey[LastPos];
|
||||
|
||||
Dec (LastPos);
|
||||
End;
|
||||
|
||||
|
@ -459,7 +460,7 @@ Begin
|
|||
'!' : Begin
|
||||
Session.io.AnsiColor(7);
|
||||
|
||||
ExecuteMPL(NIL, Copy(Text[TopPage + CurLine - 1].Link[CurLPos].Key, 2, 255));
|
||||
ExecuteMPL (NIL, Copy(Text[TopPage + CurLine - 1].Link[CurLPos].Key, 2, 255));
|
||||
|
||||
ShowTemplate;
|
||||
End;
|
||||
|
|
|
@ -7,6 +7,7 @@ Interface
|
|||
Uses
|
||||
m_Types,
|
||||
bbs_Ansi_MenuInput,
|
||||
bbs_dataBase,
|
||||
bbs_Common;
|
||||
|
||||
Const
|
||||
|
|
|
@ -12,6 +12,7 @@ Uses
|
|||
m_FileIO,
|
||||
m_Strings,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_Ansi_MenuBox,
|
||||
bbs_Ansi_MenuForm,
|
||||
bbs_cfg_Common;
|
||||
|
@ -81,7 +82,7 @@ Var
|
|||
End;
|
||||
|
||||
Begin
|
||||
Assign (ArcFile, Config.DataPath + 'archive.dat');
|
||||
Assign (ArcFile, bbsCfg.DataPath + 'archive.dat');
|
||||
|
||||
If Not ioReset(ArcFile, SizeOf(RecArchive), fmRWDN) Then
|
||||
If Not ioReWrite(ArcFile, SizeOf(RecArchive), fmRWDN) Then
|
||||
|
|
|
@ -6,7 +6,8 @@ Interface
|
|||
|
||||
Uses
|
||||
BBS_Core,
|
||||
BBS_Common;
|
||||
BBS_Common,
|
||||
bbs_dataBase;
|
||||
|
||||
Function GetNodeByIndex (Num: LongInt; Var TempNode: RecEchoMailNode) : Boolean;
|
||||
Procedure AddExportByBase (Var MBase: RecMessageBase; Idx: LongInt);
|
||||
|
@ -93,7 +94,7 @@ Var
|
|||
MBaseFile : File of RecMessageBase;
|
||||
MBase : RecMessageBase;
|
||||
Begin
|
||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(MBaseFile, SizeOf(RecMessageBase), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -112,7 +113,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'echonode.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'echonode.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecEchoMailNode), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -205,7 +206,7 @@ Var
|
|||
Var
|
||||
NewIdx : LongInt;
|
||||
Begin
|
||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(MBaseFile, SizeOf(RecMessageBase), fmRWDN) Then
|
||||
Exit;
|
||||
|
@ -333,7 +334,7 @@ Var
|
|||
Begin
|
||||
Result := -1;
|
||||
|
||||
Assign (EchoFile, Config.DataPath + 'echonode.dat');
|
||||
Assign (EchoFile, bbsCfg.DataPath + 'echonode.dat');
|
||||
|
||||
If Not ioReset(EchoFile, SizeOf(EchoNode), fmRWDN) Then
|
||||
If Not ioReWrite(EchoFile, SizeOf(EchoNode), fmRWDN) Then
|
||||
|
@ -439,27 +440,30 @@ Function Configuration_EchomailAddress (Edit: Boolean) : Byte;
|
|||
|
||||
WriteXY (21, 8, 112, 'Address');
|
||||
|
||||
Form.AddWord ('Z', ' Zone' , 23, 9, 31, 9, 6, 5, 0, 65535, @Config.NetAddress[Num].Zone, Topic + 'Network Zone');
|
||||
Form.AddWord ('N', ' Net' , 24, 10, 31, 10, 5, 5, 0, 65535, @Config.NetAddress[Num].Net, Topic + 'Network Net');
|
||||
Form.AddWord ('O', ' Node' , 23, 11, 31, 11, 6, 5, 0, 65535, @Config.NetAddress[Num].Node, Topic + 'Network Node');
|
||||
Form.AddWord ('P', ' Point' , 22, 12, 31, 12, 7, 5, 0, 65535, @Config.NetAddress[Num].Point, Topic + 'Network Point');
|
||||
Form.AddWord ('Z', ' Zone' , 23, 9, 31, 9, 6, 5, 0, 65535, @bbsCfg.NetAddress[Num].Zone, Topic + 'Network Zone');
|
||||
Form.AddWord ('N', ' Net' , 24, 10, 31, 10, 5, 5, 0, 65535, @bbsCfg.NetAddress[Num].Net, Topic + 'Network Net');
|
||||
Form.AddWord ('O', ' Node' , 23, 11, 31, 11, 6, 5, 0, 65535, @bbsCfg.NetAddress[Num].Node, Topic + 'Network Node');
|
||||
Form.AddWord ('P', ' Point' , 22, 12, 31, 12, 7, 5, 0, 65535, @bbsCfg.NetAddress[Num].Point, Topic + 'Network Point');
|
||||
|
||||
Form.AddStr ('M', ' Domain', 21, 14, 31, 14, 8, 8, 8, @Config.NetDomain[Num], Topic + 'Network domain');
|
||||
Form.AddStr ('D', ' Description', 16, 15, 31, 15, 13, 25, 25, @Config.NetDesc[Num], Topic + 'Network description');
|
||||
Form.AddBol ('I', ' Primary', 20, 16, 31, 16, 9, 3, @Config.NetPrimary[Num], Topic + 'Is this a primary address?');
|
||||
Form.AddStr ('M', ' Domain', 21, 14, 31, 14, 8, 8, 8, @bbsCfg.NetDomain[Num], Topic + 'Network domain');
|
||||
Form.AddStr ('D', ' Description', 16, 15, 31, 15, 13, 25, 25, @bbsCfg.NetDesc[Num], Topic + 'Network description');
|
||||
Form.AddBol ('I', ' Primary', 20, 16, 31, 16, 9, 3, @bbsCfg.NetPrimary[Num], Topic + 'Is this a primary address?');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
If Config.NetPrimary[Num] Then
|
||||
If bbsCfg.NetPrimary[Num] Then
|
||||
For Count := 1 to 30 Do
|
||||
If Config.NetPrimary[Count] and (Count <> Num) Then
|
||||
Config.NetPrimary[Count] := False;
|
||||
If bbsCfg.NetPrimary[Count] and (Count <> Num) Then
|
||||
bbsCfg.NetPrimary[Count] := False;
|
||||
|
||||
Box.Close;
|
||||
Form.Free;
|
||||
Box.Free;
|
||||
|
||||
If Config.NetDomain[Num] = '' Then Begin
|
||||
If strAddr2Str(bbsCfg.NetAddress[Num]) = '0:0/0' Then
|
||||
bbsCfg.NetDomain[Num] := ''
|
||||
Else
|
||||
If bbsCfg.NetDomain[Num] = '' Then Begin
|
||||
ShowMsgBox(0, 'You must supply a domain');
|
||||
Goto Start;
|
||||
End;
|
||||
|
@ -476,7 +480,7 @@ Var
|
|||
List.Clear;
|
||||
|
||||
For A := 1 to 30 Do
|
||||
List.Add(strPadR(strAddr2Str(Config.NetAddress[A]), 23, ' ') + ' ' + strPadR(Config.NetDomain[A], 8, ' ') + ' ' + strPadR(strYN(Config.NetPrimary[A]), 3, ' ') + ' ' + Config.NetDesc[A], 0);
|
||||
List.Add(strPadR(strAddr2Str(bbsCfg.NetAddress[A]), 23, ' ') + ' ' + strPadR(bbsCfg.NetDomain[A], 8, ' ') + ' ' + strPadR(strYN(bbsCfg.NetPrimary[A]), 3, ' ') + ' ' + bbsCfg.NetDesc[A], 0);
|
||||
End;
|
||||
|
||||
Begin
|
||||
|
|
|
@ -13,6 +13,7 @@ Uses
|
|||
m_DateTime,
|
||||
m_FileIO,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_ansi_MenuBox,
|
||||
bbs_ansi_MenuForm,
|
||||
bbs_cfg_Common;
|
||||
|
@ -110,7 +111,7 @@ Var
|
|||
End;
|
||||
|
||||
Begin
|
||||
Assign (F, Config.DataPath + 'event.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'event.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(Event), fmRWDN) Then
|
||||
ioReWrite (F, SizeOf(Event), fmRWDN);
|
||||
|
|
|
@ -16,6 +16,7 @@ Uses
|
|||
bbs_Ansi_MenuBox,
|
||||
bbs_Ansi_MenuForm,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_cfg_Common;
|
||||
|
||||
Type
|
||||
|
@ -46,12 +47,12 @@ Begin
|
|||
Sort.Sort (1, Sort.Total, qAscending);
|
||||
|
||||
Close (FBaseFile);
|
||||
ReName (FBaseFile, Config.DataPath + 'fbases.sortbak');
|
||||
ReName (FBaseFile, bbsCfg.DataPath + 'fbases.sortbak');
|
||||
|
||||
Assign (TempFile, Config.DataPath + 'fbases.sortbak');
|
||||
Assign (TempFile, bbsCfg.DataPath + 'fbases.sortbak');
|
||||
Reset (TempFile);
|
||||
|
||||
Assign (FBaseFile, Config.DataPath + 'fbases.dat');
|
||||
Assign (FBaseFile, bbsCfg.DataPath + 'fbases.dat');
|
||||
ReWrite (FBaseFile);
|
||||
|
||||
While FilePos(TempFile) < SortFirst - 1 Do Begin
|
||||
|
@ -181,7 +182,7 @@ Var
|
|||
|
||||
With FBase Do Begin
|
||||
FileName := 'new';
|
||||
Path := Config.SystemPath + 'files' + PathChar + 'new' + PathChar;
|
||||
Path := bbsCfg.SystemPath + 'files' + PathChar + 'new' + PathChar;
|
||||
Name := 'New File Base';
|
||||
FtpName := Name;
|
||||
DefScan := 1;
|
||||
|
@ -196,7 +197,7 @@ Var
|
|||
End;
|
||||
|
||||
Begin
|
||||
Assign (FBaseFile, Config.DataPath + 'fbases.dat');
|
||||
Assign (FBaseFile, bbsCfg.DataPath + 'fbases.dat');
|
||||
|
||||
If Not ioReset(FBaseFile, SizeOf(FBase), fmRWDN) Then
|
||||
Exit;
|
||||
|
@ -238,9 +239,9 @@ Begin
|
|||
KillRecord (FBaseFile, List.Picked, SizeOf(FBase));
|
||||
|
||||
If ShowMsgBox(1, 'Delete data files?') Then Begin
|
||||
FileErase (Config.DataPath + FBase.FileName + '.dir');
|
||||
FileErase (Config.DataPath + FBase.FileName + '.dat');
|
||||
FileErase (Config.DataPath + FBase.FileName + '.scn');
|
||||
FileErase (bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
FileErase (bbsCfg.DataPath + FBase.FileName + '.dat');
|
||||
FileErase (bbsCfg.DataPath + FBase.FileName + '.scn');
|
||||
End;
|
||||
|
||||
MakeList;
|
||||
|
|
|
@ -12,6 +12,7 @@ Uses
|
|||
bbs_Ansi_MenuBox,
|
||||
bbs_Ansi_MenuForm,
|
||||
bbs_cfg_Common,
|
||||
bbs_dataBase,
|
||||
bbs_Common;
|
||||
|
||||
Procedure EditGroup (Var Group: RecGroup);
|
||||
|
@ -65,9 +66,9 @@ Var
|
|||
|
||||
Begin
|
||||
If Msg Then
|
||||
Assign (GroupFile, Config.DataPath + 'groups_g.dat')
|
||||
Assign (GroupFile, bbsCfg.DataPath + 'groups_g.dat')
|
||||
Else
|
||||
Assign (GroupFile, Config.DataPath + 'groups_f.dat');
|
||||
Assign (GroupFile, bbsCfg.DataPath + 'groups_f.dat');
|
||||
|
||||
If Not ioReset(GroupFile, SizeOf(RecGroup), fmRWDN) Then
|
||||
If Not ioReWrite(GroupFile, SizeOf(RecGroup), fmRWDN) Then
|
||||
|
|
|
@ -15,6 +15,7 @@ Uses
|
|||
bbs_Core,
|
||||
bbs_IO,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_Ansi_MenuBox,
|
||||
bbs_Ansi_MenuForm,
|
||||
bbs_cfg_SysCfg,
|
||||
|
@ -112,7 +113,7 @@ Var
|
|||
End;
|
||||
|
||||
Begin
|
||||
Session.io.OutFile(Config.DataPath + 'cfgroot', False, 0);
|
||||
Session.io.OutFile(bbsCfg.DataPath + 'cfgroot', False, 0);
|
||||
|
||||
Form := TAnsiMenuForm.Create;
|
||||
|
||||
|
@ -315,7 +316,7 @@ Begin
|
|||
Form.Free;
|
||||
|
||||
ReWrite (ConfigFile);
|
||||
Write (ConfigFile, Config);
|
||||
Write (ConfigFile, bbsCfg);
|
||||
Close (ConfigFile);
|
||||
End;
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ Uses
|
|||
BBS_Core,
|
||||
BBS_Common,
|
||||
BBS_MenuData,
|
||||
bbs_dataBase,
|
||||
bbs_cfg_Theme,
|
||||
bbs_cfg_Common;
|
||||
|
||||
|
|
|
@ -18,7 +18,8 @@ Uses
|
|||
bbs_Ansi_MenuForm,
|
||||
bbs_Cfg_Common,
|
||||
bbs_Cfg_EchoMail,
|
||||
bbs_Common;
|
||||
bbs_Common,
|
||||
bbs_dataBase;
|
||||
|
||||
Type
|
||||
RecMessageBaseFile = File of RecMessageBase;
|
||||
|
@ -60,12 +61,12 @@ Begin
|
|||
Sort.Sort (1, Sort.Total, qAscending);
|
||||
|
||||
Close (MBaseFile);
|
||||
ReName (MBaseFile, Config.DataPath + 'mbases.sortbak');
|
||||
ReName (MBaseFile, bbsCfg.DataPath + 'mbases.sortbak');
|
||||
|
||||
Assign (TempFile, Config.DataPath + 'mbases.sortbak');
|
||||
Assign (TempFile, bbsCfg.DataPath + 'mbases.sortbak');
|
||||
Reset (TempFile);
|
||||
|
||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
ReWrite (MBaseFile);
|
||||
|
||||
While FilePos(TempFile) < SortFirst - 1 Do Begin
|
||||
|
@ -152,7 +153,7 @@ Begin
|
|||
Form.AddBits ('9', ' Pvt Reply' , 55, 21, 68, 21, 11, MBPrivReply, @MBase.Flags, Topic + 'Allow private posts in public?');
|
||||
|
||||
Repeat
|
||||
WriteXY (19, 15, 113, strPadR(strAddr2Str(Config.NetAddress[MBase.NetAddr]), 19, ' '));
|
||||
WriteXY (19, 15, 113, strPadR(strAddr2Str(bbsCfg.NetAddress[MBase.NetAddr]), 19, ' '));
|
||||
|
||||
Links := FileByteSize(MBase.Path + MBase.FileName + '.lnk');
|
||||
|
||||
|
@ -281,7 +282,7 @@ Var
|
|||
Form.LoExitChars := #21#27;
|
||||
|
||||
Repeat
|
||||
WriteXY (28, 12, 113, strPadR(strAddr2Str(Config.NetAddress[Global.NetAddr]), 19, ' '));
|
||||
WriteXY (28, 12, 113, strPadR(strAddr2Str(bbsCfg.NetAddress[Global.NetAddr]), 19, ' '));
|
||||
|
||||
If AddStr <> '' Then
|
||||
WriteXY (28, 20, 113, strPadR(AddStr, 12, ' '));
|
||||
|
@ -383,7 +384,7 @@ Var
|
|||
If MBase.NetType = 0 Then
|
||||
Addr := 'Local'
|
||||
Else
|
||||
Addr := strAddr2Str(Config.NetAddress[MBase.NetAddr]);
|
||||
Addr := strAddr2Str(bbsCfg.NetAddress[MBase.NetAddr]);
|
||||
|
||||
List.Add(strPadR(strI2S(FilePos(MBaseFile) - 1), 5, ' ') + ' ' + strPadR(strStripMCI(MBase.Name), 35, ' ') + ' ' + strPadL(Addr, 12, ' '), Tag);
|
||||
End;
|
||||
|
@ -426,7 +427,7 @@ Var
|
|||
|
||||
Created := CurDateDos;
|
||||
FileName := 'new';
|
||||
Path := Config.MsgsPath;
|
||||
Path := bbsCfg.MsgsPath;
|
||||
Name := 'New Base';
|
||||
DefNScan := 1;
|
||||
DefQScan := 1;
|
||||
|
@ -437,12 +438,12 @@ Var
|
|||
ITemplate := 'ansimlst';
|
||||
SysopACS := 's255';
|
||||
NetAddr := 1;
|
||||
Origin := Config.Origin;
|
||||
ColQuote := Config.ColorQuote;
|
||||
ColText := Config.ColorText;
|
||||
ColTear := Config.ColorTear;
|
||||
ColOrigin := Config.ColorOrigin;
|
||||
ColKludge := Config.ColorKludge;
|
||||
Origin := bbsCfg.Origin;
|
||||
ColQuote := bbsCfg.ColorQuote;
|
||||
ColText := bbsCfg.ColorText;
|
||||
ColTear := bbsCfg.ColorTear;
|
||||
ColOrigin := bbsCfg.ColorOrigin;
|
||||
ColKludge := bbsCfg.ColorKludge;
|
||||
Flags := MBAutoSigs or MBKillKludge;
|
||||
|
||||
If Email Then Begin
|
||||
|
@ -475,7 +476,7 @@ Var
|
|||
Begin
|
||||
Result := -1;
|
||||
|
||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(MBaseFile, SizeOf(MBase), fmRWDN) Then
|
||||
Exit;
|
||||
|
|
|
@ -12,6 +12,7 @@ Uses
|
|||
m_FileIO,
|
||||
m_Strings,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_ansi_MenuBox,
|
||||
bbs_ansi_MenuForm,
|
||||
bbs_cfg_Common;
|
||||
|
@ -83,7 +84,7 @@ Var
|
|||
End;
|
||||
|
||||
Begin
|
||||
Assign (ProtFile, Config.DataPath + 'protocol.dat');
|
||||
Assign (ProtFile, bbsCfg.DataPath + 'protocol.dat');
|
||||
|
||||
If Not ioReset(ProtFile, SizeOf(RecProtocol), fmRWDN) Then
|
||||
If Not ioReWrite(ProtFile, SizeOf(RecProtocol), fmRWDN) Then
|
||||
|
|
|
@ -12,6 +12,7 @@ Uses
|
|||
m_Strings,
|
||||
m_FileIO,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_Ansi_MenuBox,
|
||||
bbs_Ansi_MenuForm,
|
||||
bbs_Cfg_Common;
|
||||
|
@ -87,7 +88,7 @@ Var
|
|||
Begin
|
||||
HideMode := True;
|
||||
|
||||
Assign (SecFile, Config.DataPath + 'security.dat');
|
||||
Assign (SecFile, bbsCfg.DataPath + 'security.dat');
|
||||
|
||||
If Not ioReset(SecFile, SizeOf(RecSecurity), fmReadWrite + fmDenyNone) Then Begin
|
||||
ReWrite (SecFile, SizeOf(RecSecurity));
|
||||
|
|
|
@ -27,6 +27,7 @@ Implementation
|
|||
Uses
|
||||
m_Strings,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_ansi_MenuBox,
|
||||
bbs_ansi_MenuForm;
|
||||
|
||||
|
@ -47,17 +48,17 @@ Begin
|
|||
|
||||
VerticalLine (26, 8, 18);
|
||||
|
||||
Form.AddPath ('S', ' System Path', 13, 8, 28, 8, 13, 45, mysMaxPathSize, @Config.SystemPath, Topic + 'Root Mystic BBS directory');
|
||||
Form.AddPath ('D', ' Data File Path', 10, 9, 28, 9, 16, 45, mysMaxPathSize, @Config.DataPath, Topic + 'Data file directory');
|
||||
Form.AddPath ('L', ' Log File Path', 11, 10, 28, 10, 15, 45, mysMaxPathSize, @Config.LogsPath, Topic + 'Log file directory');
|
||||
Form.AddPath ('M', ' Message Base Path', 7, 11, 28, 11, 19, 45, mysMaxPathSize, @Config.MsgsPath, Topic + 'Message base directory');
|
||||
Form.AddPath ('A', ' File Attach Path', 8, 12, 28, 12, 18, 45, mysMaxPathSize, @Config.AttachPath, Topic + 'File attachment directory');
|
||||
Form.AddPath ('E', ' Semaphore Path', 10, 13, 28, 13, 16, 45, mysMaxPathSize, @Config.SemaPath, Topic + 'Semaphore file directory');
|
||||
Form.AddPath ('U', ' Menu File Path', 10, 14, 28, 14, 16, 45, mysMaxPathSize, @Config.MenuPath, Topic + 'Default menu file directory');
|
||||
Form.AddPath ('T', ' Text File Path', 10, 15, 28, 15, 16, 45, mysMaxPathSize, @Config.TextPath, Topic + 'Default display file directory');
|
||||
Form.AddPath ('R', ' Script Path', 13, 16, 28, 16, 13, 45, mysMaxPathSize, @Config.ScriptPath, Topic + 'Default script (MPL) directory');
|
||||
Form.AddPath ('I', ' Inbound EchoMail', 8, 17, 28, 17, 18, 45, mysMaxPathSize, @Config.InboundPath, Topic + 'Inbound Echomail directory');
|
||||
Form.AddPath ('O', ' Outbound EchoMail', 7, 18, 28, 18, 19, 45, mysMaxPathSize, @Config.OutboundPath, Topic + 'Outbound Echomail directory');
|
||||
Form.AddPath ('S', ' System Path', 13, 8, 28, 8, 13, 45, mysMaxPathSize, @bbsCfg.SystemPath, Topic + 'Root Mystic BBS directory');
|
||||
Form.AddPath ('D', ' Data File Path', 10, 9, 28, 9, 16, 45, mysMaxPathSize, @bbsCfg.DataPath, Topic + 'Data file directory');
|
||||
Form.AddPath ('L', ' Log File Path', 11, 10, 28, 10, 15, 45, mysMaxPathSize, @bbsCfg.LogsPath, Topic + 'Log file directory');
|
||||
Form.AddPath ('M', ' Message Base Path', 7, 11, 28, 11, 19, 45, mysMaxPathSize, @bbsCfg.MsgsPath, Topic + 'Message base directory');
|
||||
Form.AddPath ('A', ' File Attach Path', 8, 12, 28, 12, 18, 45, mysMaxPathSize, @bbsCfg.AttachPath, Topic + 'File attachment directory');
|
||||
Form.AddPath ('E', ' Semaphore Path', 10, 13, 28, 13, 16, 45, mysMaxPathSize, @bbsCfg.SemaPath, Topic + 'Semaphore file directory');
|
||||
Form.AddPath ('U', ' Menu File Path', 10, 14, 28, 14, 16, 45, mysMaxPathSize, @bbsCfg.MenuPath, Topic + 'Default menu file directory');
|
||||
Form.AddPath ('T', ' Text File Path', 10, 15, 28, 15, 16, 45, mysMaxPathSize, @bbsCfg.TextPath, Topic + 'Default display file directory');
|
||||
Form.AddPath ('R', ' Script Path', 13, 16, 28, 16, 13, 45, mysMaxPathSize, @bbsCfg.ScriptPath, Topic + 'Default script (MPL) directory');
|
||||
Form.AddPath ('I', ' Inbound EchoMail', 8, 17, 28, 17, 18, 45, mysMaxPathSize, @bbsCfg.InboundPath, Topic + 'Inbound Echomail directory');
|
||||
Form.AddPath ('O', ' Outbound EchoMail', 7, 18, 28, 18, 19, 45, mysMaxPathSize, @bbsCfg.OutboundPath, Topic + 'Outbound Echomail directory');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
|
@ -85,23 +86,23 @@ Begin
|
|||
VerticalLine (24, 7, 16);
|
||||
VerticalLine (67, 7, 12);
|
||||
|
||||
Form.AddStr ('B', ' BBS Name', 14, 7, 26, 7, 10, 25, 30, @Config.BBSName, Topic);
|
||||
Form.AddStr ('S', ' Sysop Name', 12, 8, 26, 8, 12, 25, 30, @Config.SysopName, Topic);
|
||||
Form.AddPass ('Y', ' Sysop Password', 8, 9, 26, 9, 16, 15, 15, @Config.SysopPW, Topic);
|
||||
Form.AddPass ('T', ' System Password', 7, 10, 26, 10, 17, 15, 15, @Config.SystemPW, Topic);
|
||||
Form.AddStr ('O', ' Sysop ACS', 13, 11, 26, 11, 11, 25, 30, @Config.ACSSysop, Topic);
|
||||
Form.AddStr ('F', ' Feedback To', 11, 12, 26, 12, 13, 25, 30, @Config.FeedbackTo, Topic);
|
||||
Form.AddStr ('A', ' Start Menu', 12, 13, 26, 13, 12, 20, 20, @Config.DefStartMenu, Topic);
|
||||
Form.AddStr ('H', ' Theme', 17, 14, 26, 14, 7, 20, 20, @Config.DefThemeFile, Topic);
|
||||
Form.AddBol ('K', ' Ask Theme', 13, 15, 26, 15, 11, 3, @Config.ThemeOnStart, Topic + 'Ask theme each connection');
|
||||
Form.AddTog ('E', ' Terminal', 14, 16, 26, 16, 10, 10, 0, 3, 'Ask Detect Detect/Ask ANSI', @Config.DefTermMode, Topic);
|
||||
Form.AddStr ('B', ' BBS Name', 14, 7, 26, 7, 10, 25, 30, @bbsCfg.BBSName, Topic);
|
||||
Form.AddStr ('S', ' Sysop Name', 12, 8, 26, 8, 12, 25, 30, @bbsCfg.SysopName, Topic);
|
||||
Form.AddPass ('Y', ' Sysop Password', 8, 9, 26, 9, 16, 15, 15, @bbsCfg.SysopPW, Topic);
|
||||
Form.AddPass ('T', ' System Password', 7, 10, 26, 10, 17, 15, 15, @bbsCfg.SystemPW, Topic);
|
||||
Form.AddStr ('O', ' Sysop ACS', 13, 11, 26, 11, 11, 25, 30, @bbsCfg.ACSSysop, Topic);
|
||||
Form.AddStr ('F', ' Feedback To', 11, 12, 26, 12, 13, 25, 30, @bbsCfg.FeedbackTo, Topic);
|
||||
Form.AddStr ('A', ' Start Menu', 12, 13, 26, 13, 12, 20, 20, @bbsCfg.DefStartMenu, Topic);
|
||||
Form.AddStr ('H', ' Theme', 17, 14, 26, 14, 7, 20, 20, @bbsCfg.DefThemeFile, Topic);
|
||||
Form.AddBol ('K', ' Ask Theme', 13, 15, 26, 15, 11, 3, @bbsCfg.ThemeOnStart, Topic + 'Ask theme each connection');
|
||||
Form.AddTog ('E', ' Terminal', 14, 16, 26, 16, 10, 10, 0, 3, 'Ask Detect Detect/Ask ANSI', @bbsCfg.DefTermMode, Topic);
|
||||
|
||||
Form.AddBol ('L', ' Chat Logging', 53, 7, 69, 7, 14, 3, @Config.ChatLogging, Topic);
|
||||
Form.AddByte ('R', ' Hours Start', 54, 8, 69, 8, 13, 2, 0, 24, @Config.ChatStart, Topic);
|
||||
Form.AddByte ('N', ' Hours End', 56, 9, 69, 9, 11, 2, 0, 24, @Config.ChatEnd, Topic);
|
||||
Form.AddBol ('D', ' Chat Feedback', 52, 10, 69, 10, 15, 3, @Config.ChatFeedback, Topic);
|
||||
Form.AddByte ('Z', ' Screen Size', 54, 11, 69, 11, 13, 2, 1, 25, @Config.DefScreenSize, Topic);
|
||||
Form.AddWord ('I', ' Inactivity', 55, 12, 69, 12, 12, 5, 0, 65535, @Config.Inactivity, Topic + 'Inactivity timeout (seconds) 0/Disable');
|
||||
Form.AddBol ('L', ' Chat Logging', 53, 7, 69, 7, 14, 3, @bbsCfg.ChatLogging, Topic);
|
||||
Form.AddByte ('R', ' Hours Start', 54, 8, 69, 8, 13, 2, 0, 24, @bbsCfg.ChatStart, Topic);
|
||||
Form.AddByte ('N', ' Hours End', 56, 9, 69, 9, 11, 2, 0, 24, @bbsCfg.ChatEnd, Topic);
|
||||
Form.AddBol ('D', ' Chat Feedback', 52, 10, 69, 10, 15, 3, @bbsCfg.ChatFeedback, Topic);
|
||||
Form.AddByte ('Z', ' Screen Size', 54, 11, 69, 11, 13, 2, 1, 25, @bbsCfg.DefScreenSize, Topic);
|
||||
Form.AddWord ('I', ' Inactivity', 55, 12, 69, 12, 12, 5, 0, 65535, @bbsCfg.Inactivity, Topic + 'Inactivity timeout (seconds) 0/Disable');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
|
@ -128,19 +129,19 @@ Begin
|
|||
|
||||
VerticalLine (35, 7, 19);
|
||||
|
||||
Form.AddByte ('A', ' Login Attempts', 19, 7, 37, 7, 16, 3, 1, 255, @Config.LoginAttempts, Topic + 'Maximum login attempts before disconnect');
|
||||
Form.AddByte ('T', ' Login Time', 23, 8, 37, 8, 12, 3, 1, 255, @Config.LoginTime, Topic + 'Max time in minutes to give for user login');
|
||||
Form.AddWord ('C', ' Password Change', 18, 9, 37, 9, 17, 5, 0, 65535, @Config.PWChange, Topic + 'Days before forcing PW change (0/Disabled)');
|
||||
Form.AddBol ('I', ' Password Inquiry', 17, 10, 37, 10, 18, 3, @Config.PWInquiry, Topic + 'Allow password inquiry e-mails?');
|
||||
Form.AddByte ('W', ' Password Attempts', 16, 11, 37, 11, 19, 2, 1, 99, @Config.PWAttempts, Topic + 'Max Password attempts');
|
||||
Form.AddTog ('O', ' Start Code Page', 18, 12, 37, 12, 17, 5, 0, 1, 'CP437 UTF-8', @Config.StartCodePage, Topic + 'Logging in user''s code page');
|
||||
Form.AddBol ('U', ' Use Matrix Login', 17, 13, 37, 13, 18, 3, @Config.UseMatrix, Topic + 'Use Matrix login menu?');
|
||||
Form.AddStr ('M', ' Matrix Menu', 22, 14, 37, 14, 13, 20, 20, @Config.MatrixMenu, Topic + 'Matrix menu file name');
|
||||
Form.AddPass ('P', ' Matrix Password', 18, 15, 37, 15, 17, 15, 15, @Config.MatrixPW, Topic + 'Matrix password to login (Blank/Disabled)');
|
||||
Form.AddStr ('S', ' Matrix ACS', 23, 16, 37, 16, 12, 30, 30, @Config.MatrixACS, Topic + 'ACS to see matrix password or login');
|
||||
Form.AddStr ('V', ' Invisible Login ACS', 14, 17, 37, 17, 21, 30, 30, @Config.AcsInvisLogin, Topic + 'ACS to login as invisible user');
|
||||
Form.AddStr ('N', ' See Invisible ACS', 16, 18, 37, 18, 19, 30, 30, @Config.AcsSeeInvis, Topic + 'ACS to see invisible users');
|
||||
Form.AddStr ('L', ' Multi Login ACS', 18, 19, 37, 19, 17, 30, 30, @Config.AcsMultiLogin, Topic + 'ACS to login to multiple nodes at once');
|
||||
Form.AddByte ('A', ' Login Attempts', 19, 7, 37, 7, 16, 3, 1, 255, @bbsCfg.LoginAttempts, Topic + 'Maximum login attempts before disconnect');
|
||||
Form.AddByte ('T', ' Login Time', 23, 8, 37, 8, 12, 3, 1, 255, @bbsCfg.LoginTime, Topic + 'Max time in minutes to give for user login');
|
||||
Form.AddWord ('C', ' Password Change', 18, 9, 37, 9, 17, 5, 0, 65535, @bbsCfg.PWChange, Topic + 'Days before forcing PW change (0/Disabled)');
|
||||
Form.AddBol ('I', ' Password Inquiry', 17, 10, 37, 10, 18, 3, @bbsCfg.PWInquiry, Topic + 'Allow password inquiry e-mails?');
|
||||
Form.AddByte ('W', ' Password Attempts', 16, 11, 37, 11, 19, 2, 1, 99, @bbsCfg.PWAttempts, Topic + 'Max Password attempts');
|
||||
Form.AddTog ('O', ' Start Code Page', 18, 12, 37, 12, 17, 5, 0, 1, 'CP437 UTF-8', @bbsCfg.StartCodePage, Topic + 'Logging in user''s code page');
|
||||
Form.AddBol ('U', ' Use Matrix Login', 17, 13, 37, 13, 18, 3, @bbsCfg.UseMatrix, Topic + 'Use Matrix login menu?');
|
||||
Form.AddStr ('M', ' Matrix Menu', 22, 14, 37, 14, 13, 20, 20, @bbsCfg.MatrixMenu, Topic + 'Matrix menu file name');
|
||||
Form.AddPass ('P', ' Matrix Password', 18, 15, 37, 15, 17, 15, 15, @bbsCfg.MatrixPW, Topic + 'Matrix password to login (Blank/Disabled)');
|
||||
Form.AddStr ('S', ' Matrix ACS', 23, 16, 37, 16, 12, 30, 30, @bbsCfg.MatrixACS, Topic + 'ACS to see matrix password or login');
|
||||
Form.AddStr ('V', ' Invisible Login ACS', 14, 17, 37, 17, 21, 30, 30, @bbsCfg.AcsInvisLogin, Topic + 'ACS to login as invisible user');
|
||||
Form.AddStr ('N', ' See Invisible ACS', 16, 18, 37, 18, 19, 30, 30, @bbsCfg.AcsSeeInvis, Topic + 'ACS to see invisible users');
|
||||
Form.AddStr ('L', ' Multi Login ACS', 18, 19, 37, 19, 17, 30, 30, @bbsCfg.AcsMultiLogin, Topic + 'ACS to login to multiple nodes at once');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
|
@ -164,11 +165,11 @@ Begin
|
|||
Box.Header := ' Optional User Fields ';
|
||||
|
||||
For Count := 1 to 10 Do Begin
|
||||
Form.AddBol ('1', 'Ask' , 8, 7 + Count, 12, 7 + Count, 3, 3, @Config.OptionalField[Count].Ask, Topic + 'Ask optional field #' + strI2S(Count));
|
||||
Form.AddStr ('2', 'Desc', 18, 7 + Count, 23, 7 + Count, 4, 13, 13, @Config.OptionalField[Count].Desc, Topic + 'Description of field (for user editor)');
|
||||
Form.AddTog ('3', 'Type', 41, 7 + Count, 46, 7 + Count, 4, 8, 1, 8, 'Standard Upper Proper Phone Date Password Lower Yes/No', @Config.OptionalField[Count].iType, Topic + 'Field input type');
|
||||
Form.AddByte ('4', 'Field', 57, 7 + Count, 63, 7 + Count, 5, 2, 1, 60, @Config.OptionalField[Count].iField, Topic + 'Size of input field');
|
||||
Form.AddByte ('5', 'Max' , 68, 7 + Count, 72, 7 + Count, 3, 2, 1, 60, @Config.OptionalField[Count].iMax, Topic + 'Maximum size of input');
|
||||
Form.AddBol ('1', 'Ask' , 8, 7 + Count, 12, 7 + Count, 3, 3, @bbsCfg.OptionalField[Count].Ask, Topic + 'Ask optional field #' + strI2S(Count));
|
||||
Form.AddStr ('2', 'Desc', 18, 7 + Count, 23, 7 + Count, 4, 13, 13, @bbsCfg.OptionalField[Count].Desc, Topic + 'Description of field (for user editor)');
|
||||
Form.AddTog ('3', 'Type', 41, 7 + Count, 46, 7 + Count, 4, 8, 1, 8, 'Standard Upper Proper Phone Date Password Lower Yes/No', @bbsCfg.OptionalField[Count].iType, Topic + 'Field input type');
|
||||
Form.AddByte ('4', 'Field', 57, 7 + Count, 63, 7 + Count, 5, 2, 1, 60, @bbsCfg.OptionalField[Count].iField, Topic + 'Size of input field');
|
||||
Form.AddByte ('5', 'Max' , 68, 7 + Count, 72, 7 + Count, 3, 2, 1, 60, @bbsCfg.OptionalField[Count].iMax, Topic + 'Maximum size of input');
|
||||
End;
|
||||
|
||||
Box.Open (6, 6, 75, 19);
|
||||
|
@ -198,29 +199,29 @@ Begin
|
|||
VerticalLine (26, 7, 19);
|
||||
VerticalLine (58, 7, 15);
|
||||
|
||||
Form.AddBol ('L', ' List Compression', 8, 7, 28, 7, 18, 3, @Config.FCompress, Topic + '');
|
||||
Form.AddTog ('I', ' List Columns', 12, 8, 28, 8, 14, 1, 1, 2, '1 2', @Config.FColumns, Topic + '');
|
||||
Form.AddBol ('B', ' Bases in Groups', 9, 9, 28, 9, 17, 3, @Config.FShowBases, Topic + '');
|
||||
Form.AddBol ('R', ' Reshow File Header', 6, 10, 28, 10, 20, 3, @Config.FShowHeader, Topic + '');
|
||||
Form.AddTog ('U', ' Upload Dupe Scan', 8, 11, 28, 11, 18, 7, 0, 2, 'None Current All', @Config.FDupeScan, Topic + '');
|
||||
Form.AddWord ('P', ' Upload Base', 13, 12, 28, 12, 13, 5, 0, 65535, @Config.UploadBase, Topic + '');
|
||||
Form.AddByte ('D', ' Description Lines', 7, 13, 28, 13, 19, 2, 1, 99, @Config.MaxFileDesc, Topic + '');
|
||||
Form.AddBol ('I', ' Import FILE_ID.DIZ', 6, 14, 28, 14, 20, 3, @Config.ImportDIZ, Topic + '');
|
||||
Form.AddByte ('M', ' Max Comment Lines', 7, 15, 28, 15, 19, 2, 1, 99, @Config.FCommentLines, Topic + '');
|
||||
Form.AddByte ('A', ' Max Comment Cols', 8, 16, 28, 16, 18, 2, 1, 79, @Config.FCommentLen, Topic + '');
|
||||
Form.AddBol ('T', ' Test Uploads', 12, 17, 28, 17, 14, 3, @Config.TestUploads, Topic + '');
|
||||
Form.AddByte ('S', ' Pass Level', 14, 18, 28, 18, 12, 3, 0, 255, @Config.TestPassLevel, Topic + '');
|
||||
Form.AddStr ('O', ' Command Line', 12, 19, 28, 19, 14, 45, 80, @Config.TestCmdLine, Topic + '');
|
||||
Form.AddBol ('L', ' List Compression', 8, 7, 28, 7, 18, 3, @bbsCfg.FCompress, Topic + '');
|
||||
Form.AddTog ('I', ' List Columns', 12, 8, 28, 8, 14, 1, 1, 2, '1 2', @bbsCfg.FColumns, Topic + '');
|
||||
Form.AddBol ('B', ' Bases in Groups', 9, 9, 28, 9, 17, 3, @bbsCfg.FShowBases, Topic + '');
|
||||
Form.AddBol ('R', ' Reshow File Header', 6, 10, 28, 10, 20, 3, @bbsCfg.FShowHeader, Topic + '');
|
||||
Form.AddTog ('U', ' Upload Dupe Scan', 8, 11, 28, 11, 18, 7, 0, 2, 'None Current All', @bbsCfg.FDupeScan, Topic + '');
|
||||
Form.AddWord ('P', ' Upload Base', 13, 12, 28, 12, 13, 5, 0, 65535, @bbsCfg.UploadBase, Topic + '');
|
||||
Form.AddByte ('D', ' Description Lines', 7, 13, 28, 13, 19, 2, 1, 99, @bbsCfg.MaxFileDesc, Topic + '');
|
||||
Form.AddBol ('I', ' Import FILE_ID.DIZ', 6, 14, 28, 14, 20, 3, @bbsCfg.ImportDIZ, Topic + '');
|
||||
Form.AddByte ('M', ' Max Comment Lines', 7, 15, 28, 15, 19, 2, 1, 99, @bbsCfg.FCommentLines, Topic + '');
|
||||
Form.AddByte ('A', ' Max Comment Cols', 8, 16, 28, 16, 18, 2, 1, 79, @bbsCfg.FCommentLen, Topic + '');
|
||||
Form.AddBol ('T', ' Test Uploads', 12, 17, 28, 17, 14, 3, @bbsCfg.TestUploads, Topic + '');
|
||||
Form.AddByte ('S', ' Pass Level', 14, 18, 28, 18, 12, 3, 0, 255, @bbsCfg.TestPassLevel, Topic + '');
|
||||
Form.AddStr ('O', ' Command Line', 12, 19, 28, 19, 14, 45, 80, @bbsCfg.TestCmdLine, Topic + '');
|
||||
|
||||
Form.AddStr ('U', ' Auto Validate', 43, 7, 60, 7, 15, 15, mysMaxAcsSize, @Config.AcsValidate, Topic + 'ACS to auto-validate uploads');
|
||||
Form.AddStr ('E', ' See Unvalidated', 41, 8, 60, 8, 17, 15, mysMaxAcsSize, @Config.AcsSeeUnvalid, Topic + 'ACS to see unvalidated files');
|
||||
Form.AddStr ('N', ' DL Unvalidated', 42, 9, 60, 9, 16, 15, mysMaxAcsSize, @Config.AcsDLUnvalid, Topic + 'ACS to download unvalidated files');
|
||||
Form.AddStr ('F', ' See Failed', 46, 10, 60, 10, 12, 15, mysMaxAcsSize, @Config.AcsSeeFailed, Topic + 'ACS to see failed files');
|
||||
Form.AddStr (#0, ' DL Failed', 47, 11, 60, 11, 11, 15, mysMaxAcsSize, @Config.AcsDLFailed, Topic + 'ACS to download failed files');
|
||||
Form.AddStr (#0, ' See Offline', 45, 12, 60, 12, 13, 15, mysMaxAcsSize, @Config.AcsSeeOffline, Topic + 'ACS to see offline files');
|
||||
Form.AddLong ('C', ' Min Upload Space', 40, 13, 60, 13, 18, 9, 0, 999999999, @Config.FreeUL, Topic + 'Min space to allow uploads (kb)');
|
||||
Form.AddLong ('-', ' Min CD-ROM Space', 40, 14, 60, 14, 18, 9, 0, 999999999, @Config.FreeCDROM, Topic + 'Min space for CD-ROM copy (kb)');
|
||||
Form.AddChar (#0, ' Default Protocol', 40, 15, 60, 15, 18, 32, 96, @Config.FProtocol, Topic + 'Default Protocol hotkey');
|
||||
Form.AddStr ('U', ' Auto Validate', 43, 7, 60, 7, 15, 15, mysMaxAcsSize, @bbsCfg.AcsValidate, Topic + 'ACS to auto-validate uploads');
|
||||
Form.AddStr ('E', ' See Unvalidated', 41, 8, 60, 8, 17, 15, mysMaxAcsSize, @bbsCfg.AcsSeeUnvalid, Topic + 'ACS to see unvalidated files');
|
||||
Form.AddStr ('N', ' DL Unvalidated', 42, 9, 60, 9, 16, 15, mysMaxAcsSize, @bbsCfg.AcsDLUnvalid, Topic + 'ACS to download unvalidated files');
|
||||
Form.AddStr ('F', ' See Failed', 46, 10, 60, 10, 12, 15, mysMaxAcsSize, @bbsCfg.AcsSeeFailed, Topic + 'ACS to see failed files');
|
||||
Form.AddStr (#0, ' DL Failed', 47, 11, 60, 11, 11, 15, mysMaxAcsSize, @bbsCfg.AcsDLFailed, Topic + 'ACS to download failed files');
|
||||
Form.AddStr (#0, ' See Offline', 45, 12, 60, 12, 13, 15, mysMaxAcsSize, @bbsCfg.AcsSeeOffline, Topic + 'ACS to see offline files');
|
||||
Form.AddLong ('C', ' Min Upload Space', 40, 13, 60, 13, 18, 9, 0, 999999999, @bbsCfg.FreeUL, Topic + 'Min space to allow uploads (kb)');
|
||||
Form.AddLong ('-', ' Min CD-ROM Space', 40, 14, 60, 14, 18, 9, 0, 999999999, @bbsCfg.FreeCDROM, Topic + 'Min space for CD-ROM copy (kb)');
|
||||
Form.AddChar (#0, ' Default Protocol', 40, 15, 60, 15, 18, 32, 96, @bbsCfg.FProtocol, Topic + 'Default Protocol hotkey');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
|
@ -247,14 +248,14 @@ Begin
|
|||
|
||||
VerticalLine (31, 9, 16);
|
||||
|
||||
Form.AddPath ('L', ' Local QWK Path', 15, 9, 33, 9, 16, 40, mysMaxPathSize, @Config.QWKPath, Topic + 'Directory for local QWK packets');
|
||||
Form.AddStr ('I', ' QWK Packet ID', 16, 10, 33, 10, 15, 8, 8, @Config.QwkBBSID, Topic + 'QWK packet filename');
|
||||
Form.AddStr ('A', ' QWK Archive', 18, 11, 33, 11, 13, 4, 4, @Config.QwkArchive, Topic + 'QWK Archive');
|
||||
Form.AddWord ('P', ' Max Messages/Packet', 10, 12, 33, 12, 21, 5, 0, 65535, @Config.QwkMaxPacket, Topic + 'Max messages per packet (0/Unlimited)');
|
||||
Form.AddWord ('B', ' Max Messages/Base', 12, 13, 33, 13, 19, 5, 0, 65535, @Config.QwkMaxBase, Topic + 'Max message per base (0/Unlimited)');
|
||||
Form.AddStr ('W', ' Welcome File', 17, 14, 33, 14, 14, 40, mysMaxPathSize, @Config.QWKWelcome, Topic + 'Welcome filename');
|
||||
Form.AddStr ('N', ' News File', 20, 15, 33, 15, 11, 40, mysMaxPathSize, @Config.QWKNews, Topic + 'New filename');
|
||||
Form.AddStr ('G', ' Goodbye File', 17, 16, 33, 16, 14, 40, mysMaxPathSize, @Config.QWKGoodbye, Topic + 'Goodbye filename');
|
||||
Form.AddPath ('L', ' Local QWK Path', 15, 9, 33, 9, 16, 40, mysMaxPathSize, @bbsCfg.QWKPath, Topic + 'Directory for local QWK packets');
|
||||
Form.AddStr ('I', ' QWK Packet ID', 16, 10, 33, 10, 15, 8, 8, @bbsCfg.QwkBBSID, Topic + 'QWK packet filename');
|
||||
Form.AddStr ('A', ' QWK Archive', 18, 11, 33, 11, 13, 4, 4, @bbsCfg.QwkArchive, Topic + 'QWK Archive');
|
||||
Form.AddWord ('P', ' Max Messages/Packet', 10, 12, 33, 12, 21, 5, 0, 65535, @bbsCfg.QwkMaxPacket, Topic + 'Max messages per packet (0/Unlimited)');
|
||||
Form.AddWord ('B', ' Max Messages/Base', 12, 13, 33, 13, 19, 5, 0, 65535, @bbsCfg.QwkMaxBase, Topic + 'Max message per base (0/Unlimited)');
|
||||
Form.AddStr ('W', ' Welcome File', 17, 14, 33, 14, 14, 40, mysMaxPathSize, @bbsCfg.QWKWelcome, Topic + 'Welcome filename');
|
||||
Form.AddStr ('N', ' News File', 20, 15, 33, 15, 11, 40, mysMaxPathSize, @bbsCfg.QWKNews, Topic + 'New filename');
|
||||
Form.AddStr ('G', ' Goodbye File', 17, 16, 33, 16, 14, 40, mysMaxPathSize, @bbsCfg.QWKGoodbye, Topic + 'Goodbye filename');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
|
@ -281,10 +282,10 @@ Begin
|
|||
|
||||
VerticalLine (31, 11, 14);
|
||||
|
||||
Form.AddStr ('D', ' Domain', 23, 11, 33, 11, 8, 25, 25, @Config.inetDomain, Topic + 'Internet domain name');
|
||||
Form.AddStr ('I', ' Interface', 20, 12, 33, 12, 11, 23, 23, @Config.inetInterface, Topic + 'Network interface IP address');
|
||||
Form.AddBol ('B', ' IP Blocking', 18, 13, 33, 13, 13, 3, @Config.inetIPBlocking, Topic + 'Enable IP blocking');
|
||||
Form.AddBol ('L', ' IP Logging', 19, 14, 33, 14, 12, 3, @Config.inetIPLogging, Topic + 'Enable IP logging');
|
||||
Form.AddStr ('D', ' Domain', 23, 11, 33, 11, 8, 25, 25, @bbsCfg.inetDomain, Topic + 'Internet domain name');
|
||||
Form.AddStr ('I', ' Interface', 20, 12, 33, 12, 11, 23, 23, @bbsCfg.inetInterface, Topic + 'Network interface IP address');
|
||||
Form.AddBol ('B', ' IP Blocking', 18, 13, 33, 13, 13, 3, @bbsCfg.inetIPBlocking, Topic + 'Enable IP blocking');
|
||||
Form.AddBol ('L', ' IP Logging', 19, 14, 33, 14, 12, 3, @bbsCfg.inetIPLogging, Topic + 'Enable IP logging');
|
||||
|
||||
Form.Execute;
|
||||
|
||||
|
@ -311,14 +312,14 @@ Begin
|
|||
|
||||
VerticalLine (47, 9, 16);
|
||||
|
||||
Form.AddBol ('U', ' Use FTP Server', 31, 9, 49, 9, 16, 3, @Config.inetFTPUse, Topic + 'Enable FTP server');
|
||||
Form.AddWord ('P', ' Server Port', 34, 10, 49, 10, 13, 5, 0, 65535, @Config.inetFTPPort, Topic + 'FTP Server port');
|
||||
Form.AddWord ('M', ' Max Connections', 30, 11, 49, 11, 17, 5, 0, 65535, @Config.inetFTPMax, Topic + 'Max concurrent connections');
|
||||
Form.AddWord ('C', ' Connection Timeout', 27, 12, 49, 12, 20, 5, 0, 65535, @Config.inetFTPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddByte ('D', ' Dupe IP Limit', 32, 13, 49, 13, 15, 3, 2, 255, @Config.inetFTPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('I', ' Data Port Min', 32, 14, 49, 14, 15, 5, 0, 65535, @Config.inetFTPPortMin, Topic + 'Passive port range (minimum)');
|
||||
Form.AddWord ('A', ' Data Port Max', 32, 15, 49, 15, 15, 5, 0, 65535, @Config.inetFTPPortMax, Topic + 'Passive port range (maximum)');
|
||||
Form.AddBol ('Y', ' Allow Passive', 32, 16, 49, 16, 15, 3, @Config.inetFTPPassive, Topic + 'Allow passive data transfers');
|
||||
Form.AddBol ('U', ' Use FTP Server', 31, 9, 49, 9, 16, 3, @bbsCfg.inetFTPUse, Topic + 'Enable FTP server');
|
||||
Form.AddWord ('P', ' Server Port', 34, 10, 49, 10, 13, 5, 0, 65535, @bbsCfg.inetFTPPort, Topic + 'FTP Server port');
|
||||
Form.AddWord ('M', ' Max Connections', 30, 11, 49, 11, 17, 5, 0, 65535, @bbsCfg.inetFTPMax, Topic + 'Max concurrent connections');
|
||||
Form.AddWord ('C', ' Connection Timeout', 27, 12, 49, 12, 20, 5, 0, 65535, @bbsCfg.inetFTPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddByte ('D', ' Dupe IP Limit', 32, 13, 49, 13, 15, 3, 2, 255, @bbsCfg.inetFTPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('I', ' Data Port Min', 32, 14, 49, 14, 15, 5, 0, 65535, @bbsCfg.inetFTPPortMin, Topic + 'Passive port range (minimum)');
|
||||
Form.AddWord ('A', ' Data Port Max', 32, 15, 49, 15, 15, 5, 0, 65535, @bbsCfg.inetFTPPortMax, Topic + 'Passive port range (maximum)');
|
||||
Form.AddBol ('Y', ' Allow Passive', 32, 16, 49, 16, 15, 3, @bbsCfg.inetFTPPassive, Topic + 'Allow passive data transfers');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -344,11 +345,11 @@ Begin
|
|||
|
||||
VerticalLine (46, 11, 15);
|
||||
|
||||
Form.AddBol ('U', ' Use Telnet Server', 27, 11, 48, 11, 19, 3, @Config.inetTNUse, Topic + 'Enable Telnet server');
|
||||
Form.AddByte ('N', ' Telnet Nodes', 32, 12, 48, 12, 14, 3, 1, 255, @Config.inetTNNodes, Topic + 'Max telnet nodes to allow');
|
||||
Form.AddWord ('P', ' Server Port', 33, 13, 48, 13, 13, 5, 0, 65535, @Config.inetTNPort, Topic + 'Telnet Server port');
|
||||
Form.AddByte ('D', ' Dupe IP Limit', 31, 14, 48, 14, 15, 3, 1, 255, @Config.inetTNDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddBol ('S', ' Start Hidden', 32, 15, 48, 15, 14, 3, @Config.inetTNHidden, Topic + 'Hide node windows (Windows)');
|
||||
Form.AddBol ('U', ' Use Telnet Server', 27, 11, 48, 11, 19, 3, @bbsCfg.inetTNUse, Topic + 'Enable Telnet server');
|
||||
Form.AddByte ('N', ' Telnet Nodes', 32, 12, 48, 12, 14, 3, 1, 255, @bbsCfg.inetTNNodes, Topic + 'Max telnet nodes to allow');
|
||||
Form.AddWord ('P', ' Server Port', 33, 13, 48, 13, 13, 5, 0, 65535, @bbsCfg.inetTNPort, Topic + 'Telnet Server port');
|
||||
Form.AddByte ('D', ' Dupe IP Limit', 31, 14, 48, 14, 15, 3, 1, 255, @bbsCfg.inetTNDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddBol ('S', ' Start Hidden', 32, 15, 48, 15, 14, 3, @bbsCfg.inetTNHidden, Topic + 'Hide node windows (Windows)');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -374,12 +375,12 @@ Begin
|
|||
|
||||
VerticalLine (45, 10, 15);
|
||||
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @Config.inetPOP3Use, Topic + 'Enable POP3 server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @Config.inetPOP3Port, Topic + 'POP3 Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @Config.inetPOP3Max, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @Config.inetPOP3Dupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @Config.inetPOP3Timeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddBol ('D', ' Delete', 37, 15, 47, 15, 8, 3, @Config.inetPOP3Delete, Topic + 'Delete email on retreive');
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @bbsCfg.inetPOP3Use, Topic + 'Enable POP3 server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @bbsCfg.inetPOP3Port, Topic + 'POP3 Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @bbsCfg.inetPOP3Max, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @bbsCfg.inetPOP3Dupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @bbsCfg.inetPOP3Timeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddBol ('D', ' Delete', 37, 15, 47, 15, 8, 3, @bbsCfg.inetPOP3Delete, Topic + 'Delete email on retreive');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -405,12 +406,12 @@ Begin
|
|||
|
||||
VerticalLine (45, 10, 15);
|
||||
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @Config.inetBINKPUse, Topic + 'Enable BINKP server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @Config.inetBINKPPort, Topic + 'BINKP Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @Config.inetBINKPMax, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @Config.inetBINKPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @Config.inetBINKPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddBol ('F', ' Force CRAM-MD5', 29, 15, 47, 15, 16, 3, @Config.inetBINKPCram5, Topic + 'Force CRAM-MD5 auth');
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @bbsCfg.inetBINKPUse, Topic + 'Enable BINKP server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @bbsCfg.inetBINKPPort, Topic + 'BINKP Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @bbsCfg.inetBINKPMax, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @bbsCfg.inetBINKPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @bbsCfg.inetBINKPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddBol ('F', ' Force CRAM-MD5', 29, 15, 47, 15, 16, 3, @bbsCfg.inetBINKPCram5, Topic + 'Force CRAM-MD5 auth');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -436,11 +437,11 @@ Begin
|
|||
|
||||
VerticalLine (45, 10, 14);
|
||||
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @Config.inetSMTPUse, Topic + 'Enable SMTP server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @Config.inetSMTPPort, Topic + 'Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @Config.inetSMTPMax, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @Config.inetSMTPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @Config.inetSMTPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @bbsCfg.inetSMTPUse, Topic + 'Enable SMTP server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @bbsCfg.inetSMTPPort, Topic + 'Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @bbsCfg.inetSMTPMax, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @bbsCfg.inetSMTPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @bbsCfg.inetSMTPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -466,11 +467,11 @@ Begin
|
|||
|
||||
VerticalLine (45, 10, 14);
|
||||
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @Config.inetNNTPUse, Topic + 'Enable NNTP server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @Config.inetNNTPPort, Topic + 'Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @Config.inetNNTPMax, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @Config.inetNNTPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @Config.inetNNTPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
Form.AddBol ('U', ' Use Server', 33, 10, 47, 10, 12, 3, @bbsCfg.inetNNTPUse, Topic + 'Enable NNTP server');
|
||||
Form.AddWord ('P', ' Server Port', 32, 11, 47, 11, 13, 5, 0, 65535, @bbsCfg.inetNNTPPort, Topic + 'Server port');
|
||||
Form.AddByte ('N', ' Max Connections', 28, 12, 47, 12, 17, 3, 1, 255, @bbsCfg.inetNNTPMax, Topic + 'Max Connections');
|
||||
Form.AddByte ('I', ' Dupe IP Limit', 30, 13, 47, 13, 15, 3, 1, 255, @bbsCfg.inetNNTPDupes, Topic + 'Max connections with same IP');
|
||||
Form.AddWord ('T', ' Timeout', 36, 14, 47, 14, 9, 5, 0, 65535, @bbsCfg.inetNNTPTimeout, Topic + 'Connection timeout (seconds)');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -497,27 +498,27 @@ Begin
|
|||
VerticalLine (27, 7, 17);
|
||||
VerticalLine (65, 7, 14);
|
||||
|
||||
Form.AddBol ('C', ' List Compression', 9, 7, 29, 7, 18, 3, @Config.MCompress, Topic + 'Compress numbers in area list?');
|
||||
Form.AddByte ('I', ' List Columns', 13, 8, 29, 8, 14, 3, 1, 2, @Config.MColumns, Topic + 'Columns in area list');
|
||||
Form.AddBol ('S', ' Show Message Header', 6, 9, 29, 9, 21, 3, @Config.MShowHeader, Topic + 'Redisplay header after each page');
|
||||
Form.AddBol ('B', ' Bases in Group List', 6, 10, 29, 10, 21, 3, @Config.MShowBases, Topic + 'Calculate bases in group list?');
|
||||
Form.AddByte ('X', ' Max AutoSig Lines', 8, 11, 29, 11, 19, 3, 1, 99, @Config.MaxAutoSig, Topic + 'Max autosig lines');
|
||||
Form.AddBol ('S', ' Force NL Match', 11, 12, 29, 12, 16, 3, @Config.ForceNodeList, Topic + 'Force nodelist lookup match when sending netmail?');
|
||||
Form.AddStr ('R', ' Ext Reply ACS', 12, 13, 29, 13, 15, 20, 30, @Config.AcsExtReply, Topic + 'ACS: Allow users to select reply base');
|
||||
Form.AddStr ('A', ' Attachment ACS', 11, 14, 29, 14, 16, 20, 30, @Config.AcsFileAttach, Topic + 'ACS: Allow file attachments');
|
||||
Form.AddBol ('T', ' External FSE', 13, 15, 29, 15, 14, 3, @Config.FSEditor, Topic + 'Use external editor');
|
||||
Form.AddStr ('F', ' FSE Command Line', 9, 16, 29, 16, 18, 40, 60, @Config.FSCommand, Topic + 'FSE command line');
|
||||
Form.AddStr ('D', ' Default Origin', 11, 17, 29, 17, 16, 40, 50, @Config.Origin, Topic + 'Origin line for new bases');
|
||||
// Form.AddStr ('2', ' Default Domain', 11, 18, 29, 18, 16, 8, 8, @Config.DefDomain, Topic + 'Default echomail domain');
|
||||
Form.AddBol ('C', ' List Compression', 9, 7, 29, 7, 18, 3, @bbsCfg.MCompress, Topic + 'Compress numbers in area list?');
|
||||
Form.AddByte ('I', ' List Columns', 13, 8, 29, 8, 14, 3, 1, 2, @bbsCfg.MColumns, Topic + 'Columns in area list');
|
||||
Form.AddBol ('S', ' Show Message Header', 6, 9, 29, 9, 21, 3, @bbsCfg.MShowHeader, Topic + 'Redisplay header after each page');
|
||||
Form.AddBol ('B', ' Bases in Group List', 6, 10, 29, 10, 21, 3, @bbsCfg.MShowBases, Topic + 'Calculate bases in group list?');
|
||||
Form.AddByte ('X', ' Max AutoSig Lines', 8, 11, 29, 11, 19, 3, 1, 99, @bbsCfg.MaxAutoSig, Topic + 'Max autosig lines');
|
||||
Form.AddBol ('S', ' Force NL Match', 11, 12, 29, 12, 16, 3, @bbsCfg.ForceNodeList, Topic + 'Force nodelist lookup match when sending netmail?');
|
||||
Form.AddStr ('R', ' Ext Reply ACS', 12, 13, 29, 13, 15, 20, 30, @bbsCfg.AcsExtReply, Topic + 'ACS: Allow users to select reply base');
|
||||
Form.AddStr ('A', ' Attachment ACS', 11, 14, 29, 14, 16, 20, 30, @bbsCfg.AcsFileAttach, Topic + 'ACS: Allow file attachments');
|
||||
Form.AddBol ('T', ' External FSE', 13, 15, 29, 15, 14, 3, @bbsCfg.FSEditor, Topic + 'Use external editor');
|
||||
Form.AddStr ('F', ' FSE Command Line', 9, 16, 29, 16, 18, 40, 60, @bbsCfg.FSCommand, Topic + 'FSE command line');
|
||||
Form.AddStr ('D', ' Default Origin', 11, 17, 29, 17, 16, 40, 50, @bbsCfg.Origin, Topic + 'Origin line for new bases');
|
||||
// Form.AddStr ('2', ' Default Domain', 11, 18, 29, 18, 16, 8, 8, @bbsCfg.DefDomain, Topic + 'Default echomail domain');
|
||||
|
||||
Form.AddAttr ('Q', ' Quote Color', 52, 7, 67, 7, 13, @Config.ColorQuote, Topic + 'Color for quoted text');
|
||||
Form.AddAttr ('E', ' Text Color' , 53, 8, 67, 8, 12, @Config.ColorText, Topic + 'Color for message text');
|
||||
Form.AddAttr ('O', ' Tear Color' , 53, 9, 67, 9, 12, @Config.ColorTear, Topic + 'Color for tear line');
|
||||
Form.AddAttr ('L', ' Origin Color', 51, 10, 67, 10, 14, @Config.ColorOrigin, Topic + 'Color for origin line');
|
||||
Form.AddAttr ('K', ' Kludge Color', 51, 11, 67, 11, 14, @Config.ColorKludge, Topic + 'Color for kludge line');
|
||||
Form.AddBol ('N', ' Netmail Crash', 50, 12, 67, 12, 15, 3, @Config.NetCrash, Topic + 'Use netmail crash flag');
|
||||
Form.AddBol ('M', ' Netmail Hold', 51, 13, 67, 13, 14, 3, @Config.NetHold, Topic + 'Use netmail hold flag');
|
||||
Form.AddBol ('1', ' Netmail Killsent', 47, 14, 67, 14, 18, 3, @Config.NetKillsent, Topic + 'Use netmail killsent flag');
|
||||
Form.AddAttr ('Q', ' Quote Color', 52, 7, 67, 7, 13, @bbsCfg.ColorQuote, Topic + 'Color for quoted text');
|
||||
Form.AddAttr ('E', ' Text Color' , 53, 8, 67, 8, 12, @bbsCfg.ColorText, Topic + 'Color for message text');
|
||||
Form.AddAttr ('O', ' Tear Color' , 53, 9, 67, 9, 12, @bbsCfg.ColorTear, Topic + 'Color for tear line');
|
||||
Form.AddAttr ('L', ' Origin Color', 51, 10, 67, 10, 14, @bbsCfg.ColorOrigin, Topic + 'Color for origin line');
|
||||
Form.AddAttr ('K', ' Kludge Color', 51, 11, 67, 11, 14, @bbsCfg.ColorKludge, Topic + 'Color for kludge line');
|
||||
Form.AddBol ('N', ' Netmail Crash', 50, 12, 67, 12, 15, 3, @bbsCfg.NetCrash, Topic + 'Use netmail crash flag');
|
||||
Form.AddBol ('M', ' Netmail Hold', 51, 13, 67, 13, 14, 3, @bbsCfg.NetHold, Topic + 'Use netmail hold flag');
|
||||
Form.AddBol ('1', ' Netmail Killsent', 47, 14, 67, 14, 18, 3, @bbsCfg.NetKillsent, Topic + 'Use netmail killsent flag');
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -543,14 +544,14 @@ Begin
|
|||
|
||||
VerticalLine (39, 7, 14);
|
||||
|
||||
Form.AddBol ('A', ' Allow New Users', 22, 7, 41, 7, 17, 3, @Config.AllowNewUsers, Topic);
|
||||
Form.AddByte ('S', ' Security', 29, 8, 41, 8, 10, 3, 1, 255, @Config.NewUserSec, Topic);
|
||||
Form.AddPass ('P', ' Password', 29, 9, 41, 9, 10, 15, 15, @Config.NewUserPW, Topic);
|
||||
Form.AddBol ('N', ' New User Feedback', 20, 10, 41, 10, 19, 3, @Config.NewUserEmail, Topic);
|
||||
Form.AddBol ('U', ' Use USA Phone', 24, 11, 41, 11, 15, 3, @Config.UseUSAPhone, Topic);
|
||||
Form.AddTog ('E', ' User Name Format', 21, 12, 41, 12, 18, 8, 0, 3, 'As_Typed Upper Lower Proper', @Config.UserNameFormat, Topic);
|
||||
Form.AddWord ('T', ' Start Msg Group', 22, 13, 41, 13, 17, 5, 0, 65535, @Config.StartMGroup, Topic);
|
||||
Form.AddWord ('R', ' Start File Group', 21, 14, 41, 14, 18, 5, 0, 65535, @Config.StartFGroup, Topic);
|
||||
Form.AddBol ('A', ' Allow New Users', 22, 7, 41, 7, 17, 3, @bbsCfg.AllowNewUsers, Topic);
|
||||
Form.AddByte ('S', ' Security', 29, 8, 41, 8, 10, 3, 1, 255, @bbsCfg.NewUserSec, Topic);
|
||||
Form.AddPass ('P', ' Password', 29, 9, 41, 9, 10, 15, 15, @bbsCfg.NewUserPW, Topic);
|
||||
Form.AddBol ('N', ' New User Feedback', 20, 10, 41, 10, 19, 3, @bbsCfg.NewUserEmail, Topic);
|
||||
Form.AddBol ('U', ' Use USA Phone', 24, 11, 41, 11, 15, 3, @bbsCfg.UseUSAPhone, Topic);
|
||||
Form.AddTog ('E', ' User Name Format', 21, 12, 41, 12, 18, 8, 0, 3, 'As_Typed Upper Lower Proper', @bbsCfg.UserNameFormat, Topic);
|
||||
Form.AddWord ('T', ' Start Msg Group', 22, 13, 41, 13, 17, 5, 0, 65535, @bbsCfg.StartMGroup, Topic);
|
||||
Form.AddWord ('R', ' Start File Group', 21, 14, 41, 14, 18, 5, 0, 65535, @bbsCfg.StartFGroup, Topic);
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -577,30 +578,30 @@ Begin
|
|||
VerticalLine (25, 7, 19);
|
||||
VerticalLine (58, 7, 16);
|
||||
|
||||
Form.AddBol ('A', ' Ask Theme', 14, 7, 27, 7, 11, 3, @Config.AskTheme, Topic);
|
||||
Form.AddBol ('S', ' Ask Real Name', 10, 8, 27, 8, 15, 3, @Config.AskRealName, Topic);
|
||||
Form.AddBol ('K', ' Ask Alias', 14, 9, 27, 9, 11, 3, @Config.AskAlias, Topic);
|
||||
Form.AddBol ('T', ' Ask Street', 13, 10, 27, 10, 12, 3, @Config.AskStreet, Topic);
|
||||
Form.AddBol ('C', ' Ask City/State', 9, 11, 27, 11, 16, 3, @Config.AskCityState, Topic);
|
||||
Form.AddBol ('Z', ' Ask ZipCode', 12, 12, 27, 12, 13, 3, @Config.AskZipCode, Topic);
|
||||
Form.AddBol ('H', ' Ask Home Phone', 9, 13, 27, 13, 16, 3, @Config.AskHomePhone, Topic);
|
||||
Form.AddBol ('E', ' Ask Cell Phone', 9, 14, 27, 14, 16, 3, @Config.AskDataPhone, Topic);
|
||||
Form.AddBol ('I', ' Ask Birthdate', 10, 15, 27, 15, 15, 3, @Config.AskBirthdate, Topic);
|
||||
Form.AddBol ('G', ' Ask Gender', 13, 16, 27, 16, 12, 3, @Config.AskGender, Topic);
|
||||
Form.AddBol ('M', ' Ask Email', 14, 17, 27, 17, 11, 3, @Config.AskEmail, Topic);
|
||||
Form.AddBol ('L', ' Ask UserNote', 11, 18, 27, 18, 14, 3, @Config.AskUserNote, Topic);
|
||||
Form.AddBol ('R', ' Ask Screensize', 9, 19, 27, 19, 16, 3, @Config.AskScreenSize, Topic);
|
||||
Form.AddBol ('A', ' Ask Theme', 14, 7, 27, 7, 11, 3, @bbsCfg.AskTheme, Topic);
|
||||
Form.AddBol ('S', ' Ask Real Name', 10, 8, 27, 8, 15, 3, @bbsCfg.AskRealName, Topic);
|
||||
Form.AddBol ('K', ' Ask Alias', 14, 9, 27, 9, 11, 3, @bbsCfg.AskAlias, Topic);
|
||||
Form.AddBol ('T', ' Ask Street', 13, 10, 27, 10, 12, 3, @bbsCfg.AskStreet, Topic);
|
||||
Form.AddBol ('C', ' Ask City/State', 9, 11, 27, 11, 16, 3, @bbsCfg.AskCityState, Topic);
|
||||
Form.AddBol ('Z', ' Ask ZipCode', 12, 12, 27, 12, 13, 3, @bbsCfg.AskZipCode, Topic);
|
||||
Form.AddBol ('H', ' Ask Home Phone', 9, 13, 27, 13, 16, 3, @bbsCfg.AskHomePhone, Topic);
|
||||
Form.AddBol ('E', ' Ask Cell Phone', 9, 14, 27, 14, 16, 3, @bbsCfg.AskDataPhone, Topic);
|
||||
Form.AddBol ('I', ' Ask Birthdate', 10, 15, 27, 15, 15, 3, @bbsCfg.AskBirthdate, Topic);
|
||||
Form.AddBol ('G', ' Ask Gender', 13, 16, 27, 16, 12, 3, @bbsCfg.AskGender, Topic);
|
||||
Form.AddBol ('M', ' Ask Email', 14, 17, 27, 17, 11, 3, @bbsCfg.AskEmail, Topic);
|
||||
Form.AddBol ('L', ' Ask UserNote', 11, 18, 27, 18, 14, 3, @bbsCfg.AskUserNote, Topic);
|
||||
Form.AddBol ('R', ' Ask Screensize', 9, 19, 27, 19, 16, 3, @bbsCfg.AskScreenSize, Topic);
|
||||
|
||||
Form.AddTog ('D', ' Date Type', 47, 7, 60, 7, 11, 8, 1, 4, 'MM/DD/YY DD/MM/YY YY/DD/MM Ask', @Config.UserDateType, Topic);
|
||||
Form.AddTog ('O', ' Hot Keys', 48, 8, 60, 8, 10, 3, 0, 2, 'No Yes Ask', @Config.UserHotKeys, Topic);
|
||||
Form.AddTog ('P', ' Protocol', 48, 9, 60, 9, 10, 3, 0, 2, 'No Yes Ask', @Config.UserProtocol, Topic);
|
||||
Form.AddTog ('N', ' Node Chat', 47, 10, 60, 10, 11, 6, 0, 2, 'Normal ANSI Ask', @Config.UserFullChat, Topic);
|
||||
Form.AddTog ('F', ' File List', 47, 11, 60, 11, 11, 6, 0, 2, 'Normal ANSI Ask', @Config.UserFileList, Topic);
|
||||
Form.AddTog ('1', ' Message Reader', 42, 12, 60, 12, 16, 6, 0, 2, 'Normal ANSI Ask', @Config.UserReadType, Topic);
|
||||
Form.AddTog ('2', ' Read at Index', 43, 13, 60, 13, 15, 3, 0, 2, 'No Yes Ask', @Config.UserReadIndex, Topic);
|
||||
Form.AddTog ('3', ' Email at Index', 42, 14, 60, 14, 16, 3, 0, 2, 'No Yes Ask', @Config.UserMailIndex, Topic);
|
||||
Form.AddTog ('4', ' Message Editor', 42, 15, 60, 15, 16, 4, 0, 2, 'Line Full Ask', @Config.UserEditorType, Topic);
|
||||
Form.AddTog ('5', ' Quote Mode', 46, 16, 60, 16, 12, 6, 0, 2, 'Line Window Ask', @Config.UserQuoteWin, Topic);
|
||||
Form.AddTog ('D', ' Date Type', 47, 7, 60, 7, 11, 8, 1, 4, 'MM/DD/YY DD/MM/YY YY/DD/MM Ask', @bbsCfg.UserDateType, Topic);
|
||||
Form.AddTog ('O', ' Hot Keys', 48, 8, 60, 8, 10, 3, 0, 2, 'No Yes Ask', @bbsCfg.UserHotKeys, Topic);
|
||||
Form.AddTog ('P', ' Protocol', 48, 9, 60, 9, 10, 3, 0, 2, 'No Yes Ask', @bbsCfg.UserProtocol, Topic);
|
||||
Form.AddTog ('N', ' Node Chat', 47, 10, 60, 10, 11, 6, 0, 2, 'Normal ANSI Ask', @bbsCfg.UserFullChat, Topic);
|
||||
Form.AddTog ('F', ' File List', 47, 11, 60, 11, 11, 6, 0, 2, 'Normal ANSI Ask', @bbsCfg.UserFileList, Topic);
|
||||
Form.AddTog ('1', ' Message Reader', 42, 12, 60, 12, 16, 6, 0, 2, 'Normal ANSI Ask', @bbsCfg.UserReadType, Topic);
|
||||
Form.AddTog ('2', ' Read at Index', 43, 13, 60, 13, 15, 3, 0, 2, 'No Yes Ask', @bbsCfg.UserReadIndex, Topic);
|
||||
Form.AddTog ('3', ' Email at Index', 42, 14, 60, 14, 16, 3, 0, 2, 'No Yes Ask', @bbsCfg.UserMailIndex, Topic);
|
||||
Form.AddTog ('4', ' Message Editor', 42, 15, 60, 15, 16, 4, 0, 2, 'Line Full Ask', @bbsCfg.UserEditorType, Topic);
|
||||
Form.AddTog ('5', ' Quote Mode', 46, 16, 60, 16, 12, 6, 0, 2, 'Line Window Ask', @bbsCfg.UserQuoteWin, Topic);
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
@ -629,12 +630,12 @@ Begin
|
|||
VerticalLine (64, 7, 10);
|
||||
|
||||
For Count := 1 to 8 Do
|
||||
Form.AddStr (strI2S(Count)[1], ' F' + strI2S(Count) + ' Macro', 7, 6 + Count, 19, 6 + Count, 10, 30, 60, @Config.SysopMacro[Count], Topic);
|
||||
Form.AddStr (strI2S(Count)[1], ' F' + strI2S(Count) + ' Macro', 7, 6 + Count, 19, 6 + Count, 10, 30, 60, @bbsCfg.SysopMacro[Count], Topic);
|
||||
|
||||
Form.AddBol ('S', ' Status Bar', 52, 7, 66, 7, 12, 3, @Config.UseStatusBar, Topic);
|
||||
Form.AddAttr ('1', ' Color 1', 55, 8, 66, 8, 9, @Config.StatusColor1, Topic);
|
||||
Form.AddAttr ('2', ' Color 2', 55, 9, 66, 9, 9, @Config.StatusColor2, Topic);
|
||||
Form.AddAttr ('3', ' Color 3', 55, 10, 66, 10, 9, @Config.StatusColor3, Topic);
|
||||
Form.AddBol ('S', ' Status Bar', 52, 7, 66, 7, 12, 3, @bbsCfg.UseStatusBar, Topic);
|
||||
Form.AddAttr ('1', ' Color 1', 55, 8, 66, 8, 9, @bbsCfg.StatusColor1, Topic);
|
||||
Form.AddAttr ('2', ' Color 2', 55, 9, 66, 9, 9, @bbsCfg.StatusColor2, Topic);
|
||||
Form.AddAttr ('3', ' Color 3', 55, 10, 66, 10, 9, @bbsCfg.StatusColor3, Topic);
|
||||
|
||||
Form.Execute;
|
||||
Form.Free;
|
||||
|
|
|
@ -17,6 +17,7 @@ Uses
|
|||
bbs_Ansi_MenuInput,
|
||||
bbs_Core,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_Cfg_Common;
|
||||
|
||||
(*
|
||||
|
@ -45,7 +46,7 @@ Var
|
|||
Temp : String;
|
||||
DoneNum : Integer;
|
||||
Begin
|
||||
Assign (PromptFile, Config.DataPath + Theme.FileName + '.thm');
|
||||
Assign (PromptFile, bbsCfg.DataPath + Theme.FileName + '.thm');
|
||||
|
||||
{$I-} ReWrite (PromptFile); {$I+}
|
||||
|
||||
|
@ -54,7 +55,7 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
Assign (InFile, Config.SystemPath + Theme.FileName + '.txt');
|
||||
Assign (InFile, bbsCfg.SystemPath + Theme.FileName + '.txt');
|
||||
Reset (InFile);
|
||||
|
||||
ShowMsgBox (3, 'Compiling: ');
|
||||
|
@ -151,13 +152,13 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (InFile, Config.DataPath + Theme.FileName + '.txt');
|
||||
Assign (InFile, bbsCfg.DataPath + Theme.FileName + '.txt');
|
||||
SetTextBuf (InFile, Buffer, SizeOf(Buffer));
|
||||
|
||||
{$I-} Reset (InFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then Begin
|
||||
ShowMsgBox (0, 'Unable to open ' + Config.DataPath + Theme.FileName + '.txt');
|
||||
ShowMsgBox (0, 'Unable to open ' + bbsCfg.DataPath + Theme.FileName + '.txt');
|
||||
Exit;
|
||||
End;
|
||||
|
||||
|
@ -571,7 +572,7 @@ Begin
|
|||
If ShowMsgBox(1, 'Save changes?') Then Begin
|
||||
// Saved := True;
|
||||
|
||||
Assign (InFile, Config.DataPath + Theme.FileName + '.txt');
|
||||
Assign (InFile, bbsCfg.DataPath + Theme.FileName + '.txt');
|
||||
ReWrite (InFile);
|
||||
|
||||
For Count := 1 to TotalText Do Begin
|
||||
|
@ -741,7 +742,7 @@ Var
|
|||
Copied : RecTheme;
|
||||
HasCopy : Boolean = False;
|
||||
Begin
|
||||
Assign (ThemeFile, Config.DataPath + 'theme.dat');
|
||||
Assign (ThemeFile, bbsCfg.DataPath + 'theme.dat');
|
||||
|
||||
If Not ioReset(ThemeFile, Sizeof(RecTheme), fmRWDN) Then
|
||||
If Not ioReWrite(ThemeFile, SizeOf(RecTheme), fmRWDN) Then
|
||||
|
@ -789,10 +790,10 @@ Begin
|
|||
Flags := ThmAllowANSI OR ThmAllowASCII OR ThmFallback OR ThmLightbarYN;
|
||||
FileName := 'new';
|
||||
Desc := FileName;
|
||||
TextPath := Config.TextPath;
|
||||
MenuPath := Config.MenuPath;
|
||||
ScriptPath := Config.ScriptPath;
|
||||
TemplatePath := Config.TextPath;
|
||||
TextPath := bbsCfg.TextPath;
|
||||
MenuPath := bbsCfg.MenuPath;
|
||||
ScriptPath := bbsCfg.ScriptPath;
|
||||
TemplatePath := bbsCfg.TextPath;
|
||||
Colors[0] := 1;
|
||||
Colors[1] := 9;
|
||||
Colors[2] := 11;
|
||||
|
|
|
@ -3,7 +3,8 @@ Unit bbs_Cfg_UserEdit;
|
|||
Interface
|
||||
|
||||
Uses
|
||||
bbs_Common;
|
||||
bbs_Common,
|
||||
bbs_dataBase;
|
||||
|
||||
Procedure Configuration_EditUser (Var U: RecUser);
|
||||
Procedure Configuration_UserEditor;
|
||||
|
@ -175,9 +176,9 @@ Begin
|
|||
Form.Clear;
|
||||
|
||||
For Temp := 1 to 9 Do
|
||||
Form.AddStr (strI2S(Temp)[1], ' ' + Config.OptionalField[Temp].Desc, 7, 5 + Temp, 23, 5 + Temp, 14, 33, 60, @U.OptionData[Temp], Topic + 'User optional field #' + strI2S(Temp));
|
||||
Form.AddStr (strI2S(Temp)[1], ' ' + bbsCfg.OptionalField[Temp].Desc, 7, 5 + Temp, 23, 5 + Temp, 14, 33, 60, @U.OptionData[Temp], Topic + 'User optional field #' + strI2S(Temp));
|
||||
|
||||
Form.AddStr ('0', ' ' + Config.OptionalField[10].Desc, 7, 15, 23, 15, 14, 33, 60, @U.OptionData[10], Topic + 'User optional field #10');
|
||||
Form.AddStr ('0', ' ' + bbsCfg.OptionalField[10].Desc, 7, 15, 23, 15, 14, 33, 60, @U.OptionData[10], Topic + 'User optional field #10');
|
||||
End;
|
||||
6 : Begin
|
||||
Form.Clear;
|
||||
|
@ -275,10 +276,10 @@ Var
|
|||
End;
|
||||
|
||||
Begin
|
||||
Assign (UserFile, Config.DataPath + 'users.dat');
|
||||
Assign (UserFile, bbsCfg.DataPath + 'users.dat');
|
||||
|
||||
If Not ioReset(UserFile, SizeOf(RecUser), fmRWDN) Then
|
||||
If (FileExist(Config.DataPath + 'users.dat')) OR NOT
|
||||
If (FileExist(bbsCfg.DataPath + 'users.dat')) OR NOT
|
||||
(ioReWrite(UserFile, SizeOf(RecUser), fmRWDN)) Then
|
||||
Exit;
|
||||
|
||||
|
|
|
@ -17,9 +17,8 @@ Uses
|
|||
m_Output,
|
||||
m_Input,
|
||||
m_DateTime,
|
||||
m_FileIO;
|
||||
|
||||
{$I RECORDS.PAS}
|
||||
m_FileIO,
|
||||
bbs_dataBase;
|
||||
|
||||
// This unit is very old (like 1994) and its functions need to be phased out
|
||||
// This is the stuff that hasn't been worked into a class somewhere or
|
||||
|
@ -41,7 +40,6 @@ Var
|
|||
Room : RoomRec;
|
||||
LastOnFile : File of RecLastOn;
|
||||
LastOn : RecLastOn;
|
||||
Config : RecConfig;
|
||||
StatusPtr : Byte = 1;
|
||||
|
||||
Function DrawAccessFlags (Var Flags: AccessFlagType) : String;
|
||||
|
@ -241,7 +239,7 @@ Begin
|
|||
Screen.SetWindowTitle (WinConsoleTitle + strI2S(Session.NodeNum));
|
||||
{$ENDIF}
|
||||
|
||||
DirChange(Config.SystemPath);
|
||||
DirChange(bbsCfg.SystemPath);
|
||||
|
||||
If Session.User.UserNum <> -1 Then Begin
|
||||
Reset (Session.User.UserFile);
|
||||
|
@ -265,35 +263,35 @@ End;
|
|||
{$IFNDEF UNIX}
|
||||
Procedure UpdateStatusLine (Mode: Byte; Str: String);
|
||||
Begin
|
||||
If Not Config.UseStatusBar Then Exit;
|
||||
If Not bbsCfg.UseStatusBar Then Exit;
|
||||
|
||||
Screen.SetWindow (1, 1, 80, 25, False);
|
||||
|
||||
Case Mode of
|
||||
0 : Screen.WriteXY (1, 25, Config.StatusColor3, strPadC(Str, 80, ' '));
|
||||
0 : Screen.WriteXY (1, 25, bbsCfg.StatusColor3, strPadC(Str, 80, ' '));
|
||||
1 : Begin
|
||||
Screen.WriteXY ( 1, 25, Config.StatusColor1, ' Alias ' + strRep(' ', 35) + 'Age SecLevel TimeLeft ');
|
||||
Screen.WriteXY ( 8, 25, Config.StatusColor2, Session.User.ThisUser.Handle + ' #' + strI2S(Session.User.ThisUser.PermIdx));
|
||||
Screen.WriteXY (47, 25, Config.StatusColor2, Session.User.ThisUser.Gender + '/' + strI2S(DaysAgo(Session.User.ThisUser.Birthday, 1) DIV 365));
|
||||
Screen.WriteXY (62, 25, Config.StatusColor2, strI2S(Session.User.ThisUser.Security));
|
||||
Screen.WriteXY (76, 25, Config.StatusColor2, strI2S(Session.TimeLeft));
|
||||
Screen.WriteXY ( 1, 25, bbsCfg.StatusColor1, ' Alias ' + strRep(' ', 35) + 'Age SecLevel TimeLeft ');
|
||||
Screen.WriteXY ( 8, 25, bbsCfg.StatusColor2, Session.User.ThisUser.Handle + ' #' + strI2S(Session.User.ThisUser.PermIdx));
|
||||
Screen.WriteXY (47, 25, bbsCfg.StatusColor2, Session.User.ThisUser.Gender + '/' + strI2S(DaysAgo(Session.User.ThisUser.Birthday, 1) DIV 365));
|
||||
Screen.WriteXY (62, 25, bbsCfg.StatusColor2, strI2S(Session.User.ThisUser.Security));
|
||||
Screen.WriteXY (76, 25, bbsCfg.StatusColor2, strI2S(Session.TimeLeft));
|
||||
End;
|
||||
2 : Begin
|
||||
Screen.WriteXY ( 1, 25, Config.StatusColor1, ' Email ' + strRep(' ', 35) + ' Location ' + strRep(' ', 27) + ' ');
|
||||
Screen.WriteXY ( 8, 25, Config.StatusColor2, strPadR(Session.User.ThisUser.Email, 36, ' '));
|
||||
Screen.WriteXY (53, 25, Config.StatusColor2, strPadR(Session.User.ThisUser.City, 27, ' '));
|
||||
Screen.WriteXY ( 1, 25, bbsCfg.StatusColor1, ' Email ' + strRep(' ', 35) + ' Location ' + strRep(' ', 27) + ' ');
|
||||
Screen.WriteXY ( 8, 25, bbsCfg.StatusColor2, strPadR(Session.User.ThisUser.Email, 36, ' '));
|
||||
Screen.WriteXY (53, 25, bbsCfg.StatusColor2, strPadR(Session.User.ThisUser.City, 27, ' '));
|
||||
End;
|
||||
3 : Begin
|
||||
Screen.WriteXY ( 1, 25, Config.StatusColor1, ' IP ' + strRep(' ', 19) + ' Host ' + strRep(' ', 49) + ' ');
|
||||
Screen.WriteXY ( 5, 25, Config.StatusColor2, Session.UserIPInfo);
|
||||
Screen.WriteXY (31, 25, Config.StatusColor2, strPadR(Session.UserHostInfo, 49, ' '));
|
||||
Screen.WriteXY ( 1, 25, bbsCfg.StatusColor1, ' IP ' + strRep(' ', 19) + ' Host ' + strRep(' ', 49) + ' ');
|
||||
Screen.WriteXY ( 5, 25, bbsCfg.StatusColor2, Session.UserIPInfo);
|
||||
Screen.WriteXY (31, 25, bbsCfg.StatusColor2, strPadR(Session.UserHostInfo, 49, ' '));
|
||||
End;
|
||||
4 : Begin
|
||||
Screen.WriteXY ( 1, 25, Config.StatusColor1, ' Flags 1 ' + strRep(' ', 35) + ' Flags 2 ');
|
||||
Screen.WriteXY (10, 25, Config.StatusColor2, DrawAccessFlags(Session.User.ThisUser.AF1));
|
||||
Screen.WriteXY (54, 25, Config.StatusColor2, DrawAccessFlags(Session.User.ThisUser.AF2));
|
||||
Screen.WriteXY ( 1, 25, bbsCfg.StatusColor1, ' Flags 1 ' + strRep(' ', 35) + ' Flags 2 ');
|
||||
Screen.WriteXY (10, 25, bbsCfg.StatusColor2, DrawAccessFlags(Session.User.ThisUser.AF1));
|
||||
Screen.WriteXY (54, 25, bbsCfg.StatusColor2, DrawAccessFlags(Session.User.ThisUser.AF2));
|
||||
End;
|
||||
5 : Screen.WriteXY (1, 25, Config.StatusColor3, ' ALTS/C Chat ALTE Edit ALTH Hangup ALT+/- Time ALTB Info ALTT Bar ALTV Screen ');
|
||||
5 : Screen.WriteXY (1, 25, bbsCfg.StatusColor3, ' ALTS/C Chat ALTE Edit ALTH Hangup ALT+/- Time ALTB Info ALTT Bar ALTV Screen ');
|
||||
End;
|
||||
|
||||
Screen.SetWindow (1, 1, 80, 24, False);
|
||||
|
@ -307,9 +305,9 @@ Begin
|
|||
{E} #18 : If (Not Session.InUserEdit) and (Session.User.UserNum <> -1) Then
|
||||
Configuration_LocalUserEdit;
|
||||
{T} #20 : Begin
|
||||
Config.UseStatusBar := Not Config.UseStatusBar;
|
||||
bbsCfg.UseStatusBar := Not bbsCfg.UseStatusBar;
|
||||
|
||||
If Not Config.UseStatusBar Then Begin
|
||||
If Not bbsCfg.UseStatusBar Then Begin
|
||||
Screen.WriteXY (1, 25, 0, strRep(' ', 80));
|
||||
Screen.SetWindow (1, 1, 80, 25, False);
|
||||
End Else
|
||||
|
@ -335,7 +333,7 @@ Begin
|
|||
End;
|
||||
#59..
|
||||
#62 : Begin
|
||||
Session.io.InMacroStr := Config.SysopMacro[Ord(Cmd) - 58];
|
||||
Session.io.InMacroStr := bbsCfg.SysopMacro[Ord(Cmd) - 58];
|
||||
|
||||
If Session.io.InMacroStr[1] = '!' Then
|
||||
ExecuteMPL (NIL, Copy(Session.io.InMacroStr, 2, 255))
|
||||
|
|
|
@ -13,7 +13,8 @@ Uses
|
|||
m_Strings,
|
||||
m_Pipe,
|
||||
m_DateTime,
|
||||
BBS_Common,
|
||||
bbs_dataBase,
|
||||
// BBS_Common,
|
||||
BBS_IO,
|
||||
BBS_MsgBase,
|
||||
BBS_User,
|
||||
|
@ -174,7 +175,7 @@ Var
|
|||
Begin
|
||||
If User.ThisUser.Flags AND UserNoHistory <> 0 Then Exit;
|
||||
|
||||
Assign (HistoryFile, Config.DataPath + 'history.dat');
|
||||
Assign (HistoryFile, bbsCfg.DataPath + 'history.dat');
|
||||
|
||||
If Not ioReset (HistoryFile, SizeOf(RecHistory), fmRWDN) Then
|
||||
ioReWrite(HistoryFile, SizeOf(RecHistory), fmRWDW);
|
||||
|
@ -222,7 +223,7 @@ Begin
|
|||
|
||||
MinCheck := -1;
|
||||
|
||||
Assign (EventFile, Config.DataPath + 'event.dat');
|
||||
Assign (EventFile, bbsCfg.DataPath + 'event.dat');
|
||||
|
||||
If Not ioReset (EventFile, SizeOf(RecEvent), fmRWDN) Then
|
||||
ioReWrite (EventFile, SizeOf(RecEvent), fmRWDN);
|
||||
|
@ -245,7 +246,7 @@ Procedure TBBSCore.SystemLog (Str: String);
|
|||
Var
|
||||
tLOG : Text;
|
||||
Begin
|
||||
Assign (tLOG, Config.LogsPath + 'sysop.' + strI2S(NodeNum));
|
||||
Assign (tLOG, bbsCfg.LogsPath + 'sysop.' + strI2S(NodeNum));
|
||||
{$I-} Append(tLOG); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (tLOG);
|
||||
|
||||
|
@ -380,7 +381,7 @@ Begin
|
|||
Result := False;
|
||||
FileMode := 66;
|
||||
|
||||
Assign (PromptFile, Config.DataPath + Theme.FileName + '.txt');
|
||||
Assign (PromptFile, bbsCfg.DataPath + Theme.FileName + '.txt');
|
||||
SetTextBuf (PromptFile, Buffer);
|
||||
|
||||
{$I-} Reset (PromptFile); {$I+}
|
||||
|
|
|
@ -19,6 +19,7 @@ Uses
|
|||
m_DateTime,
|
||||
m_FileIO,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_Core,
|
||||
bbs_User;
|
||||
|
||||
|
@ -63,16 +64,16 @@ Begin
|
|||
Assign (tFile, Session.TempPath + 'DORINFO1.DEF');
|
||||
Rewrite (tFile);
|
||||
|
||||
Write (tFile, Config.BBSName + Ending);
|
||||
Write (tFile, bbsCfg.BBSName + Ending);
|
||||
|
||||
A := Pos(' ', Config.SysopName);
|
||||
A := Pos(' ', bbsCfg.SysopName);
|
||||
If A > 0 Then
|
||||
Write (tFile, Copy(Config.SysopName, 1, A-1) + Ending)
|
||||
Write (tFile, Copy(bbsCfg.SysopName, 1, A-1) + Ending)
|
||||
Else
|
||||
Write (tFile, Config.SysopName + Ending);
|
||||
Write (tFile, bbsCfg.SysopName + Ending);
|
||||
|
||||
If A > 0 Then
|
||||
Write (tFile, Copy(Config.SysopName, A+1, 255) + Ending)
|
||||
Write (tFile, Copy(bbsCfg.SysopName, A+1, 255) + Ending)
|
||||
Else
|
||||
Write (tFile, '' + Ending);
|
||||
|
||||
|
@ -124,15 +125,15 @@ Begin
|
|||
Write (tFile, Ord(Not Session.LocalMode), Ending);
|
||||
Write (tFile, (Session.TimeLeft * 60), Ending);
|
||||
Write (tFile, Session.Theme.TextPath + Ending);
|
||||
Write (tFile, Config.DataPath + Ending);
|
||||
Write (tFile, bbsCfg.DataPath + Ending);
|
||||
Write (tFile, 'SYSOP.', Session.NodeNum, Ending);
|
||||
If Session.LocalMode Then
|
||||
Write (tFile, 'KB' + Ending)
|
||||
Else
|
||||
Write (tFile, Session.Baud, Ending);
|
||||
Write (tFile, '1', Ending);
|
||||
Write (tFile, Config.BBSName + Ending);
|
||||
Write (tFile, Config.SysopName + Ending);
|
||||
Write (tFile, bbsCfg.BBSName + Ending);
|
||||
Write (tFile, bbsCfg.SysopName + Ending);
|
||||
Write (tFile, TimerSeconds, Ending);
|
||||
Write (tFile, '0' + Ending); {seconds online}
|
||||
Write (tFile, Session.User.ThisUser.ULk, Ending);
|
||||
|
@ -186,9 +187,9 @@ Begin
|
|||
Write (tFile, Session.User.ThisUser.DLk, Ending);
|
||||
Write (tFile, Session.User.Security.MaxDLk, Ending);
|
||||
Write (tFile, Session.User.ThisUser.Birthday, Ending);
|
||||
Write (tFile, Config.DataPath + Ending);
|
||||
Write (tFile, Config.MsgsPath + Ending);
|
||||
Write (tFile, Config.SysopName + Ending);
|
||||
Write (tFile, bbsCfg.DataPath + Ending);
|
||||
Write (tFile, bbsCfg.MsgsPath + Ending);
|
||||
Write (tFile, bbsCfg.SysopName + Ending);
|
||||
Write (tFile, Session.User.ThisUser.Handle + Ending);
|
||||
Write (tFile, TimeDos2Str(Session.NextEvent.ExecTime, 0) + Ending); {next event start time hh:mm}
|
||||
Write (tFile, 'Y' + Ending); {error-free connection}
|
||||
|
@ -253,7 +254,7 @@ Begin
|
|||
PI) Then
|
||||
WaitForSingleObject (PI.hProcess, INFINITE);
|
||||
|
||||
DirChange(Config.SystemPath);
|
||||
DirChange(bbsCfg.SystemPath);
|
||||
|
||||
If Session.User.UserNum <> -1 Then Begin
|
||||
Reset (Session.User.UserFile);
|
||||
|
|
|
@ -90,6 +90,7 @@ Implementation
|
|||
Uses
|
||||
m_Strings,
|
||||
bbs_Core,
|
||||
bbs_DataBase,
|
||||
bbs_Common,
|
||||
bbs_Ansi_MenuBox;
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ Uses
|
|||
m_Strings,
|
||||
m_FileIO,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_Core,
|
||||
bbs_FileBase,
|
||||
bbs_User;
|
||||
|
|
|
@ -20,6 +20,7 @@ Uses
|
|||
m_FileIO,
|
||||
m_DateTime,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_General,
|
||||
bbs_NodeInfo,
|
||||
bbs_Ansi_MenuBox,
|
||||
|
@ -566,7 +567,7 @@ Var
|
|||
ShellDOS (Path, Session.TempPath + 'xfer.bat');
|
||||
{$ENDIF}
|
||||
|
||||
DirChange (Config.SystemPath);
|
||||
DirChange (bbsCfg.SystemPath);
|
||||
End;
|
||||
|
||||
Begin
|
||||
|
@ -664,7 +665,7 @@ Begin
|
|||
|
||||
If Length(Session.Msgs.MsgText[FDir.DescLines]) > mysMaxFileDescLen Then Session.Msgs.MsgText[FDir.DescLines][0] := Chr(mysMaxFileDescLen);
|
||||
|
||||
If FDir.DescLines = Config.MaxFileDesc Then Break;
|
||||
If FDir.DescLines = bbsCfg.MaxFileDesc Then Break;
|
||||
End;
|
||||
|
||||
Close (DizFile);
|
||||
|
@ -689,7 +690,7 @@ Begin
|
|||
|
||||
If Temp.NewScan = 2 Then Dec (Temp.NewScan);
|
||||
|
||||
Assign (FScanFile, Config.DataPath + FBase.FileName + '.scn');
|
||||
Assign (FScanFile, bbsCfg.DataPath + FBase.FileName + '.scn');
|
||||
{$I-} Reset (FScanFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (FScanFile);
|
||||
|
@ -713,7 +714,7 @@ Begin
|
|||
|
||||
If FScan.NewScan = 2 Then Dec(FScan.NewScan);
|
||||
|
||||
Assign (FScanFile, Config.DataPath + FBase.FileName + '.scn');
|
||||
Assign (FScanFile, bbsCfg.DataPath + FBase.FileName + '.scn');
|
||||
{$I-} Reset (FScanFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then Exit;
|
||||
|
@ -877,10 +878,10 @@ Begin
|
|||
AreaFiles := 0;
|
||||
AreaSize := 0;
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
If IoResult = 0 Then Begin
|
||||
Assign (DF, Config.DataPath + FBase.FileName + '.des');
|
||||
Assign (DF, bbsCfg.DataPath + FBase.FileName + '.des');
|
||||
{$I-} Reset (DF, 1); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (DF, 1);
|
||||
|
@ -1027,8 +1028,8 @@ Begin
|
|||
|
||||
If FDir.Flags And FDirOffline <> 0 Then Exit;
|
||||
|
||||
If (FDir.Flags And FDirInvalid <> 0) And Not Session.User.Access(Config.AcsDLUnvalid) Then Exit;
|
||||
If (FDir.Flags And FDirFailed <> 0) And Not Session.User.Access(Config.AcsDLFailed) Then Exit;
|
||||
If (FDir.Flags And FDirInvalid <> 0) And Not Session.User.Access(bbsCfg.AcsDLUnvalid) Then Exit;
|
||||
If (FDir.Flags And FDirFailed <> 0) And Not Session.User.Access(bbsCfg.AcsDLFailed) Then Exit;
|
||||
|
||||
If (FDir.Flags And FDirFree <> 0) or (Session.User.ThisUser.Flags and UserNoRatio <> 0) or (FBase.Flags and FBFreeFiles <> 0) Then Begin
|
||||
Result := 0;
|
||||
|
@ -1168,10 +1169,10 @@ Var
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(201));
|
||||
|
||||
If (Total MOD Config.FColumns = 0) And (Total > 0) Then Session.io.OutRawLn('');
|
||||
If (Total MOD bbsCfg.FColumns = 0) And (Total > 0) Then Session.io.OutRawLn('');
|
||||
End;
|
||||
|
||||
If EOF(FBaseFile) and (Total MOD Config.FColumns <> 0) Then Session.io.OutRawLn('');
|
||||
If EOF(FBaseFile) and (Total MOD bbsCfg.FColumns <> 0) Then Session.io.OutRawLn('');
|
||||
|
||||
If (Session.io.PausePtr = Session.User.ThisUser.ScreenSize) and (Session.io.AllowPause) Then
|
||||
Case Session.io.MorePrompt of
|
||||
|
@ -1539,7 +1540,7 @@ Begin
|
|||
|
||||
If Session.User.Access(FBase.ListACS) Then Begin
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (FDirFile);
|
||||
|
||||
|
@ -1624,7 +1625,7 @@ Begin
|
|||
|
||||
If Session.User.Access(FBase.ListACS) and Session.User.Access(FBase.DLACS) Then Begin
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (FDirFile);
|
||||
|
||||
|
@ -1883,7 +1884,7 @@ Begin
|
|||
Session.io.PromptInfo[2] := FBase.Name;
|
||||
Session.io.PromptInfo[3] := '0';
|
||||
|
||||
Assign (TDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (TDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (TDirFile); {$I+}
|
||||
|
||||
If IoResult = 0 Then Begin
|
||||
|
@ -1893,10 +1894,10 @@ Begin
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(34));
|
||||
|
||||
If (Listed MOD Config.FColumns = 0) and (Listed > 0) Then Session.io.OutRawLn('');
|
||||
If (Listed MOD bbsCfg.FColumns = 0) and (Listed > 0) Then Session.io.OutRawLn('');
|
||||
End;
|
||||
|
||||
If EOF(FBaseFile) and (Listed MOD Config.FColumns <> 0) Then Session.io.OutRawLn('');
|
||||
If EOF(FBaseFile) and (Listed MOD bbsCfg.FColumns <> 0) Then Session.io.OutRawLn('');
|
||||
|
||||
If (Session.io.PausePtr = Session.User.ThisUser.ScreenSize) and (Session.io.AllowPause) Then
|
||||
Case Session.io.MorePrompt of
|
||||
|
@ -1921,7 +1922,7 @@ Var
|
|||
Compress : Boolean;
|
||||
Begin
|
||||
Old := FBase;
|
||||
Compress := Config.FCompress;
|
||||
Compress := bbsCfg.FCompress;
|
||||
|
||||
If (Data = '+') or (Data = '-') Then Begin
|
||||
Reset (FBaseFile);
|
||||
|
@ -1992,7 +1993,7 @@ Begin
|
|||
|
||||
Case Session.io.OneKeyRange(#13 + '?Q', 1, Total) of
|
||||
'?': Begin
|
||||
Compress := Config.FCompress;
|
||||
Compress := bbsCfg.FCompress;
|
||||
Total := ListFileAreas(Compress);
|
||||
End;
|
||||
Else
|
||||
|
@ -2074,9 +2075,9 @@ Var
|
|||
OkFile := False;
|
||||
|
||||
If (FDir.Flags And FDirDeleted <> 0) Then Exit;
|
||||
If (FDir.Flags AND FDirOffline <> 0) And (Not Session.User.Access(Config.AcsSeeOffline)) Then Exit;
|
||||
If (FDir.Flags And FDirInvalid <> 0) And (Not Session.User.Access(Config.AcsSeeUnvalid)) Then Exit;
|
||||
If (FDir.Flags And FDirFailed <> 0) And (Not Session.User.Access(Config.AcsSeeFailed)) Then Exit;
|
||||
If (FDir.Flags AND FDirOffline <> 0) And (Not Session.User.Access(bbsCfg.AcsSeeOffline)) Then Exit;
|
||||
If (FDir.Flags And FDirInvalid <> 0) And (Not Session.User.Access(bbsCfg.AcsSeeUnvalid)) Then Exit;
|
||||
If (FDir.Flags And FDirFailed <> 0) And (Not Session.User.Access(bbsCfg.AcsSeeFailed)) Then Exit;
|
||||
|
||||
Case Mode of
|
||||
1 : If Data <> '' Then
|
||||
|
@ -2291,7 +2292,7 @@ Var
|
|||
Case ListType of
|
||||
0 : If First Then Begin
|
||||
First := False;
|
||||
If Config.FShowHeader or (CurPage = 1) Then Begin
|
||||
If bbsCfg.FShowHeader or (CurPage = 1) Then Begin
|
||||
Session.io.PausePtr := 1;
|
||||
Session.io.OutFullLn(Session.GetPrompt(41))
|
||||
End Else Begin
|
||||
|
@ -2850,7 +2851,7 @@ Begin
|
|||
|
||||
Set_Node_Action (Session.GetPrompt(350));
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then Begin
|
||||
|
@ -2864,7 +2865,7 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
Assign (DataFile, Config.DataPath + FBase.FileName + '.des');
|
||||
Assign (DataFile, bbsCfg.DataPath + FBase.FileName + '.des');
|
||||
{$I-} Reset (DataFile, 1); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (DataFile, 1);
|
||||
|
||||
|
@ -2926,7 +2927,7 @@ Var
|
|||
TempFile : File of RecFileList;
|
||||
Temp : RecFileList;
|
||||
Begin
|
||||
Assign (TempFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (TempFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (TempFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (TempFile);
|
||||
|
@ -2968,14 +2969,14 @@ Procedure TFileBase.GetFileDescription (FN : String);
|
|||
Var
|
||||
A : Byte;
|
||||
Begin
|
||||
Session.io.PromptInfo[1] := strI2S(Config.MaxFileDesc);
|
||||
Session.io.PromptInfo[1] := strI2S(bbsCfg.MaxFileDesc);
|
||||
Session.io.PromptInfo[2] := FN;
|
||||
|
||||
Session.io.OutFullLn (Session.GetPrompt(72));
|
||||
|
||||
FDir.DescLines := Config.MaxFileDesc;
|
||||
FDir.DescLines := bbsCfg.MaxFileDesc;
|
||||
|
||||
For A := 1 to Config.MaxFileDesc Do Begin
|
||||
For A := 1 to bbsCfg.MaxFileDesc Do Begin
|
||||
Session.io.PromptInfo[1] := strZero(A);
|
||||
Session.io.OutFull (Session.GetPrompt(207));
|
||||
Session.Msgs.MsgText[A] := Session.io.GetInput(mysMaxFileDescLen, mysMaxFileDescLen, 11, '');
|
||||
|
@ -3017,11 +3018,11 @@ Begin
|
|||
Found := False;
|
||||
SavedIgnore := Session.User.IgnoreGroup;
|
||||
|
||||
If Config.UploadBase > 0 Then Begin
|
||||
If bbsCfg.UploadBase > 0 Then Begin
|
||||
Session.User.IgnoreGroup := True; { just in case ul area is in another group }
|
||||
|
||||
Reset (FBaseFile);
|
||||
{$I-} Seek (FBaseFile, Config.UploadBase - 1); {$I+}
|
||||
{$I-} Seek (FBaseFile, bbsCfg.UploadBase - 1); {$I+}
|
||||
|
||||
If IoResult = 0 Then Read (FBaseFile, FBase);
|
||||
|
||||
|
@ -3050,9 +3051,9 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
If Config.FreeUL > 0 Then Begin
|
||||
If bbsCfg.FreeUL > 0 Then Begin
|
||||
{$IFDEF UNIX}
|
||||
If DiskFree(0) DIV 1024 < Config.FreeUL Then Begin
|
||||
If DiskFree(0) DIV 1024 < bbsCfg.FreeUL Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(81));
|
||||
FBase := OLD;
|
||||
Exit;
|
||||
|
@ -3060,7 +3061,7 @@ Begin
|
|||
{$ELSE}
|
||||
FSplit (FBase.Path, D, N, E);
|
||||
|
||||
If DiskFree(Ord(UpCase(D[1])) - 64) DIV 1024 < Config.FreeUL Then Begin
|
||||
If DiskFree(Ord(UpCase(D[1])) - 64) DIV 1024 < bbsCfg.FreeUL Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(81));
|
||||
FBase := OLD;
|
||||
Exit;
|
||||
|
@ -3085,10 +3086,10 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
If Config.FDupeScan > 0 Then Begin
|
||||
If bbsCfg.FDupeScan > 0 Then Begin
|
||||
Session.io.OutFull (Session.GetPrompt(70));
|
||||
|
||||
If IsDupeFile(FileName, Config.FDupeScan = 2) Then Begin
|
||||
If IsDupeFile(FileName, bbsCfg.FDupeScan = 2) Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(205));
|
||||
FBase := OLD;
|
||||
Exit;
|
||||
|
@ -3112,7 +3113,7 @@ Begin
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(376));
|
||||
|
||||
Assign (DataFile, Config.DataPath + FBase.FileName + '.des');
|
||||
Assign (DataFile, bbsCfg.DataPath + FBase.FileName + '.des');
|
||||
{$I-} Reset (DataFile, 1); {$I+}
|
||||
If IoResult <> 0 Then ReWrite(DataFile, 1);
|
||||
|
||||
|
@ -3154,10 +3155,10 @@ Begin
|
|||
FDir.Downloads := 0;
|
||||
FDir.Rating := 0;
|
||||
|
||||
If Config.FDupeScan > 0 Then Begin
|
||||
If bbsCfg.FDupeScan > 0 Then Begin
|
||||
Session.io.OutFull (Session.GetPrompt(377));
|
||||
|
||||
If IsDupeFile(FileName, Config.FDupeScan = 2) Then Begin
|
||||
If IsDupeFile(FileName, bbsCfg.FDupeScan = 2) Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(378));
|
||||
|
||||
Continue;
|
||||
|
@ -3165,30 +3166,30 @@ Begin
|
|||
Session.io.OutFullLn (Session.GetPrompt(379));
|
||||
End;
|
||||
|
||||
If Config.TestUploads and (Config.TestCmdLine <> '') Then Begin
|
||||
If bbsCfg.TestUploads and (bbsCfg.TestCmdLine <> '') Then Begin
|
||||
Session.io.OutFull (Session.GetPrompt(206));
|
||||
|
||||
Temp := '';
|
||||
A := 1;
|
||||
|
||||
While A <= Length(Config.TestCmdLine) Do Begin
|
||||
If Config.TestCmdLine[A] = '%' Then Begin
|
||||
While A <= Length(bbsCfg.TestCmdLine) Do Begin
|
||||
If bbsCfg.TestCmdLine[A] = '%' Then Begin
|
||||
Inc(A);
|
||||
{$IFDEF UNIX}
|
||||
If Config.TestCmdLine[A] = '0' Then Temp := Temp + '1' Else
|
||||
If bbsCfg.TestCmdLine[A] = '0' Then Temp := Temp + '1' Else
|
||||
{$ELSE}
|
||||
If Config.TestCmdLine[A] = '0' Then Temp := Temp + strI2S(TIOSocket(Session.Client).FSocketHandle) Else
|
||||
If bbsCfg.TestCmdLine[A] = '0' Then Temp := Temp + strI2S(TIOSocket(Session.Client).FSocketHandle) Else
|
||||
{$ENDIF}
|
||||
If Config.TestCmdLine[A] = '1' Then Temp := Temp + '1' Else
|
||||
If Config.TestCmdLine[A] = '2' Then Temp := Temp + '38400' Else
|
||||
If Config.TestCmdLine[A] = '3' Then Temp := Temp + FullName {FBase.Path + FileName};
|
||||
If bbsCfg.TestCmdLine[A] = '1' Then Temp := Temp + '1' Else
|
||||
If bbsCfg.TestCmdLine[A] = '2' Then Temp := Temp + '38400' Else
|
||||
If bbsCfg.TestCmdLine[A] = '3' Then Temp := Temp + FullName {FBase.Path + FileName};
|
||||
End Else
|
||||
Temp := Temp + Config.TestCmdLine[A];
|
||||
Temp := Temp + bbsCfg.TestCmdLine[A];
|
||||
|
||||
Inc(A);
|
||||
End;
|
||||
|
||||
If ShellDOS('', Temp) <> Config.TestPassLevel Then Begin
|
||||
If ShellDOS('', Temp) <> bbsCfg.TestPassLevel Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(35));
|
||||
|
||||
Session.SystemLog (FileName + ' has failed upload test');
|
||||
|
@ -3198,7 +3199,7 @@ Begin
|
|||
Session.io.OutFullLn (Session.GetPrompt(55));
|
||||
End;
|
||||
|
||||
If Config.ImportDIZ Then Begin
|
||||
If bbsCfg.ImportDIZ Then Begin
|
||||
Session.io.OutFull (Session.GetPrompt(380));
|
||||
|
||||
If ImportDIZ(FileName) Then
|
||||
|
@ -3223,9 +3224,9 @@ Begin
|
|||
FDir.Size := 0;
|
||||
End;
|
||||
|
||||
If Not Session.User.Access(Config.AcsValidate) Then FDir.Flags := FDir.Flags Or FDirInvalid;
|
||||
If Not Session.User.Access(bbsCfg.AcsValidate) Then FDir.Flags := FDir.Flags Or FDirInvalid;
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (FDirFile);
|
||||
|
@ -3266,8 +3267,8 @@ Begin
|
|||
|
||||
Copied := True;
|
||||
|
||||
If Config.FreeCDROM > 0 Then
|
||||
Copied := DiskFree(0) DIV 1024 >= Config.FreeCDROM;
|
||||
If bbsCfg.FreeCDROM > 0 Then
|
||||
Copied := DiskFree(0) DIV 1024 >= bbsCfg.FreeCDROM;
|
||||
|
||||
If Copied Then Copied := DiskFree(0) >= FDir.Size;
|
||||
|
||||
|
@ -3308,7 +3309,7 @@ Begin
|
|||
|
||||
Session.io.OutFullLn (Session.GetPrompt(77));
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (FDirFile);
|
||||
|
||||
|
@ -3468,7 +3469,7 @@ Begin
|
|||
Seek (FBaseFile, Batch[A].Area - 1);
|
||||
Read (FBaseFile, Old);
|
||||
|
||||
Assign (FDirFile, Config.DataPath + Old.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + Old.FileName + '.dir');
|
||||
Reset (FDirFile);
|
||||
|
||||
While Not Eof(FDirFile) Do Begin
|
||||
|
@ -3734,7 +3735,7 @@ Begin
|
|||
|
||||
Session.SystemLog ('File DIR editor');
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(40));
|
||||
|
@ -3747,7 +3748,7 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
Assign (DataFile, Config.DataPath + FBase.FileName + '.des');
|
||||
Assign (DataFile, bbsCfg.DataPath + FBase.FileName + '.des');
|
||||
{$I-} Reset (DataFile, 1); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (DataFile, 1);
|
||||
|
||||
|
@ -3873,11 +3874,11 @@ Begin
|
|||
A := FilePos(FDirFile);
|
||||
Close (FDirFile);
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
{$I-} Reset (FDirFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite(FDirFile);
|
||||
|
||||
Assign (DataFile2, Config.DataPath + FBase.FileName + '.des');
|
||||
Assign (DataFile2, bbsCfg.DataPath + FBase.FileName + '.des');
|
||||
{$I-} Reset (DataFile2, 1); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (DataFile2, 1);
|
||||
|
||||
|
@ -3898,7 +3899,7 @@ Begin
|
|||
|
||||
FBase := Old;
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
Reset (FDirFile);
|
||||
Seek (FDirFile, A - 1);
|
||||
Read (FDirFile, FDir);
|
||||
|
@ -3952,7 +3953,7 @@ Begin
|
|||
End;
|
||||
'!' : Begin
|
||||
Seek (DataFile, FDir.DescPtr);
|
||||
If FDir.DescLines > Config.MaxFileDesc Then FDir.DescLines := Config.MaxFileDesc;
|
||||
If FDir.DescLines > bbsCfg.MaxFileDesc Then FDir.DescLines := bbsCfg.MaxFileDesc;
|
||||
|
||||
For A := 1 to FDir.DescLines Do Begin
|
||||
BlockRead (DataFile, Session.Msgs.MsgText[A][0], 1);
|
||||
|
@ -3962,7 +3963,7 @@ Begin
|
|||
Temp := 'Description Editor';
|
||||
B := FDir.DescLines;
|
||||
|
||||
If Editor(B, mysMaxFileDescLen, Config.MaxFileDesc, False, fn_tplTextEdit, Temp) Then Begin
|
||||
If Editor(B, mysMaxFileDescLen, bbsCfg.MaxFileDesc, False, fn_tplTextEdit, Temp) Then Begin
|
||||
FDir.DescLines := B;
|
||||
FDir.DescPtr := FileSize(DataFile);
|
||||
|
||||
|
@ -4017,7 +4018,7 @@ Var
|
|||
|
||||
Session.io.OutFullLn ('|CR|03Processing |14|FB|03...');
|
||||
|
||||
Assign (DataFile, Config.DataPath + FBase.FileName + '.des');
|
||||
Assign (DataFile, bbsCfg.DataPath + FBase.FileName + '.des');
|
||||
{$I-} Reset (DataFile, 1); {$I+}
|
||||
|
||||
If IoResult = 0 Then
|
||||
|
@ -4025,7 +4026,7 @@ Var
|
|||
Else
|
||||
ReWrite (DataFile, 1);
|
||||
|
||||
Assign (FDirFile, Config.DataPath + FBase.FileName + '.dir');
|
||||
Assign (FDirFile, bbsCfg.DataPath + FBase.FileName + '.dir');
|
||||
|
||||
FindFirst(FBase.Path + '*', Archive, DirInfo);
|
||||
|
||||
|
@ -4070,7 +4071,7 @@ Var
|
|||
FDir.DescLines := 0;
|
||||
FDir.Rating := 0;
|
||||
|
||||
If Config.ImportDIZ Then
|
||||
If bbsCfg.ImportDIZ Then
|
||||
If Not ImportDIZ(DirInfo.Name) Then
|
||||
If Not AutoArea Then
|
||||
GetFileDescription(DirInfo.Name);
|
||||
|
@ -4085,23 +4086,23 @@ Var
|
|||
For A := 1 to FDir.DescLines Do
|
||||
BlockWrite (DataFile, Session.Msgs.MsgText[A][0], Length(Session.Msgs.MsgText[A]) + 1);
|
||||
|
||||
If Config.TestUploads and (Config.TestCmdLine <> '') Then Begin
|
||||
If bbsCfg.TestUploads and (bbsCfg.TestCmdLine <> '') Then Begin
|
||||
Temp := '';
|
||||
A := 1;
|
||||
|
||||
While A <= Length(Config.TestCmdLine) Do Begin
|
||||
If Config.TestCmdLine[A] = '%' Then Begin
|
||||
While A <= Length(bbsCfg.TestCmdLine) Do Begin
|
||||
If bbsCfg.TestCmdLine[A] = '%' Then Begin
|
||||
Inc(A);
|
||||
If Config.TestCmdLine[A] = '1' Then Temp := Temp + '1' Else
|
||||
If Config.TestCmdLine[A] = '2' Then Temp := Temp + '38400' Else
|
||||
If Config.TestCmdLine[A] = '3' Then Temp := Temp + FBase.Path + FDir.FileName;
|
||||
If bbsCfg.TestCmdLine[A] = '1' Then Temp := Temp + '1' Else
|
||||
If bbsCfg.TestCmdLine[A] = '2' Then Temp := Temp + '38400' Else
|
||||
If bbsCfg.TestCmdLine[A] = '3' Then Temp := Temp + FBase.Path + FDir.FileName;
|
||||
End Else
|
||||
Temp := Temp + Config.TestCmdLine[A];
|
||||
Temp := Temp + bbsCfg.TestCmdLine[A];
|
||||
|
||||
Inc (A);
|
||||
End;
|
||||
|
||||
If ShellDOS('', Temp) <> Config.TestPassLevel Then
|
||||
If ShellDOS('', Temp) <> bbsCfg.TestPassLevel Then
|
||||
FDir.Flags := FDir.Flags OR FDirFailed;
|
||||
End;
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ Uses
|
|||
bbs_SysopChat,
|
||||
{$ENDIF}
|
||||
bbs_Common,
|
||||
bbs_database,
|
||||
bbs_Edit_ANSI,
|
||||
bbs_Edit_Line;
|
||||
|
||||
|
@ -94,7 +95,7 @@ Var
|
|||
Flags : Char;
|
||||
TempSec : RecSecurity;
|
||||
Begin
|
||||
Assign (Session.User.SecurityFile, Config.DataPath + 'security.dat');
|
||||
Assign (Session.User.SecurityFile, bbsCfg.DataPath + 'security.dat');
|
||||
Reset (Session.User.SecurityFile);
|
||||
Seek (Session.User.SecurityFile, Sec - 1);
|
||||
Read (Session.User.SecurityFile, TempSec);
|
||||
|
@ -132,9 +133,9 @@ Var
|
|||
Lines : Integer;
|
||||
Str : String;
|
||||
Begin
|
||||
If Config.MaxAutoSig = 0 Then Exit;
|
||||
If bbsCfg.MaxAutoSig = 0 Then Exit;
|
||||
|
||||
Assign (DF, Config.DataPath + 'autosig.dat');
|
||||
Assign (DF, bbsCfg.DataPath + 'autosig.dat');
|
||||
|
||||
If Session.User.ThisUser.SigLength > 0 Then Begin
|
||||
Reset (DF, 1);
|
||||
|
@ -151,7 +152,7 @@ Begin
|
|||
|
||||
Str := 'Signature Editor'; {++lang}
|
||||
|
||||
If Editor (Lines, 78, Config.MaxAutoSig, False, fn_tplMsgEdit, Str) Then Begin
|
||||
If Editor (Lines, 78, bbsCfg.MaxAutoSig, False, fn_tplMsgEdit, Str) Then Begin
|
||||
{$I-} Reset (DF, 1); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (DF, 1);
|
||||
|
@ -175,7 +176,7 @@ Var
|
|||
S : String[79];
|
||||
Begin
|
||||
If Session.User.ThisUser.SigLength > 0 Then Begin
|
||||
Assign (DF, Config.DataPath + 'autosig.dat');
|
||||
Assign (DF, bbsCfg.DataPath + 'autosig.dat');
|
||||
Reset (DF, 1);
|
||||
Seek (DF, Session.User.ThisUser.SigOffset);
|
||||
|
||||
|
@ -199,7 +200,7 @@ Var
|
|||
Count : Integer;
|
||||
Str : String;
|
||||
Begin
|
||||
Assign (TF, Config.DataPath + 'quotes.dat');
|
||||
Assign (TF, bbsCfg.DataPath + 'quotes.dat');
|
||||
SetTextBuf (TF, TxtBuf);
|
||||
|
||||
{$I-} Reset (TF); {$I+}
|
||||
|
@ -281,7 +282,7 @@ Begin
|
|||
End Else
|
||||
BBSList.Telnet := 'None'; //++lang
|
||||
|
||||
Assign (BBSFile, Config.DataPath + Name + '.bbi');
|
||||
Assign (BBSFile, bbsCfg.DataPath + Name + '.bbi');
|
||||
{$I-} Reset(BBSFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite(BBSFile);
|
||||
|
||||
|
@ -344,7 +345,7 @@ Begin
|
|||
|
||||
FileMode := 66;
|
||||
|
||||
Assign (BBSFile, Config.DataPath + Name + '.bbi');
|
||||
Assign (BBSFile, bbsCfg.DataPath + Name + '.bbi');
|
||||
{$I-} Reset(BBSFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(291));
|
||||
|
@ -401,7 +402,7 @@ Begin
|
|||
Session.io.OutFullLn (Session.GetPrompt(265));
|
||||
Session.io.OutFull (Session.GetPrompt(267));
|
||||
Case Session.io.OneKey('DQV'#13, True) of
|
||||
'D' : If Session.User.Access(Config.AcsSysop) or (strUpper(BBSList.AddedBy) = strUpper(Session.User.ThisUser.Handle)) Then Begin
|
||||
'D' : If Session.User.Access(bbsCfg.AcsSysop) or (strUpper(BBSList.AddedBy) = strUpper(Session.User.ThisUser.Handle)) Then Begin
|
||||
If Session.io.GetYN(Session.GetPrompt(294), False) Then Begin
|
||||
BBSList.Deleted := True;
|
||||
Seek (BBSFile, FilePos(BBSFile) - 1);
|
||||
|
@ -583,7 +584,7 @@ Begin
|
|||
|
||||
FileMode := 66;
|
||||
|
||||
Assign (OneLineFile, Config.DataPath + 'oneliner.dat');
|
||||
Assign (OneLineFile, bbsCfg.DataPath + 'oneliner.dat');
|
||||
{$I-} Reset (OneLineFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (OneLineFile);
|
||||
|
@ -950,7 +951,7 @@ Var
|
|||
Temp : RecHistory;
|
||||
Days : Word;
|
||||
Begin
|
||||
Assign (Session.HistoryFile, Config.DataPath + 'history.dat');
|
||||
Assign (Session.HistoryFile, bbsCfg.DataPath + 'history.dat');
|
||||
{$I-} Reset(Session.HistoryFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then
|
||||
|
@ -1502,7 +1503,7 @@ Var
|
|||
Temp : String;
|
||||
Count : Integer;
|
||||
Begin
|
||||
If Forced or ((TimerMinutes DIV 60 >= Config.ChatStart) and (TimerMinutes DIV 60 <= Config.ChatEnd)) Then Begin
|
||||
If Forced or ((TimerMinutes DIV 60 >= bbsCfg.ChatStart) and (TimerMinutes DIV 60 <= bbsCfg.ChatEnd)) Then Begin
|
||||
Session.io.OutFull (Session.GetPrompt(23));
|
||||
|
||||
Temp := Session.io.GetInput(50, 50, 11, '');
|
||||
|
@ -1539,9 +1540,9 @@ Begin
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(28));
|
||||
|
||||
If Config.ChatFeedback Then
|
||||
If bbsCfg.ChatFeedback Then
|
||||
If Session.io.GetYN(Session.GetPrompt(178), False) Then
|
||||
Session.Msgs.PostMessage (True, '/TO:' + strReplace(Config.SysopName, ' ', '_') + ' /SUBJ:Chat_Feedback');
|
||||
Session.Msgs.PostMessage (True, '/TO:' + strReplace(bbsCfg.SysopName, ' ', '_') + ' /SUBJ:Chat_Feedback');
|
||||
End;
|
||||
{$ENDIF}
|
||||
|
||||
|
|
|
@ -18,7 +18,8 @@ Uses
|
|||
m_FileIO,
|
||||
m_Strings,
|
||||
m_Term_Ansi,
|
||||
bbs_Common;
|
||||
bbs_Common,
|
||||
bbs_dataBase;
|
||||
|
||||
Const
|
||||
TBBSIOBufferSize = 4 * 1024 - 1;
|
||||
|
@ -610,7 +611,7 @@ Begin
|
|||
LastMCIValue := 'TELNET'; {++lang }
|
||||
'E' : LastMCIValue := ^G;
|
||||
'I' : LastMCIValue := DateJulian2Str(TBBSCore(Core).User.ThisUser.Birthday, TBBSCore(Core).User.ThisUser.DateType);
|
||||
'N' : LastMCIValue := Config.BBSName;
|
||||
'N' : LastMCIValue := bbsCfg.BBSName;
|
||||
'S' : OutBS(1, True);
|
||||
End;
|
||||
'C' : Case Code[2] of
|
||||
|
@ -643,6 +644,7 @@ Begin
|
|||
'G' : LastMCIValue := TBBSCore(Core).FileBase.FGroup.Name;
|
||||
'K' : LastMCIValue := strI2S(TBBSCore(Core).User.ThisUser.ULk);
|
||||
'O' : LastMCIValue := DateDos2Str(TBBSCore(Core).User.ThisUser.FirstOn, TBBSCore(Core).User.ThisUser.DateType);
|
||||
'T' : LastMCIValue := strI2S(GetTotalFiles(TBBSCore(Core).FileBase.FBase));
|
||||
'U' : LastMCIValue := strI2S(TBBSCore(Core).User.ThisUser.ULs);
|
||||
End;
|
||||
'H' : Case Code[2] of
|
||||
|
@ -675,7 +677,7 @@ Begin
|
|||
'E' : LastMCIValue := strI2S(TBBSCore(Core).User.ThisUser.Emails);
|
||||
'G' : LastMCIValue := TBBSCore(Core).Msgs.Group.Name;
|
||||
'L' : LastMCIValue := OutON(TBBSCore(Core).User.ThisUser.UseLBIndex);
|
||||
'N' : LastMCIValue := Config.NetDesc[TBBSCore(Core).Msgs.MBase.NetAddr];
|
||||
'N' : LastMCIValue := bbsCfg.NetDesc[TBBSCore(Core).Msgs.MBase.NetAddr];
|
||||
'P' : LastMCIValue := strI2S(TBBSCore(Core).User.ThisUser.Posts);
|
||||
'T' : LastMCIValue := strI2S(TBBSCore(Core).Msgs.GetTotalMessages(TBBSCore(Core).Msgs.MBase));
|
||||
End;
|
||||
|
@ -698,7 +700,7 @@ Begin
|
|||
'I' : BufAddChar('|');
|
||||
'N' : Repeat Until GetKey <> '';
|
||||
'O' : AllowPause := False;
|
||||
'W' : LastMCIValue := strI2S(Config.PWChange);
|
||||
'W' : LastMCIValue := strI2S(bbsCfg.PWChange);
|
||||
End;
|
||||
'Q' : Case Code[2] of
|
||||
'A' : LastMCIValue := TBBSCore(Core).User.ThisUser.Archive;
|
||||
|
@ -719,7 +721,7 @@ Begin
|
|||
'D' : LastMCIValue := TBBSCore(Core).User.Security.Desc;
|
||||
'K' : LastMCIValue := strI2S(TBBSCore(Core).User.Security.MaxDLK);
|
||||
'L' : LastMCIValue := strI2S(TBBSCore(Core).User.ThisUser.Security);
|
||||
'N' : LastMCIValue := Config.SysopName;
|
||||
'N' : LastMCIValue := bbsCfg.SysopName;
|
||||
'P' : Begin
|
||||
A := Round(TBBSCore(Core).User.Security.PCRatio / 100 * 100);
|
||||
LastMCIValue := strI2S(A);
|
||||
|
@ -731,7 +733,7 @@ Begin
|
|||
'0'..
|
||||
'9' : LastMCIValue := Attr2Ansi(Session.Theme.Colors[strS2I(Code[2])]);
|
||||
'B' : LastMCIValue := strI2S(TBBSCore(Core).User.ThisUser.TimeBank);
|
||||
'C' : LastMCIValue := strI2S(Config.SystemCalls);
|
||||
'C' : LastMCIValue := strI2S(bbsCfg.SystemCalls);
|
||||
'E' : If Graphics = 1 Then LastMCIValue := 'Ansi' Else LastMCIValue := 'Ascii'; //++lang
|
||||
'I' : LastMCIValue := TimeDos2Str(CurDateDos, 1);
|
||||
'L' : LastMCIValue := strI2S(TBBSCore(Core).TimeLeft);
|
||||
|
@ -1228,7 +1230,7 @@ Begin
|
|||
End Else Begin
|
||||
If Not CheckFileInPath(Session.Theme.TextPath) Then
|
||||
If Session.Theme.Flags AND thmFallBack <> 0 Then Begin
|
||||
If Not CheckFileInPath(Config.TextPath) Then Exit;
|
||||
If Not CheckFileInPath(bbsCfg.TextPath) Then Exit;
|
||||
End Else
|
||||
Exit;
|
||||
End;
|
||||
|
@ -1548,7 +1550,7 @@ Begin
|
|||
InMacro := False;
|
||||
|
||||
If TBBSCore(Core).CheckTimeOut Then
|
||||
If (Config.Inactivity > 0) and (Session.User.ThisUser.Flags And UserNoTimeOut = 0) and (TimerSeconds - TBBSCore(Core).TimeOut >= Config.Inactivity) Then Begin
|
||||
If (bbsCfg.Inactivity > 0) and (Session.User.ThisUser.Flags And UserNoTimeOut = 0) and (TimerSeconds - TBBSCore(Core).TimeOut >= bbsCfg.Inactivity) Then Begin
|
||||
TBBSCore(Core).SystemLog('Inactivity timeout');
|
||||
OutFullLn (TBBSCore(Core).GetPrompt(136));
|
||||
Halt(0);
|
||||
|
@ -1728,7 +1730,7 @@ Begin
|
|||
|
||||
TBBSCore(Core).SystemLog ('Bad PW: ' + Temp);
|
||||
End;
|
||||
Until Loop = Config.PWAttempts;
|
||||
Until Loop = bbsCfg.PWAttempts;
|
||||
|
||||
Result := False;
|
||||
End;
|
||||
|
@ -1953,7 +1955,7 @@ Begin
|
|||
UseInField := False;
|
||||
|
||||
If Mode = 8 Then
|
||||
Case Config.UserNameFormat of
|
||||
Case bbsCfg.UserNameFormat of
|
||||
0 : Mode := 1;
|
||||
1 : Mode := 2;
|
||||
2 : Mode := 7;
|
||||
|
|
|
@ -6,7 +6,7 @@ Interface
|
|||
|
||||
Uses
|
||||
m_Strings,
|
||||
BBS_Common;
|
||||
bbs_dataBase;
|
||||
|
||||
Type
|
||||
TMenuData = Class
|
||||
|
|
|
@ -6,6 +6,7 @@ Interface
|
|||
|
||||
Uses
|
||||
BBS_Common,
|
||||
bbs_dataBase,
|
||||
BBS_MenuData,
|
||||
MPL_Execute;
|
||||
|
||||
|
@ -312,18 +313,18 @@ Begin
|
|||
Session.User.CreateNewUser('');
|
||||
Session.User.UserLogon2;
|
||||
|
||||
MenuName := Config.MatrixMenu;
|
||||
MenuName := bbsCfg.MatrixMenu;
|
||||
Result := True;
|
||||
End;
|
||||
End;
|
||||
'C' : If Session.User.GetMatrixUser Then Begin
|
||||
If Session.User.Access(Config.MatrixAcs) Then Begin
|
||||
Session.io.PromptInfo[1] := Config.MatrixPW;
|
||||
If Session.User.Access(bbsCfg.MatrixAcs) Then Begin
|
||||
Session.io.PromptInfo[1] := bbsCfg.MatrixPW;
|
||||
Session.io.OutFull (Session.GetPrompt(270));
|
||||
End Else
|
||||
Session.io.OutFull (Session.GetPrompt(271));
|
||||
End;
|
||||
'L' : If Session.io.GetPW (Session.GetPrompt(272), Session.GetPrompt(423), Config.MatrixPW) Then Begin
|
||||
'L' : If Session.io.GetPW (Session.GetPrompt(272), Session.GetPrompt(423), bbsCfg.MatrixPW) Then Begin
|
||||
If Session.User.GetMatrixUser Then Begin
|
||||
Session.User.MatrixOK := True;
|
||||
Result := True;
|
||||
|
@ -335,7 +336,7 @@ Begin
|
|||
PageForSysopChat (Pos('/F', strUpper(CmdData)) > 0) {$ENDIF};
|
||||
End;
|
||||
'*' : Begin
|
||||
If Not Session.io.GetPW (Session.GetPrompt(493), Session.GetPrompt(417), Config.SysopPW) Then Exit;
|
||||
If Not Session.io.GetPW (Session.GetPrompt(493), Session.GetPrompt(417), bbsCfg.SysopPW) Then Exit;
|
||||
|
||||
Case Cmd[2] of
|
||||
'#' : Begin
|
||||
|
@ -1242,7 +1243,7 @@ Begin
|
|||
Result := False;
|
||||
|
||||
If TBBSCore(Owner).Theme.Flags AND thmFallback <> 0 Then
|
||||
Result := Data.Load (False, Config.MenuPath + MenuName + '.mnu');
|
||||
Result := Data.Load (False, bbsCfg.MenuPath + MenuName + '.mnu');
|
||||
|
||||
If Not Result Then Begin
|
||||
If Forced Then Begin
|
||||
|
@ -1302,7 +1303,7 @@ Begin
|
|||
If Data.Info.Global Then
|
||||
If Not Data.Load (True, TBBSCore(Owner).Theme.MenuPath + 'global.mnu') Then
|
||||
If TBBSCore(Owner).Theme.Flags AND thmFallback <> 0 Then
|
||||
Data.Load (True, Config.MenuPath + 'global.mnu');
|
||||
Data.Load (True, bbsCfg.MenuPath + 'global.mnu');
|
||||
|
||||
If Data.Info.InputType = 0 Then
|
||||
UseHotKeys := TBBSCore(Owner).User.ThisUser.HotKeys
|
||||
|
|
|
@ -8,6 +8,7 @@ Uses
|
|||
m_FileIO,
|
||||
m_DateTime,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_General,
|
||||
bbs_MsgBase_ABS,
|
||||
bbs_MsgBase_JAM,
|
||||
|
@ -138,8 +139,8 @@ Begin
|
|||
If Orig.Zone = Dest.Zone Then Exit;
|
||||
|
||||
For Count := 1 to 30 Do
|
||||
If Config.NetAddress[Count].Zone = Dest.Zone Then Begin
|
||||
Result := Config.NetAddress[Count];
|
||||
If bbsCfg.NetAddress[Count].Zone = Dest.Zone Then Begin
|
||||
Result := bbsCfg.NetAddress[Count];
|
||||
|
||||
Exit;
|
||||
End;
|
||||
|
@ -186,7 +187,7 @@ Var
|
|||
HasList : Boolean;
|
||||
Addr : RecEchoMailAddr;
|
||||
Begin
|
||||
HasList := FileExist(Config.DataPath + 'nodelist.txt');
|
||||
HasList := FileExist(bbsCfg.DataPath + 'nodelist.txt');
|
||||
NodeList := TNodeListSearch.Create;
|
||||
|
||||
If HasList Then
|
||||
|
@ -230,7 +231,7 @@ Begin
|
|||
Session.io.PausePtr := 1;
|
||||
Session.io.AllowPause := True;
|
||||
|
||||
NodeList.ResetSearch (Config.DataPath + 'nodelist.txt', Result);
|
||||
NodeList.ResetSearch (bbsCfg.DataPath + 'nodelist.txt', Result);
|
||||
|
||||
While NodeList.FindNext(NodeData) Do Begin
|
||||
Case ListType of
|
||||
|
@ -272,7 +273,7 @@ Begin
|
|||
Break;
|
||||
End;
|
||||
End Else
|
||||
If (Listed = 0) And Not FromMenu And Not Config.ForceNodelist Then Begin
|
||||
If (Listed = 0) And Not FromMenu And Not bbsCfg.ForceNodelist Then Begin
|
||||
If strStr2Addr(Result, Addr) Then Begin
|
||||
Session.io.PromptInfo[1] := strAddr2Str(Addr);
|
||||
Session.io.PromptInfo[7] := MsgTo;
|
||||
|
@ -333,7 +334,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'mbases.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecMessageBase), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -348,7 +349,7 @@ Var
|
|||
F : File;
|
||||
Count : LongInt;
|
||||
Begin
|
||||
If Not Config.MCompress Then Begin
|
||||
If Not bbsCfg.MCompress Then Begin
|
||||
Result := GetBaseByNum(Num, TempBase);
|
||||
|
||||
Exit;
|
||||
|
@ -356,7 +357,7 @@ Begin
|
|||
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'mbases.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecMessageBase), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -379,7 +380,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'mbases.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecMessageBase), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -402,7 +403,7 @@ Var
|
|||
Begin
|
||||
Result := 0;
|
||||
|
||||
Assign (F, Config.DataPath + 'mbases.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecMessageBase), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -627,7 +628,7 @@ Var
|
|||
A : SmallInt;
|
||||
Begin
|
||||
If (MBase.NetType > 0) and (MBase.NetType <> 3) Then Begin
|
||||
Msg^.DoStringLn (#1 + 'MSGID: ' + strAddr2Str(Config.NetAddress[MBase.NetAddr]) + ' ' + strI2H(CurDateDos, 8));
|
||||
Msg^.DoStringLn (#1 + 'MSGID: ' + strAddr2Str(bbsCfg.NetAddress[MBase.NetAddr]) + ' ' + strI2H(CurDateDos, 8));
|
||||
|
||||
If ReplyID <> '' Then
|
||||
Msg^.DoStringLn (#1 + 'REPLY: ' + ReplyID);
|
||||
|
@ -638,7 +639,7 @@ Begin
|
|||
|
||||
If (MBase.Flags AND MBAutoSigs <> 0) and Session.User.ThisUser.SigUse and (Session.User.ThisUser.SigLength > 0) Then Begin
|
||||
|
||||
Assign (DF, Config.DataPath + 'autosig.dat');
|
||||
Assign (DF, bbsCfg.DataPath + 'autosig.dat');
|
||||
Reset (DF, 1);
|
||||
Seek (DF, Session.User.ThisUser.SigOffset);
|
||||
|
||||
|
@ -678,19 +679,19 @@ Begin
|
|||
Else
|
||||
Msg^.SetMailType(mmtEchoMail);
|
||||
|
||||
Msg^.SetOrig(Config.NetAddress[TempBase.NetAddr]);
|
||||
Msg^.SetOrig(bbsCfg.NetAddress[TempBase.NetAddr]);
|
||||
|
||||
Case TempBase.NetType of
|
||||
1 : Begin
|
||||
Assign (SemFile, Config.SemaPath + fn_SemFileEcho);
|
||||
Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEcho);
|
||||
If Session.ExitLevel > 5 Then Session.ExitLevel := 7 Else Session.ExitLevel := 5;
|
||||
End;
|
||||
2 : Begin
|
||||
Assign (SemFile, Config.SemaPath + fn_SemFileNews);
|
||||
Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNews);
|
||||
If Session.ExitLevel > 5 Then Session.ExitLevel := 7 Else Session.ExitLevel := 5;
|
||||
End;
|
||||
3 : Begin
|
||||
Assign (SemFile, Config.SemaPath + fn_SemFileNet);
|
||||
Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNet);
|
||||
If Session.ExitLevel = 5 Then Session.ExitLevel := 7 Else Session.ExitLevel := 6;
|
||||
End;
|
||||
End;
|
||||
|
@ -745,9 +746,9 @@ Begin
|
|||
End;
|
||||
|
||||
If Pos('NOLIST', strUpper(Data)) > 0 Then
|
||||
Total := GetTotalBases(Config.MCompress)
|
||||
Total := GetTotalBases(bbsCfg.MCompress)
|
||||
Else
|
||||
Total := ListAreas(Config.MCompress);
|
||||
Total := ListAreas(bbsCfg.MCompress);
|
||||
|
||||
If Total = 0 Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(94));
|
||||
|
@ -761,7 +762,7 @@ Begin
|
|||
Case Session.io.OneKeyRange(#13 + '?Q', 1, Total) of
|
||||
#13,
|
||||
'Q': Exit;
|
||||
'?': Total := ListAreas(Config.MCompress);
|
||||
'?': Total := ListAreas(bbsCfg.MCompress);
|
||||
Else
|
||||
Break;
|
||||
End;
|
||||
|
@ -815,10 +816,10 @@ Var
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(93));
|
||||
|
||||
If (Total MOD Config.MColumns = 0) And (Total > 0) Then Session.io.OutRawLn('');
|
||||
If (Total MOD bbsCfg.MColumns = 0) And (Total > 0) Then Session.io.OutRawLn('');
|
||||
End;
|
||||
|
||||
If EOF(MBaseFile) and (Total MOD Config.MColumns <> 0) Then Session.io.OutRawLn('');
|
||||
If EOF(MBaseFile) and (Total MOD bbsCfg.MColumns <> 0) Then Session.io.OutRawLn('');
|
||||
|
||||
If (Session.io.PausePtr = Session.User.ThisUser.ScreenSize) and (Session.io.AllowPause) Then
|
||||
Case Session.io.MorePrompt of
|
||||
|
@ -1090,7 +1091,7 @@ Begin
|
|||
Areas := 0;
|
||||
Session.User.ThisUser.LastMGroup := FilePos(GroupFile);
|
||||
|
||||
If Config.MShowBases Then Begin
|
||||
If bbsCfg.MShowBases Then Begin
|
||||
Reset (MBaseFile);
|
||||
Read (MBaseFile, tMBase); { Skip EMAIL base }
|
||||
|
||||
|
@ -1166,7 +1167,7 @@ Var
|
|||
Begin
|
||||
Result := 1;
|
||||
|
||||
Assign (TempFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (TempFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
|
||||
If Not ioReset(TempFile, SizeOf(RecMessageBase), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -1193,10 +1194,10 @@ Begin
|
|||
|
||||
Session.io.OutFull (Session.GetPrompt(101));
|
||||
|
||||
If (Listed MOD Config.MColumns = 0) and (Listed > 0) Then Session.io.OutRawLn('');
|
||||
If (Listed MOD bbsCfg.MColumns = 0) and (Listed > 0) Then Session.io.OutRawLn('');
|
||||
End;
|
||||
|
||||
If Eof(TempFile) and (Listed MOD Config.MColumns <> 0) Then Session.io.OutRawLn('');
|
||||
If Eof(TempFile) and (Listed MOD bbsCfg.MColumns <> 0) Then Session.io.OutRawLn('');
|
||||
|
||||
If (Session.io.PausePtr = Session.User.ThisUser.ScreenSize) and (Session.io.AllowPause) Then
|
||||
Case Session.io.MorePrompt of
|
||||
|
@ -1232,7 +1233,7 @@ Var
|
|||
Begin
|
||||
ReplyBase := MBase;
|
||||
|
||||
If Not Email And Session.User.Access(Config.AcsExtReply) Then Begin
|
||||
If Not Email And Session.User.Access(bbsCfg.AcsExtReply) Then Begin
|
||||
Session.io.PromptInfo[1] := MBase.Name;
|
||||
Session.io.PromptInfo[2] := MsgBase^.GetFrom;
|
||||
Session.io.PromptInfo[3] := MsgBase^.GetSubj;
|
||||
|
@ -1250,7 +1251,7 @@ Begin
|
|||
|
||||
Session.User.IgnoreGroup := True;
|
||||
|
||||
Total := ListAreas(Config.MCompress);
|
||||
Total := ListAreas(bbsCfg.MCompress);
|
||||
|
||||
Repeat
|
||||
Session.io.OutFull(Session.GetPrompt(511));
|
||||
|
@ -1262,7 +1263,7 @@ Begin
|
|||
|
||||
Exit;
|
||||
End;
|
||||
'?': Total := ListAreas(Config.MCompress);
|
||||
'?': Total := ListAreas(bbsCfg.MCompress);
|
||||
Else
|
||||
Break;
|
||||
End;
|
||||
|
@ -1406,10 +1407,10 @@ Begin
|
|||
2 : MsgNew^.SetTo('All'); //Lang++
|
||||
3 : Begin
|
||||
MsgNew^.SetDest (Addr);
|
||||
MsgNew^.SetOrig (GetMatchedAddress(Config.NetAddress[ReplyBase.NetAddr], Addr));
|
||||
MsgNew^.SetCrash (Config.netCrash);
|
||||
MsgNew^.SetHold (Config.netHold);
|
||||
MsgNew^.SetKillSent (Config.netKillSent);
|
||||
MsgNew^.SetOrig (GetMatchedAddress(bbsCfg.NetAddress[ReplyBase.NetAddr], Addr));
|
||||
MsgNew^.SetCrash (bbsCfg.netCrash);
|
||||
MsgNew^.SetHold (bbsCfg.netHold);
|
||||
MsgNew^.SetKillSent (bbsCfg.netKillSent);
|
||||
MsgNew^.SetTo (ToWho);
|
||||
End;
|
||||
Else
|
||||
|
@ -1642,7 +1643,7 @@ Var
|
|||
Session.User.IgnoreGroup := True;
|
||||
|
||||
Repeat
|
||||
Total := ListAreas(Config.MCompress);
|
||||
Total := ListAreas(bbsCfg.MCompress);
|
||||
|
||||
If IsCopy Then
|
||||
Session.io.OutFull (Session.GetPrompt(492))
|
||||
|
@ -2654,7 +2655,7 @@ Var
|
|||
'C' : Session.io.AllowPause := False;
|
||||
End;
|
||||
|
||||
If Config.MShowHeader Then Display_Header;
|
||||
If bbsCfg.MShowHeader Then Display_Header;
|
||||
End;
|
||||
End;
|
||||
|
||||
|
@ -3093,7 +3094,7 @@ Begin
|
|||
|
||||
If Not Session.User.SearchUser(MsgTo, MBase.Flags and MBRealNames <> 0) Then MsgTo := '';
|
||||
End Else
|
||||
If strUpper(MsgTo) = 'SYSOP' Then MsgTo := Config.SysopName;
|
||||
If strUpper(MsgTo) = 'SYSOP' Then MsgTo := bbsCfg.SysopName;
|
||||
|
||||
If Session.User.FindUser(MsgTo, False) Then Begin
|
||||
Session.io.PromptInfo[1] := MsgTo;
|
||||
|
@ -3160,10 +3161,10 @@ Begin
|
|||
|
||||
If MBase.NetType = 3 Then Begin
|
||||
MsgBase^.SetDest (DestAddr);
|
||||
MsgBase^.SetCrash (Config.netCrash);
|
||||
MsgBase^.SetHold (Config.netHold);
|
||||
MsgBase^.SetKillSent (Config.netKillSent);
|
||||
MsgBase^.SetOrig (GetMatchedAddress(Config.NetAddress[MBase.NetAddr], DestAddr));
|
||||
MsgBase^.SetCrash (bbsCfg.netCrash);
|
||||
MsgBase^.SetHold (bbsCfg.netHold);
|
||||
MsgBase^.SetKillSent (bbsCfg.netKillSent);
|
||||
MsgBase^.SetOrig (GetMatchedAddress(bbsCfg.NetAddress[MBase.NetAddr], DestAddr));
|
||||
End;
|
||||
|
||||
AppendMessageText (MsgBase, Lines, '');
|
||||
|
@ -3842,19 +3843,19 @@ Begin
|
|||
If mArea.NetType > 0 Then Begin
|
||||
If mArea.NetType = 3 Then Begin
|
||||
Msg^.SetMailType (mmtNetMail);
|
||||
Msg^.SetCrash (Config.netCrash);
|
||||
Msg^.SetHold (Config.netHold);
|
||||
Msg^.SetKillSent (Config.netKillSent);
|
||||
Msg^.SetCrash (bbsCfg.netCrash);
|
||||
Msg^.SetHold (bbsCfg.netHold);
|
||||
Msg^.SetKillSent (bbsCfg.netKillSent);
|
||||
Msg^.SetDest (mAddr);
|
||||
End Else
|
||||
Msg^.SetMailType (mmtEchoMail);
|
||||
|
||||
Msg^.SetOrig(Config.NetAddress[mArea.NetAddr]);
|
||||
Msg^.SetOrig(bbsCfg.NetAddress[mArea.NetAddr]);
|
||||
|
||||
Case mArea.NetType of
|
||||
1 : Assign (SemFile, Config.SemaPath + fn_SemFileEcho);
|
||||
2 : Assign (SemFile, Config.SemaPath + fn_SemFileNews);
|
||||
3 : Assign (SemFile, Config.SemaPath + fn_SemFileNet);
|
||||
1 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEcho);
|
||||
2 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNews);
|
||||
3 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNet);
|
||||
End;
|
||||
|
||||
ReWrite (SemFile);
|
||||
|
@ -3917,15 +3918,15 @@ Begin
|
|||
If (Str = '') Then Str := '0:0/0';
|
||||
strStr2Addr (Str, mAddr);
|
||||
|
||||
If FileExist(Config.DataPath + mName) Then
|
||||
mName := Config.DataPath + mName
|
||||
If FileExist(bbsCfg.DataPath + mName) Then
|
||||
mName := bbsCfg.DataPath + mName
|
||||
Else
|
||||
If Not FileExist(mName) Then Begin
|
||||
Session.SystemLog('AutoPost: ' + mName + ' not found');
|
||||
Exit;
|
||||
End;
|
||||
|
||||
Assign (MBaseFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
ioReset (MBaseFile, SizeOf(RecMessageBase), fmReadWrite + fmDenyNone);
|
||||
|
||||
If Not ioSeek (MBaseFile, mArea) Then Begin
|
||||
|
@ -4004,7 +4005,7 @@ Begin
|
|||
If Loc > 0 Then Begin
|
||||
FN := strStripB(Copy(mArea.Origin, Loc + 8, 255), ' ');
|
||||
|
||||
If Pos(PathChar, FN) = 0 Then FN := Config.DataPath + FN;
|
||||
If Pos(PathChar, FN) = 0 Then FN := bbsCfg.DataPath + FN;
|
||||
|
||||
FileMode := 66;
|
||||
|
||||
|
@ -4121,6 +4122,7 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
Close (MBaseFile);
|
||||
Close (tFile);
|
||||
End;
|
||||
|
||||
|
@ -4133,11 +4135,11 @@ Begin
|
|||
Assign (tFile, Session.TempPath + 'control.dat');
|
||||
ReWrite (tFile);
|
||||
|
||||
Write (tFile, Config.BBSName + CRLF);
|
||||
Write (tFile, bbsCfg.BBSName + CRLF);
|
||||
Write (tFile, CRLF);
|
||||
Write (tFile, CRLF);
|
||||
Write (tFile, Config.SysopName + CRLF);
|
||||
Write (tFile, '0,' + Config.qwkBBSID + CRLF);
|
||||
Write (tFile, bbsCfg.SysopName + CRLF);
|
||||
Write (tFile, '0,' + bbsCfg.qwkBBSID + CRLF);
|
||||
Write (tFile, DateDos2Str(CurDateDos, 1), ',', TimeDos2Str(CurDateDos, 0) + CRLF);
|
||||
Write (tFile, strUpper(Session.User.ThisUser.Handle) + CRLF);
|
||||
Write (tFile, CRLF);
|
||||
|
@ -4160,9 +4162,11 @@ Begin
|
|||
End;
|
||||
End;
|
||||
|
||||
Write (tFile, JustFile(Config.qwkWelcome) + CRLF);
|
||||
Write (tFile, JustFile(Config.qwkNews) + CRLF);
|
||||
Write (tFile, JustFile(Config.qwkGoodbye) + CRLF);
|
||||
Close (MBaseFile);
|
||||
|
||||
Write (tFile, JustFile(bbsCfg.qwkWelcome) + CRLF);
|
||||
Write (tFile, JustFile(bbsCfg.qwkNews) + CRLF);
|
||||
Write (tFile, JustFile(bbsCfg.qwkGoodbye) + CRLF);
|
||||
|
||||
Close (tFile);
|
||||
End;
|
||||
|
@ -4238,8 +4242,8 @@ Begin
|
|||
MsgBase^.SeekFirst (LastRead);
|
||||
|
||||
While MsgBase^.SeekFound Do Begin
|
||||
If ((Config.QwkMaxBase > 0) and (MsgAdded = Config.QwkMaxBase)) or
|
||||
((Config.QwkMaxPacket > 0) and (TotalMsgs = Config.QwkMaxPacket)) Then Break;
|
||||
If ((bbsCfg.QwkMaxBase > 0) and (MsgAdded = bbsCfg.QwkMaxBase)) or
|
||||
((bbsCfg.QwkMaxPacket > 0) and (TotalMsgs = bbsCfg.QwkMaxPacket)) Then Break;
|
||||
|
||||
MsgBase^.MsgStartUp;
|
||||
|
||||
|
@ -4424,22 +4428,22 @@ Begin
|
|||
|
||||
Session.io.OutFullLn (Session.GetPrompt(233));
|
||||
|
||||
Temp := Config.qwkBBSID + '.qwk';
|
||||
Temp := bbsCfg.qwkBBSID + '.qwk';
|
||||
|
||||
Session.io.OutFullLn (Session.GetPrompt(234));
|
||||
|
||||
Session.io.PromptInfo[1] := Temp;
|
||||
|
||||
If FileExist(Config.QwkWelcome) Then FileCopy(Config.qwkWelcome, Session.TempPath + JustFile(Config.qwkWelcome));
|
||||
If FileExist(Config.QwkNews) Then FileCopy(Config.qwkNews, Session.TempPath + JustFile(Config.qwkNews));
|
||||
If FileExist(Config.QwkGoodbye) Then FileCopy(Config.qwkGoodbye, Session.TempPath + JustFile(Config.qwkGoodbye));
|
||||
If FileExist(bbsCfg.QwkWelcome) Then FileCopy(bbsCfg.qwkWelcome, Session.TempPath + JustFile(bbsCfg.qwkWelcome));
|
||||
If FileExist(bbsCfg.QwkNews) Then FileCopy(bbsCfg.qwkNews, Session.TempPath + JustFile(bbsCfg.qwkNews));
|
||||
If FileExist(bbsCfg.QwkGoodbye) Then FileCopy(bbsCfg.qwkGoodbye, Session.TempPath + JustFile(bbsCfg.qwkGoodbye));
|
||||
|
||||
// Session.SystemLog('DEBUG: Archiving QWK packet');
|
||||
|
||||
If Session.LocalMode Then Begin
|
||||
FileErase (Config.QWKPath + Temp);
|
||||
FileErase (bbsCfg.QWKPath + Temp);
|
||||
|
||||
Session.FileBase.ExecuteArchive (Config.QWKPath + Temp, Session.User.ThisUser.Archive, Session.TempPath + '*', 1);
|
||||
Session.FileBase.ExecuteArchive (bbsCfg.QWKPath + Temp, Session.User.ThisUser.Archive, Session.TempPath + '*', 1);
|
||||
|
||||
Session.io.OutFullLn (Session.GetPrompt(235));
|
||||
End Else Begin
|
||||
|
@ -4524,24 +4528,24 @@ Var
|
|||
|
||||
Begin
|
||||
If Session.LocalMode Then
|
||||
Session.FileBase.ExecuteArchive (Config.QWKPath + Config.qwkBBSID + '.rep', Session.User.ThisUser.Archive, '*', 2)
|
||||
Session.FileBase.ExecuteArchive (bbsCfg.QWKPath + bbsCfg.qwkBBSID + '.rep', Session.User.ThisUser.Archive, '*', 2)
|
||||
Else Begin
|
||||
If Session.FileBase.SelectProtocol(True, False) = 'Q' Then Exit;
|
||||
|
||||
Session.FileBase.ExecuteProtocol(1, Session.TempPath + Config.qwkBBSID + '.rep');
|
||||
Session.FileBase.ExecuteProtocol(1, Session.TempPath + bbsCfg.qwkBBSID + '.rep');
|
||||
|
||||
If Not Session.FileBase.DszSearch(Config.qwkBBSID + '.rep') Then Begin
|
||||
Session.io.PromptInfo[1] := Config.qwkBBSID + '.rep';
|
||||
If Not Session.FileBase.DszSearch(bbsCfg.qwkBBSID + '.rep') Then Begin
|
||||
Session.io.PromptInfo[1] := bbsCfg.qwkBBSID + '.rep';
|
||||
|
||||
Session.io.OutFullLn (Session.GetPrompt(84));
|
||||
|
||||
Exit;
|
||||
End;
|
||||
|
||||
Session.FileBase.ExecuteArchive (Session.TempPath + Config.qwkBBSID + '.rep', Session.User.ThisUser.Archive, '*', 2)
|
||||
Session.FileBase.ExecuteArchive (Session.TempPath + bbsCfg.qwkBBSID + '.rep', Session.User.ThisUser.Archive, '*', 2)
|
||||
End;
|
||||
|
||||
Assign (DataFile, FileFind(Session.TempPath + Config.qwkBBSID + '.msg'));
|
||||
Assign (DataFile, FileFind(Session.TempPath + bbsCfg.qwkBBSID + '.msg'));
|
||||
|
||||
If Not ioReset(DataFile, 1, fmRWDN) Then Begin
|
||||
Session.io.OutFull (Session.GetPrompt(238));
|
||||
|
@ -4552,7 +4556,7 @@ Begin
|
|||
BlockRead (DataFile, QwkBlock[1], 128);
|
||||
QwkBlock[0] := #128;
|
||||
|
||||
If Pos(strUpper(Config.qwkBBSID), strUpper(QwkBlock)) = 0 Then Begin
|
||||
If Pos(strUpper(bbsCfg.qwkBBSID), strUpper(QwkBlock)) = 0 Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(239));
|
||||
Close (DataFile);
|
||||
DirClean(Session.TempPath, '');
|
||||
|
@ -4611,6 +4615,7 @@ Begin
|
|||
// reply package, based on the alias/realname setting of the
|
||||
// base itself. This prevents people from spoofing "From"
|
||||
// fields.
|
||||
// If QWK networking will need to allow this of course
|
||||
Else
|
||||
If (LineCount < 4) and (Copy(Line, 1, 3) = 'To:') Then Begin
|
||||
MsgBase^.SetTo(strStripB(Copy(Line, 4, Length(Line)), ' '));
|
||||
|
@ -4698,6 +4703,6 @@ Type
|
|||
|
||||
Constructor Create (UD: RecUser; Ext: Boolean);
|
||||
Function CreatePacket : Boolean;
|
||||
Function ProcessReplies : Boolean;
|
||||
Function ProcessReply (bbsid, temppath, usernum, var user, forcefrom ): Boolean;
|
||||
Destructor Destroy; Override;
|
||||
End;
|
||||
|
|
|
@ -7,7 +7,7 @@ Unit BBS_MsgBase_ABS;
|
|||
Interface
|
||||
|
||||
Uses
|
||||
BBS_Common;
|
||||
bbs_dataBase;
|
||||
|
||||
Type
|
||||
MsgMailType = (mmtNormal, mmtEchoMail, mmtNetMail);
|
||||
|
|
|
@ -6,7 +6,8 @@ Interface
|
|||
|
||||
Uses
|
||||
m_Strings,
|
||||
BBS_Common;
|
||||
BBS_Common,
|
||||
bbs_dataBase;
|
||||
|
||||
Type
|
||||
RecAnsiBufferChar = Record
|
||||
|
|
|
@ -12,6 +12,7 @@ Interface
|
|||
Uses
|
||||
m_Strings,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_MsgBase_ABS;
|
||||
|
||||
Const
|
||||
|
|
|
@ -7,6 +7,7 @@ Interface
|
|||
Uses
|
||||
BBS_MsgBase_Abs,
|
||||
BBS_Common,
|
||||
bbs_dataBase,
|
||||
DOS;
|
||||
|
||||
Const
|
||||
|
|
|
@ -14,6 +14,7 @@ Uses
|
|||
m_FileIO,
|
||||
bbs_NodeInfo,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_User,
|
||||
bbs_Core;
|
||||
|
||||
|
@ -61,7 +62,7 @@ Begin
|
|||
Chat.Room := R;
|
||||
CurRoom := R;
|
||||
|
||||
Assign (CF, Config.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Assign (CF, bbsCfg.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Reset (CF);
|
||||
Write (CF, Chat);
|
||||
Close (CF);
|
||||
|
@ -253,7 +254,7 @@ Procedure Node_Chat;
|
|||
Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(332));
|
||||
|
||||
For A := 1 to Config.INetTNNodes Do
|
||||
For A := 1 to bbsCfg.INetTNNodes Do
|
||||
If GetChatRecord(A, Temp) Then
|
||||
If Temp.InChat Then Begin
|
||||
Reset (RoomFile);
|
||||
|
@ -287,7 +288,7 @@ Procedure Node_Chat;
|
|||
|
||||
If Text = '' Then Exit;
|
||||
|
||||
For Count := 1 to Config.INetTNNodes Do
|
||||
For Count := 1 to bbsCfg.INetTNNodes Do
|
||||
If GetChatRecord(Count, Temp) Then
|
||||
If strUpper(Temp.Name) = UserName Then Begin
|
||||
Send_Node_Message (4, strI2S(Count) + ';' + Text, 0);
|
||||
|
@ -370,7 +371,7 @@ Begin
|
|||
Chat.InChat := True;
|
||||
Chat.Available := False;
|
||||
|
||||
Assign (ChatFile, Config.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Assign (ChatFile, bbsCfg.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Reset (ChatFile);
|
||||
Write (ChatFile, Chat);
|
||||
Close (ChatFile);
|
||||
|
@ -482,7 +483,7 @@ Begin
|
|||
|
||||
Session.AllowMessages := True;
|
||||
|
||||
Assign (ChatFile, Config.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Assign (ChatFile, bbsCfg.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Reset (ChatFile);
|
||||
Write (ChatFile, Chat);
|
||||
Close (ChatFile);
|
||||
|
|
|
@ -5,7 +5,8 @@ Unit bbs_NodeInfo;
|
|||
Interface
|
||||
|
||||
Uses
|
||||
bbs_Common;
|
||||
bbs_Common,
|
||||
bbs_dataBase;
|
||||
|
||||
Function GetChatRecord (Node: Byte; Var Chat: ChatRec) : Boolean;
|
||||
Function IsUserOnline (UserName: String) : Word;
|
||||
|
@ -29,7 +30,7 @@ Function GetChatRecord (Node: Byte; Var Chat: ChatRec) : Boolean;
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (ChatFile, Config.DataPath + 'chat' + strI2S(Node) + '.dat');
|
||||
Assign (ChatFile, bbsCfg.DataPath + 'chat' + strI2S(Node) + '.dat');
|
||||
|
||||
If Not ioReset(ChatFile, SizeOf(ChatFile), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -46,7 +47,7 @@ Var
|
|||
Begin
|
||||
Result := 0;
|
||||
|
||||
For Count := 1 to Config.INetTNNodes Do Begin
|
||||
For Count := 1 to bbsCfg.INetTNNodes Do Begin
|
||||
If GetChatRecord(Count, TempChat) Then
|
||||
If (Count <> Session.NodeNum) and (TempChat.Active) and (TempChat.Name = UserName) Then Begin
|
||||
Result := Count;
|
||||
|
@ -57,7 +58,7 @@ End;
|
|||
|
||||
Procedure Set_Node_Action (Action: String);
|
||||
Begin
|
||||
Assign (ChatFile, Config.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
Assign (ChatFile, bbsCfg.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
ReWrite (ChatFile);
|
||||
|
||||
If Action <> '' Then Begin
|
||||
|
@ -83,7 +84,7 @@ Begin
|
|||
Close (ChatFile);
|
||||
|
||||
{$IFDEF WINDOWS}
|
||||
Screen.SetWindowTitle (Config.BBSName + ' Node ' + strI2S(Session.NodeNum) + ' : ' + Session.User.ThisUser.Handle + ' : ' + strStripPipe(Action));
|
||||
Screen.SetWindowTitle (bbsCfg.BBSName + ' Node ' + strI2S(Session.NodeNum) + ' : ' + Session.User.ThisUser.Handle + ' : ' + strStripPipe(Action));
|
||||
// Screen.SetWindowTitle (WinConsoleTitle + strI2S(Session.NodeNum) + ' - ' + Session.User.ThisUser.Handle + ' - ' + strStripPipe(Action));
|
||||
{$ENDIF}
|
||||
End;
|
||||
|
@ -95,7 +96,7 @@ Var
|
|||
Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(138));
|
||||
|
||||
For Count := 1 to Config.INetTNNodes Do Begin
|
||||
For Count := 1 to bbsCfg.INetTNNodes Do Begin
|
||||
Session.io.PromptInfo[1] := strI2S(Count);
|
||||
|
||||
If Not GetChatRecord (Count, TChat) Then Begin
|
||||
|
@ -104,7 +105,7 @@ Begin
|
|||
Continue;
|
||||
End;
|
||||
|
||||
If TChat.Active and ((Not TChat.Invisible) or (TChat.Invisible and Session.User.Access(Config.AcsSeeInvis))) Then Begin
|
||||
If TChat.Active and ((Not TChat.Invisible) or (TChat.Invisible and Session.User.Access(bbsCfg.AcsSeeInvis))) Then Begin
|
||||
Session.io.PromptInfo[2] := TChat.Name;
|
||||
Session.io.PromptInfo[3] := TChat.Action;
|
||||
Session.io.PromptInfo[4] := TChat.Location;
|
||||
|
@ -134,7 +135,7 @@ Begin
|
|||
Repeat
|
||||
Session.io.OutFull (Session.GetPrompt(146));
|
||||
|
||||
Case Session.io.OneKeyRange('?Q', 1, Config.INetTNNodes) of
|
||||
Case Session.io.OneKeyRange('?Q', 1, bbsCfg.INetTNNodes) of
|
||||
#00 : Break;
|
||||
'?' : WhosOnline;
|
||||
'Q' : Break;
|
||||
|
@ -143,7 +144,7 @@ Begin
|
|||
|
||||
ToNode := Session.io.RangeValue;
|
||||
|
||||
If (ToNode < 0) or (ToNode > Config.INetTNNodes) Then Begin
|
||||
If (ToNode < 0) or (ToNode > bbsCfg.INetTNNodes) Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(147));
|
||||
Exit;
|
||||
End;
|
||||
|
@ -159,7 +160,7 @@ Begin
|
|||
|
||||
If ToNode = 0 Then Begin
|
||||
B := 1;
|
||||
C := Config.INetTNNodes;
|
||||
C := bbsCfg.INetTNNodes;
|
||||
|
||||
If MsgType = 3 Then Begin
|
||||
MsgType := 2;
|
||||
|
@ -206,7 +207,7 @@ Begin
|
|||
|
||||
FileMode := 66;
|
||||
|
||||
Assign (NodeMsgFile, Config.SystemPath + 'temp' + strI2S(A) + PathChar + 'chat.tmp');
|
||||
Assign (NodeMsgFile, bbsCfg.SystemPath + 'temp' + strI2S(A) + PathChar + 'chat.tmp');
|
||||
|
||||
If Not ioReset (NodeMsgFile, SizeOf(NodeMsg), fmReadWrite + fmDenyAll) Then
|
||||
ioReWrite(NodeMsgFile, SizeOf(NodeMsg), fmReadWrite + fmDenyAll);
|
||||
|
|
|
@ -5,7 +5,8 @@ Unit BBS_NodeList;
|
|||
Interface
|
||||
|
||||
Uses
|
||||
BBS_Common;
|
||||
BBS_Common,
|
||||
bbs_DataBase;
|
||||
|
||||
Type
|
||||
RecNodeSearch = Record
|
||||
|
|
|
@ -13,6 +13,7 @@ Uses
|
|||
m_Strings,
|
||||
m_DateTime,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_Core,
|
||||
bbs_User;
|
||||
|
||||
|
@ -37,7 +38,7 @@ Var
|
|||
Procedure Total_ReDraw;
|
||||
Begin
|
||||
Session.io.PromptInfo[1] := Session.User.ThisUser.Handle;
|
||||
Session.io.PromptInfo[2] := Config.SysopName;
|
||||
Session.io.PromptInfo[2] := bbsCfg.SysopName;
|
||||
|
||||
Session.io.ScreenInfo[9].X := 0;
|
||||
Session.io.ScreenInfo[0].X := 0;
|
||||
|
@ -130,7 +131,7 @@ Begin
|
|||
end;
|
||||
Session.io.OutRaw(sysopstr);
|
||||
end;
|
||||
If Config.ChatLogging Then WriteLn (tFile, 'S> ' + SysopSTR);
|
||||
If bbsCfg.ChatLogging Then WriteLn (tFile, 'S> ' + SysopSTR);
|
||||
inc (sysopy);
|
||||
sysopstr := '';
|
||||
Session.io.AnsiGotoXY (sysopx, sysopy);
|
||||
|
@ -145,7 +146,7 @@ Begin
|
|||
Session.io.OutRaw(userstr);
|
||||
end;
|
||||
inc (usery);
|
||||
If Config.ChatLogging Then WriteLn (tFile, 'U> ' + UserSTR);
|
||||
If bbsCfg.ChatLogging Then WriteLn (tFile, 'U> ' + UserSTR);
|
||||
userstr := '';
|
||||
Session.io.AnsiGotoXY (userx, usery);
|
||||
End;
|
||||
|
@ -158,7 +159,7 @@ Begin
|
|||
if sysopx > Session.io.ScreenInfo[8].x then begin
|
||||
strwrap (sysopstr, temp2, Session.io.ScreenInfo[8].x - session.io.screeninfo[7].x + 1);
|
||||
temp1 := sysopstr;
|
||||
If Config.ChatLogging Then WriteLn (tFile, 'S> ' + SysopSTR);
|
||||
If bbsCfg.ChatLogging Then WriteLn (tFile, 'S> ' + SysopSTR);
|
||||
sysopstr := temp2;
|
||||
Session.io.OutBS (length(temp2), True);
|
||||
if sysopy=Session.io.ScreenInfo[6].y then begin
|
||||
|
@ -181,7 +182,7 @@ Begin
|
|||
if userx > Session.io.ScreenInfo[4].x then begin
|
||||
strwrap (userstr, temp2, Session.io.ScreenInfo[4].x - session.io.screeninfo[3].x + 1);
|
||||
temp1 := userstr;
|
||||
If Config.ChatLogging Then WriteLn (tFile, 'U> ' + UserSTR);
|
||||
If bbsCfg.ChatLogging Then WriteLn (tFile, 'U> ' + UserSTR);
|
||||
userstr := temp2;
|
||||
Session.io.OutBS (length(temp2), True);
|
||||
if usery=Session.io.ScreenInfo[2].y then begin
|
||||
|
@ -223,7 +224,7 @@ Begin
|
|||
Case Ch of
|
||||
#27 : If Session.io.LocalInput Then Break;
|
||||
#13 : Begin
|
||||
If Config.ChatLogging Then WriteLn (tFile, Str1);
|
||||
If bbsCfg.ChatLogging Then WriteLn (tFile, Str1);
|
||||
Session.io.OutRawLn('');
|
||||
Str1 := '';
|
||||
End;
|
||||
|
@ -242,7 +243,7 @@ Begin
|
|||
Session.io.OutRawLn ('');
|
||||
Session.io.OutRaw (Str2);
|
||||
|
||||
If Config.ChatLogging Then WriteLn (tFile, Str1);
|
||||
If bbsCfg.ChatLogging Then WriteLn (tFile, Str1);
|
||||
|
||||
Str1 := Str2;
|
||||
End;
|
||||
|
@ -262,8 +263,8 @@ Begin
|
|||
|
||||
UpdateStatusLine (0, '(ESC) to Quit, (Ctrl-R) to Redraw');
|
||||
|
||||
If Config.ChatLogging Then Begin
|
||||
Assign (tFile, Config.LogsPath + 'chat.log');
|
||||
If bbsCfg.ChatLogging Then Begin
|
||||
Assign (tFile, bbsCfg.LogsPath + 'chat.log');
|
||||
{$I-} Append (tFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then ReWrite (tFile);
|
||||
|
@ -276,7 +277,7 @@ Begin
|
|||
|
||||
If ((Split) And (Session.io.Graphics > 0)) Then Split_Chat Else Line_Chat;
|
||||
|
||||
If Config.ChatLogging Then Begin
|
||||
If bbsCfg.ChatLogging Then Begin
|
||||
WriteLn (tFile, strRep('-', 70));
|
||||
Close (tFile);
|
||||
End;
|
||||
|
|
|
@ -9,6 +9,7 @@ Uses
|
|||
m_Strings,
|
||||
m_DateTime,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_General,
|
||||
bbs_MsgBase,
|
||||
bbs_FileBase,
|
||||
|
@ -91,9 +92,9 @@ Begin
|
|||
FillChar (Security, SizeOf(Security), #0);
|
||||
|
||||
UserNum := -1;
|
||||
ThisUser.ScreenSize := Config.DefScreenSize;
|
||||
ThisUser.Theme := Config.DefThemeFile;
|
||||
ThisUser.StartMenu := Config.DefStartMenu;
|
||||
ThisUser.ScreenSize := bbsCfg.DefScreenSize;
|
||||
ThisUser.Theme := bbsCfg.DefThemeFile;
|
||||
ThisUser.StartMenu := bbsCfg.DefStartMenu;
|
||||
ThisUser.DateType := 1;
|
||||
ThisUser.HotKeys := True;
|
||||
ThisUser.RealName := 'Unknown';
|
||||
|
@ -102,13 +103,13 @@ Begin
|
|||
ThisUser.Birthday := CurDateJulian;
|
||||
ThisUser.Gender := 'U';
|
||||
ThisUser.FirstOn := CurDateDos;
|
||||
ThisUser.TimeLeft := Config.LoginTime;
|
||||
ThisUser.Archive := Config.qwkArchive;
|
||||
ThisUser.LastFGroup := Config.StartFGroup;
|
||||
ThisUser.LastMGroup := Config.StartMGroup;
|
||||
ThisUser.TimeLeft := bbsCfg.LoginTime;
|
||||
ThisUser.Archive := bbsCfg.qwkArchive;
|
||||
ThisUser.LastFGroup := bbsCfg.StartFGroup;
|
||||
ThisUser.LastMGroup := bbsCfg.StartMGroup;
|
||||
ThisUser.UseLBQuote := True;
|
||||
ThisUser.UseFullChat := True;
|
||||
ThisUser.CodePage := Config.StartCodePage;
|
||||
ThisUser.CodePage := bbsCfg.StartCodePage;
|
||||
|
||||
IgnoreGroup := False;
|
||||
InChat := False;
|
||||
|
@ -120,7 +121,7 @@ Function TBBSUser.IsThisUser (Str: String) : Boolean;
|
|||
Begin
|
||||
Str := strUpper(Str);
|
||||
|
||||
//If Str = 'SYSOP' Then Str := Config.SysopName;
|
||||
//If Str = 'SYSOP' Then Str := bbsCfg.SysopName;
|
||||
|
||||
Result := (strUpper(ThisUser.RealName) = Str) or (strUpper(ThisUser.Handle) = Str);
|
||||
End;
|
||||
|
@ -299,7 +300,7 @@ Begin
|
|||
Str := strUpper(Str);
|
||||
|
||||
If Str = 'SYSOP' Then
|
||||
Str := strUpper(Config.SysopName);
|
||||
Str := strUpper(bbsCfg.SysopName);
|
||||
|
||||
Found := False;
|
||||
First := True;
|
||||
|
@ -389,11 +390,11 @@ Begin
|
|||
UserNum := -1;
|
||||
|
||||
If Not Session.io.GetPW(Session.GetPrompt(274), Session.GetPrompt(293), TempUser.Password) Then Begin
|
||||
If Config.PWInquiry Then
|
||||
If bbsCfg.PWInquiry Then
|
||||
If Session.io.GetYN(Session.GetPrompt(475), False) Then
|
||||
Session.Msgs.PostMessage(True, '/TO:' + strReplace(Config.FeedbackTo, ' ', '_') + ' /SUBJ:Password_Inquiry');
|
||||
Session.Msgs.PostMessage(True, '/TO:' + strReplace(bbsCfg.FeedbackTo, ' ', '_') + ' /SUBJ:Password_Inquiry');
|
||||
|
||||
Session.Msgs.PostTextFile('hackwarn.txt;0;' + Config.SysopName + ';' + TempUser.Handle + ';Possible hack attempt', True);
|
||||
Session.Msgs.PostTextFile('hackwarn.txt;0;' + bbsCfg.SysopName + ';' + TempUser.Handle + ';Possible hack attempt', True);
|
||||
|
||||
Exit;
|
||||
End;
|
||||
|
@ -548,7 +549,7 @@ Begin
|
|||
Result := False;
|
||||
Name := strUpper(Name);
|
||||
|
||||
Assign (tFile, Config.DataPath + 'trashcan.dat');
|
||||
Assign (tFile, bbsCfg.DataPath + 'trashcan.dat');
|
||||
{$I-} Reset (tFile); {$I+}
|
||||
|
||||
If IoResult <> 0 Then Exit;
|
||||
|
@ -678,11 +679,11 @@ Begin
|
|||
Session.io.OutFull (Session.GetPrompt(367))
|
||||
Else
|
||||
Session.io.OutFull (Session.GetPrompt(13));
|
||||
If Config.UseUSAPhone Then
|
||||
If bbsCfg.UseUSAPhone Then
|
||||
Str := Session.io.GetInput(12, 12, 14, Str)
|
||||
Else
|
||||
Str := Session.io.GetInput(15, 15, 12, Str);
|
||||
Until (Length(Str) = 12) or (Not Config.UseUSAPhone and (Str <> ''));
|
||||
Until (Length(Str) = 12) or (Not bbsCfg.UseUSAPhone and (Str <> ''));
|
||||
|
||||
ThisUser.HomePhone := Str;
|
||||
End;
|
||||
|
@ -698,11 +699,11 @@ Begin
|
|||
Session.io.OutFull (Session.GetPrompt(368))
|
||||
Else
|
||||
Session.io.OutFull (Session.GetPrompt(14));
|
||||
If Config.UseUSAPhone Then
|
||||
If bbsCfg.UseUSAPhone Then
|
||||
Str := Session.io.GetInput(12, 12, 14, Str)
|
||||
Else
|
||||
Str := Session.io.GetInput(15, 15, 12, Str);
|
||||
Until (Length(Str) = 12) or (Not Config.UseUSAPhone and (Str <> ''));
|
||||
Until (Length(Str) = 12) or (Not bbsCfg.UseUSAPhone and (Str <> ''));
|
||||
|
||||
ThisUser.DataPhone := Str;
|
||||
End;
|
||||
|
@ -775,16 +776,16 @@ Procedure TBBSUser.GetScreenLength (Edit: Boolean);
|
|||
Var
|
||||
A : Byte;
|
||||
Begin
|
||||
Session.io.PromptInfo[1] := strI2S(Config.DefScreenSize);
|
||||
Session.io.PromptInfo[1] := strI2S(bbsCfg.DefScreenSize);
|
||||
|
||||
If Edit Then
|
||||
Session.io.OutFull (Session.GetPrompt(372))
|
||||
Else
|
||||
Session.io.OutFull (Session.GetPrompt(153));
|
||||
|
||||
A := strS2I(Session.io.GetInput(2, 2, 12, strI2S(Config.DefScreenSize)));
|
||||
A := strS2I(Session.io.GetInput(2, 2, 12, strI2S(bbsCfg.DefScreenSize)));
|
||||
|
||||
If (A < 1) or (A > 255) Then A := Config.DefScreenSize;
|
||||
If (A < 1) or (A > 255) Then A := bbsCfg.DefScreenSize;
|
||||
|
||||
ThisUser.ScreenSize := A;
|
||||
End;
|
||||
|
@ -899,14 +900,14 @@ End;
|
|||
|
||||
Procedure TBBSUser.CreateNewUser (DefName: String);
|
||||
Begin
|
||||
If Not Config.AllowNewUsers Then Begin
|
||||
If Not bbsCfg.AllowNewUsers Then Begin
|
||||
Session.io.OutFile ('nonewusr', True, 0);
|
||||
|
||||
Halt(0);
|
||||
End;
|
||||
|
||||
If Config.NewUserPW <> '' Then
|
||||
If Not Session.io.GetPW(Session.GetPrompt(5), Session.GetPrompt(422), Config.NewUserPW) Then Halt(0);
|
||||
If bbsCfg.NewUserPW <> '' Then
|
||||
If Not Session.io.GetPW(Session.GetPrompt(5), Session.GetPrompt(422), bbsCfg.NewUserPW) Then Halt(0);
|
||||
|
||||
Session.SystemLog ('NEW USER');
|
||||
|
||||
|
@ -932,7 +933,7 @@ Begin
|
|||
End Else Begin
|
||||
If strUpper(DefName) = 'NEW' Then DefName := '';
|
||||
|
||||
With Config Do Begin
|
||||
With bbsCfg Do Begin
|
||||
If AskTheme Then GetTheme Else ThisUser.Theme := DefThemeFile;
|
||||
If AskAlias Then GetAlias(False, DefName);
|
||||
If AskRealName Then GetRealName(False);
|
||||
|
@ -977,32 +978,32 @@ Begin
|
|||
If UserHotKeys = 2 Then GetHotKeys(False) Else ThisUser.HotKeys := Boolean(UserHotKeys);
|
||||
End;
|
||||
|
||||
If Config.AskScreenSize Then
|
||||
If bbsCfg.AskScreenSize Then
|
||||
GetScreenLength(False)
|
||||
Else
|
||||
ThisUser.ScreenSize := Config.DefScreenSize;
|
||||
ThisUser.ScreenSize := bbsCfg.DefScreenSize;
|
||||
|
||||
Case Config.UserProtocol of
|
||||
Case bbsCfg.UserProtocol of
|
||||
0 : ThisUser.Protocol := #0;
|
||||
1 : ThisUser.Protocol := Config.FProtocol;
|
||||
1 : ThisUser.Protocol := bbsCfg.FProtocol;
|
||||
2 : ThisUser.Protocol := Session.FileBase.SelectProtocol(False, True);
|
||||
End;
|
||||
|
||||
GetPassword(False);
|
||||
End;
|
||||
|
||||
Upgrade_User_Level (True, ThisUser, Config.NewUserSec);
|
||||
Upgrade_User_Level (True, ThisUser, bbsCfg.NewUserSec);
|
||||
|
||||
// ThisUser.FirstOn := CurDateDos;
|
||||
// ThisUser.Archive := Config.qwkArchive;
|
||||
// ThisUser.Archive := bbsCfg.qwkArchive;
|
||||
// ThisUser.LastFBase := 0;
|
||||
// ThisUser.LastFGroup := Config.StartFGroup;
|
||||
// ThisUser.LastMGroup := Config.StartMGroup;
|
||||
// ThisUser.LastFGroup := bbsCfg.StartFGroup;
|
||||
// ThisUser.LastMGroup := bbsCfg.StartMGroup;
|
||||
// ThisUser.LastMBase := 0;
|
||||
// ThisUser.Flags := 0;
|
||||
|
||||
If Not Config.AskRealName Then ThisUser.RealName := ThisUser.Handle;
|
||||
If Not Config.AskAlias Then ThisUser.Handle := ThisUser.RealName;
|
||||
If Not bbsCfg.AskRealName Then ThisUser.RealName := ThisUser.Handle;
|
||||
If Not bbsCfg.AskAlias Then ThisUser.Handle := ThisUser.RealName;
|
||||
{If either handles or realnames are toggled off, fill the gaps}
|
||||
|
||||
Session.Menu.MenuName := 'newinfo';
|
||||
|
@ -1013,32 +1014,32 @@ Begin
|
|||
Reset (UserFile);
|
||||
UserNum := Succ(FileSize(UserFile));
|
||||
|
||||
Inc (Config.UserIdxPos);
|
||||
ThisUser.PermIdx := Config.UserIdxPos;
|
||||
Inc (bbsCfg.UserIdxPos);
|
||||
ThisUser.PermIdx := bbsCfg.UserIdxPos;
|
||||
|
||||
Seek (UserFile, UserNum - 1);
|
||||
Write (UserFile, ThisUser);
|
||||
Close (UserFile);
|
||||
|
||||
Reset (ConfigFile);
|
||||
Write (ConfigFile, Config);
|
||||
Write (ConfigFile, bbsCfg);
|
||||
Close (ConfigFile);
|
||||
|
||||
Session.SystemLog ('Created Account: ' + ThisUser.Handle);
|
||||
|
||||
If Config.NewUserEmail Then Begin
|
||||
If bbsCfg.NewUserEmail Then Begin
|
||||
Session.io.OutFile('feedback', True, 0);
|
||||
If Session.Menu.ExecuteCommand ('MW', '/TO:' + strReplace(Config.FeedbackTo, ' ', '_') + ' /SUBJ:New_User_Feedback /F') Then;
|
||||
If Session.Menu.ExecuteCommand ('MW', '/TO:' + strReplace(bbsCfg.FeedbackTo, ' ', '_') + ' /SUBJ:New_User_Feedback /F') Then;
|
||||
End;
|
||||
|
||||
If FileExist(Config.ScriptPath + 'newuser.mpx') Then
|
||||
If FileExist(bbsCfg.ScriptPath + 'newuser.mpx') Then
|
||||
ExecuteMPL(NIL, 'newuser');
|
||||
|
||||
If FileExist(Config.DataPath + 'newletter.txt') Then
|
||||
Session.Msgs.PostTextFile('newletter.txt;0;' + Config.SysopName + ';' + ThisUser.Handle + ';Welcome', True);
|
||||
If FileExist(bbsCfg.DataPath + 'newletter.txt') Then
|
||||
Session.Msgs.PostTextFile('newletter.txt;0;' + bbsCfg.SysopName + ';' + ThisUser.Handle + ';Welcome', True);
|
||||
|
||||
If FileExist(Config.DataPath + 'sysletter.txt') Then
|
||||
Session.Msgs.PostTextFile('sysletter.txt;0;' + Config.SysopName + ';' + Config.SysopName + ';New account created', True);
|
||||
If FileExist(bbsCfg.DataPath + 'sysletter.txt') Then
|
||||
Session.Msgs.PostTextFile('sysletter.txt;0;' + bbsCfg.SysopName + ';' + bbsCfg.SysopName + ';New account created', True);
|
||||
End;
|
||||
|
||||
Procedure TBBSUser.UserLogon3;
|
||||
|
@ -1050,7 +1051,7 @@ Begin
|
|||
|
||||
Chat.Available := True;
|
||||
|
||||
If Access(Config.AcsInvisLogin) Then
|
||||
If Access(bbsCfg.AcsInvisLogin) Then
|
||||
Chat.Invisible := Session.io.GetYN(Session.GetPrompt(308), False);
|
||||
|
||||
{ update last caller information }
|
||||
|
@ -1065,7 +1066,7 @@ Begin
|
|||
LastOn.City := ThisUser.City;
|
||||
LastOn.Node := Session.NodeNum;
|
||||
LastOn.DateTime := CurDateDos;
|
||||
LastOn.CallNum := Config.SystemCalls;
|
||||
LastOn.CallNum := bbsCfg.SystemCalls;
|
||||
LastOn.Address := ThisUser.Address;
|
||||
LastOn.EmailAddr := ThisUser.Email;
|
||||
LastOn.UserInfo := ThisUser.UserInfo;
|
||||
|
@ -1143,18 +1144,18 @@ Begin
|
|||
|
||||
If Not Session.LocalMode And (ThisUser.Flags AND UserNoLastCall = 0) Then Begin
|
||||
Reset (ConfigFile);
|
||||
Read (ConfigFile, Config);
|
||||
Inc (Config.SystemCalls);
|
||||
Read (ConfigFile, bbsCfg);
|
||||
Inc (bbsCfg.SystemCalls);
|
||||
|
||||
Reset (ConfigFile);
|
||||
Write (ConfigFile, Config);
|
||||
Write (ConfigFile, bbsCfg);
|
||||
Close (ConfigFile);
|
||||
End;
|
||||
|
||||
Inc (ThisUser.Calls);
|
||||
Inc (ThisUser.CallsToday);
|
||||
|
||||
If (Not Access(Config.AcsMultiLogin)) and (IsUserOnline(ThisUser.Handle) <> 0) Then Begin
|
||||
If (Not Access(bbsCfg.AcsMultiLogin)) and (IsUserOnline(ThisUser.Handle) <> 0) Then Begin
|
||||
Session.io.OutFullLn(Session.GetPrompt(426));
|
||||
Halt(0);
|
||||
End;
|
||||
|
@ -1211,11 +1212,11 @@ Begin
|
|||
Session.io.OutFullLn(Session.GetPrompt(476));
|
||||
End;
|
||||
|
||||
If (Config.PWChange > 0) and (Session.User.ThisUser.Flags AND UserNoPWChange = 0) Then
|
||||
If (bbsCfg.PWChange > 0) and (Session.User.ThisUser.Flags AND UserNoPWChange = 0) Then
|
||||
If Not DateValid(Session.User.ThisUser.LastPWChange) Then
|
||||
Session.User.ThisUser.LastPWChange := DateDos2Str(CurDateDos, 1)
|
||||
Else
|
||||
If CurDateJulian - DateStr2Julian(Session.User.ThisUser.LastPWChange) >= Config.PWChange Then Begin
|
||||
If CurDateJulian - DateStr2Julian(Session.User.ThisUser.LastPWChange) >= bbsCfg.PWChange Then Begin
|
||||
Session.SystemLog('Required password change');
|
||||
Session.io.OutFullLn(Session.GetPrompt(478));
|
||||
Session.User.GetPassword(False);
|
||||
|
@ -1243,8 +1244,8 @@ Begin
|
|||
|
||||
Session.HistoryHour := strS2I(Copy(TimeDos2Str(CurDateDos, 0), 1, 2));
|
||||
|
||||
If Config.SystemPW <> '' Then
|
||||
If Not Session.io.GetPW(Session.GetPrompt(4), Session.GetPrompt(417), Config.SystemPW) Then Begin
|
||||
If bbsCfg.SystemPW <> '' Then
|
||||
If Not Session.io.GetPW(Session.GetPrompt(4), Session.GetPrompt(417), bbsCfg.SystemPW) Then Begin
|
||||
Session.io.OutFile ('closed', True, 0);
|
||||
|
||||
Session.SystemLog('Failed system password');
|
||||
|
@ -1255,21 +1256,21 @@ Begin
|
|||
Session.io.OutFullLn ('|CL' + mysSoftwareID + ' v' + mysVersion + ' for ' + OSID + ' Node |ND');
|
||||
Session.io.OutFullLn (CopyID);
|
||||
|
||||
If Config.DefTermMode = 0 Then
|
||||
If bbsCfg.DefTermMode = 0 Then
|
||||
GetGraphics
|
||||
Else
|
||||
If Config.DefTermMode = 3 Then
|
||||
If bbsCfg.DefTermMode = 3 Then
|
||||
Session.io.Graphics := 1
|
||||
Else Begin
|
||||
DetectGraphics;
|
||||
|
||||
If (Session.io.Graphics = 0) and (Config.DefTermMode = 2) Then GetGraphics;
|
||||
If (Session.io.Graphics = 0) and (bbsCfg.DefTermMode = 2) Then GetGraphics;
|
||||
End;
|
||||
|
||||
If FileExist(Config.ScriptPath + 'startup.mpx') Then
|
||||
If FileExist(bbsCfg.ScriptPath + 'startup.mpx') Then
|
||||
ExecuteMPL(NIL, 'startup');
|
||||
|
||||
If Config.ThemeOnStart Then GetTheme;
|
||||
If bbsCfg.ThemeOnStart Then GetTheme;
|
||||
|
||||
If (Session.Theme.Flags AND ThmAllowASCII = 0) and (Session.io.Graphics = 0) Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(321));
|
||||
|
@ -1298,9 +1299,9 @@ Begin
|
|||
|
||||
ThisUser := TempUser;
|
||||
End Else Begin
|
||||
If Config.UseMatrix Then Begin
|
||||
If bbsCfg.UseMatrix Then Begin
|
||||
Repeat
|
||||
Session.Menu.MenuName := Config.MatrixMenu;
|
||||
Session.Menu.MenuName := bbsCfg.MatrixMenu;
|
||||
|
||||
Session.Menu.ExecuteMenu (True, True, False, True);
|
||||
Until MatrixOK or Session.ShutDown;
|
||||
|
@ -1312,11 +1313,11 @@ Begin
|
|||
Count := 1;
|
||||
|
||||
Repeat
|
||||
If Count > Config.LoginAttempts Then Halt;
|
||||
If Count > bbsCfg.LoginAttempts Then Halt;
|
||||
|
||||
Session.io.PromptInfo[1] := strI2S(Count);
|
||||
Session.io.PromptInfo[2] := strI2S(Config.LoginAttempts);
|
||||
Session.io.PromptInfo[3] := strI2S(Config.LoginAttempts - Count);
|
||||
Session.io.PromptInfo[2] := strI2S(bbsCfg.LoginAttempts);
|
||||
Session.io.PromptInfo[3] := strI2S(bbsCfg.LoginAttempts - Count);
|
||||
|
||||
Session.io.OutFull (Session.GetPrompt(0));
|
||||
|
||||
|
@ -1342,11 +1343,11 @@ Begin
|
|||
UserNum := -1; {which is only User.ThisUser.realname at this time }
|
||||
|
||||
If Not Session.io.GetPW(Session.GetPrompt(2), Session.GetPrompt(3), TempUser.Password) Then Begin
|
||||
If Config.PWInquiry Then
|
||||
If bbsCfg.PWInquiry Then
|
||||
If Session.io.GetYN(Session.GetPrompt(475), False) Then
|
||||
Session.Msgs.PostMessage(True, '/TO:' + strReplace(Config.FeedbackTo, ' ', '_') + ' /SUBJ:Password_Inquiry');
|
||||
Session.Msgs.PostMessage(True, '/TO:' + strReplace(bbsCfg.FeedbackTo, ' ', '_') + ' /SUBJ:Password_Inquiry');
|
||||
|
||||
Session.Msgs.PostTextFile('hackwarn.txt;0;' + Config.SysopName + ';' + TempUser.Handle + ';Possible hack attempt', True);
|
||||
Session.Msgs.PostTextFile('hackwarn.txt;0;' + bbsCfg.SysopName + ';' + TempUser.Handle + ';Possible hack attempt', True);
|
||||
|
||||
Halt(0);
|
||||
End;
|
||||
|
@ -1360,14 +1361,14 @@ Begin
|
|||
|
||||
Session.SystemLog ('User: ' + ThisUser.Handle + ' logged in');
|
||||
|
||||
If Config.ThemeOnStart Then
|
||||
If bbsCfg.ThemeOnStart Then
|
||||
ThisUser.Theme := Session.Theme.FileName
|
||||
Else
|
||||
If Not Session.LoadThemeData(ThisUser.Theme) Then Begin
|
||||
Session.io.OutFullLn (Session.GetPrompt(186));
|
||||
|
||||
If Session.LoadThemeData(Config.DefThemeFile) Then
|
||||
ThisUser.Theme := Config.DefThemeFile;
|
||||
If Session.LoadThemeData(bbsCfg.DefThemeFile) Then
|
||||
ThisUser.Theme := bbsCfg.DefThemeFile;
|
||||
End;
|
||||
|
||||
UserLogon2;
|
||||
|
@ -1416,7 +1417,7 @@ Begin
|
|||
Else
|
||||
Session.LoadThemeData(Data);
|
||||
15 : GetEditor(True);
|
||||
16 : If Access(Config.AcsInvisLogin) Then Begin
|
||||
16 : If Access(bbsCfg.AcsInvisLogin) Then Begin
|
||||
Chat.Invisible := Not Chat.Invisible;
|
||||
Set_Node_Action (Chat.Action);
|
||||
End;
|
||||
|
|
|
@ -15,6 +15,7 @@ Uses
|
|||
m_DateTime,
|
||||
bbs_Core,
|
||||
bbs_Common,
|
||||
bbs_dataBase,
|
||||
bbs_NodeInfo;
|
||||
|
||||
Procedure PageUserForChat;
|
||||
|
@ -26,7 +27,7 @@ Begin
|
|||
Repeat
|
||||
Session.io.OutFull (Session.GetPrompt(479));
|
||||
|
||||
Case Session.io.OneKeyRange('Q?', 1, Config.INetTNNodes) of
|
||||
Case Session.io.OneKeyRange('Q?', 1, bbsCfg.INetTNNodes) of
|
||||
#00 : Break;
|
||||
'Q' : Exit;
|
||||
'?' : WhosOnline;
|
||||
|
@ -41,12 +42,12 @@ Begin
|
|||
Exit;
|
||||
End;
|
||||
|
||||
If Session.User.Access(Config.ACSSysop) Then
|
||||
If Session.User.Access(bbsCfg.ACSSysop) Then
|
||||
If Session.io.GetYN(Session.GetPrompt(481), False) Then
|
||||
ReqType := 9;
|
||||
|
||||
FileErase (Config.DataPath + 'userchat.' + strI2S(ToNode));
|
||||
FileErase (Config.DataPath + 'userchat.' + strI2S(Session.NodeNum));
|
||||
FileErase (bbsCfg.DataPath + 'userchat.' + strI2S(ToNode));
|
||||
FileErase (bbsCfg.DataPath + 'userchat.' + strI2S(Session.NodeNum));
|
||||
|
||||
Session.io.PromptInfo[1] := TempChat.Name;
|
||||
Session.io.PromptInfo[2] := strI2S(ToNode);
|
||||
|
@ -132,8 +133,8 @@ Var
|
|||
Begin
|
||||
Session.io.OutFullLn(Session.GetPrompt(483));
|
||||
|
||||
Assign (fOut, Config.DataPath + 'userchat.' + strI2S(ToNode));
|
||||
Assign (fIn, Config.DataPath + 'userchat.' + strI2S(Session.NodeNum));
|
||||
Assign (fOut, bbsCfg.DataPath + 'userchat.' + strI2S(ToNode));
|
||||
Assign (fIn, bbsCfg.DataPath + 'userchat.' + strI2S(Session.NodeNum));
|
||||
|
||||
FileMode := 66;
|
||||
|
||||
|
|
|
@ -16,18 +16,6 @@ Uses
|
|||
MIS_NodeData,
|
||||
MIS_Common;
|
||||
|
||||
Function CreateBINKP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TIOSocket) : TServerClient;
|
||||
|
||||
Type
|
||||
TBINKPServer = Class(TServerClient)
|
||||
Server : TServerManager;
|
||||
UserName : String[30];
|
||||
|
||||
Constructor Create (Owner: TServerManager; CliSock: TIOSocket);
|
||||
Procedure Execute; Override;
|
||||
Destructor Destroy; Override;
|
||||
End;
|
||||
|
||||
Const
|
||||
M_NUL = 0;
|
||||
M_ADR = 1;
|
||||
|
@ -95,7 +83,11 @@ Type
|
|||
Data
|
||||
);
|
||||
|
||||
TBinkPStatusUpdate = Procedure (Owner: Pointer; Str: String);
|
||||
|
||||
TBinkP = Class
|
||||
Owner : Pointer;
|
||||
StatusUpdate : TBinkPStatusUpdate;
|
||||
SetPassword : String;
|
||||
SetBlockSize : Word;
|
||||
SetOutPath : String;
|
||||
|
@ -117,33 +109,53 @@ Type
|
|||
HaveHeader : Boolean;
|
||||
NeedHeader : Boolean;
|
||||
MD5Challenge : String;
|
||||
AddressList : String;
|
||||
Password : String;
|
||||
PasswordMD5 : Boolean;
|
||||
FileList : TProtocolQueue;
|
||||
|
||||
Constructor Create (Var C: TIOSocket; Var FL: TProtocolQueue; IsCli: Boolean; TOV: Word);
|
||||
Constructor Create (O: Pointer; Var C: TIOSocket; Var FL: TProtocolQueue; IsCli: Boolean; TOV: Word);
|
||||
Destructor Destroy; Override;
|
||||
|
||||
// TO BE REWRITTEN/MOVED/REMOVED
|
||||
Procedure RemoveFilesFromFLO (FN: String);
|
||||
Function FindNodeByAddress (AddrList: String) : Boolean;
|
||||
|
||||
Function AuthenticateNode (AddrList: String) : Boolean;
|
||||
Function GetDataStr : String;
|
||||
Procedure SendFrame (CmdType: Byte; CmdData: String);
|
||||
Procedure SendFrame (CmdType: Byte; CmdData: String);
|
||||
Procedure SendDataFrame (Var Buf; BufSize: Word);
|
||||
Procedure DoFrameCheck;
|
||||
Function DoAuthentication : Boolean;
|
||||
Procedure DoTransfers;
|
||||
End;
|
||||
|
||||
Function CreateBINKP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TIOSocket) : TServerClient;
|
||||
|
||||
Type
|
||||
TBINKPServer = Class(TServerClient)
|
||||
Server : TServerManager;
|
||||
UserName : String[30];
|
||||
|
||||
Constructor Create (Owner: TServerManager; CliSock: TIOSocket);
|
||||
Procedure Execute; Override;
|
||||
// Procedure Status (Str: String);
|
||||
Destructor Destroy; Override;
|
||||
End;
|
||||
|
||||
Implementation
|
||||
|
||||
// PROTOCOL CLASS IMPLEMENTATION
|
||||
|
||||
Constructor TBinkP.Create (Var C: TIOSocket; Var FL: TProtocolQueue; IsCli: Boolean; TOV: Word);
|
||||
Procedure DefaultBinkPStatusProc (Owner: Pointer; Str: String);
|
||||
Begin
|
||||
//writeln(str);
|
||||
End;
|
||||
|
||||
Constructor TBinkP.Create (O: Pointer; Var C: TIOSocket; Var FL: TProtocolQueue; IsCli: Boolean; TOV: Word);
|
||||
Begin
|
||||
Inherited Create;
|
||||
|
||||
StatusUpdate := @DefaultBinkPStatusProc;
|
||||
SetTimeOut := TOV;
|
||||
Client := C;
|
||||
Owner := O;
|
||||
FileList := FL;
|
||||
IsClient := IsCli;
|
||||
UseMD5 := True;
|
||||
|
@ -154,7 +166,9 @@ Begin
|
|||
TimeOut := TimerSet(SetTimeOut);
|
||||
NeedHeader := True;
|
||||
HaveHeader := False;
|
||||
AddressList := '';
|
||||
MD5Challenge := '';
|
||||
Password := '';
|
||||
HaveNode := False;
|
||||
AuthState := SendWelcome;
|
||||
|
||||
|
@ -167,29 +181,52 @@ Begin
|
|||
Inherited Destroy;
|
||||
End;
|
||||
|
||||
Function TBinkP.FindNodeByAddress (AddrList: String) : Boolean;
|
||||
Function TBinkP.AuthenticateNode (AddrList: String) : Boolean;
|
||||
Var
|
||||
F : File;
|
||||
EchoFile : File;
|
||||
Count : Byte;
|
||||
Addr1 : String;
|
||||
Addr2 : String;
|
||||
UseDomain : Boolean;
|
||||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, bbsConfig.DataPath + 'echonode.dat');
|
||||
Assign (EchoFile, bbsConfig.DataPath + 'echonode.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecEchoMailNode), fmRWDN) Then Exit;
|
||||
If Not ioReset(EchoFile, SizeOf(RecEchoMailNode), fmRWDN) Then Exit;
|
||||
|
||||
While Not Eof(F) Do Begin
|
||||
ioRead(F, EchoNode);
|
||||
While Not Eof(EchoFile) Do Begin
|
||||
ioRead(EchoFile, EchoNode);
|
||||
|
||||
// cycle through addrList and find a match.
|
||||
For Count := 1 to strWordCount(AddrList, ' ') Do Begin
|
||||
Addr1 := strWordGet(Count, AddrList, ' ');
|
||||
Addr2 := strAddr2Str(EchoNode.Address);
|
||||
UseDomain := Pos('@', Addr1) > 0;
|
||||
|
||||
// If EchoNode.Address = InAddress Then Begin
|
||||
// Result := True;
|
||||
If UseDomain Then
|
||||
Addr2 := Addr2 + '@' + EchoNode.Domain;
|
||||
|
||||
// Break;
|
||||
// End;
|
||||
If strUpper(Addr1) = strUpper(Addr2) Then Begin
|
||||
If PasswordMD5 Then Begin
|
||||
If strUpper(Password) = strUpper(Digest2String(HMAC_MD5(String2Digest(MD5Challenge), EchoNode.binkPass))) Then Begin
|
||||
Result := True;
|
||||
|
||||
Break;
|
||||
End;
|
||||
End Else Begin
|
||||
If Password = EchoNode.binkPass Then Begin
|
||||
Result := True;
|
||||
|
||||
Break;
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
End;
|
||||
|
||||
If Result Then Break;
|
||||
End;
|
||||
|
||||
Close (F);
|
||||
Close (EchoFile);
|
||||
End;
|
||||
|
||||
Procedure TBinkP.RemoveFilesFromFLO (FN: String);
|
||||
|
@ -206,7 +243,7 @@ Begin
|
|||
// to revamp this to perform appropriate file locking and waiting.
|
||||
// also should be moved to mis_common since FTN-FTP will also perform
|
||||
// the same procedure.
|
||||
// could also perform a critical section as a cheesy way to do this.
|
||||
// could also perform a critical section as a cheesy way to do this?
|
||||
|
||||
FindFirst (SetOutPath + '*.?lo', AnyFile, DirInfo);
|
||||
|
||||
|
@ -275,7 +312,7 @@ Begin
|
|||
Client.BufWriteStr(Char(Hi(DataSize)) + Char(Lo(DataSize)) + Char(CmdType) + CmdData + #0);
|
||||
Client.BufFlush;
|
||||
|
||||
WriteLn (' S ' + BinkCmdStr[CmdType] + ' ' + CmdData);
|
||||
// WriteLn (' S ' + BinkCmdStr[CmdType] + ' ' + CmdData);
|
||||
// waitms(1000);
|
||||
//WriteLn ('Put Command Frame (', BinkCmdStr[CmdType], ') Data: ', CmdData);
|
||||
End;
|
||||
|
@ -332,12 +369,12 @@ Begin
|
|||
HaveHeader := True;
|
||||
End;
|
||||
|
||||
Case RxFrameType of
|
||||
// Case RxFrameType of
|
||||
// Command : If (RxCommand = M_NUL) or (RxCommand = M_ERR) Then
|
||||
// WriteLn (' R ', BinkCmdStr[RxCommand], ' ', GetDataStr);
|
||||
Command : WriteLn (' R ', BinkCmdStr[RxCommand], ' ', GetDataStr);
|
||||
Data : WriteLn ('Got Data Frame (Read ', InPos, ' of ', RxBufSize, ')');
|
||||
End;
|
||||
// Command : WriteLn (' R ', BinkCmdStr[RxCommand], ' ', GetDataStr);
|
||||
// Data : WriteLn ('Got Data Frame (Read ', InPos, ' of ', RxBufSize, ')');
|
||||
// End;
|
||||
End;
|
||||
|
||||
End;
|
||||
|
@ -367,6 +404,9 @@ Begin
|
|||
|
||||
If Count > 0 Then
|
||||
MD5Challenge := Copy(Str, Count + 4, 255);
|
||||
|
||||
If Not IsClient Then
|
||||
StatusUpdate (Owner, Str);
|
||||
End;
|
||||
|
||||
// WriteLn ('AuthState: ', GetStateStr(AuthState), ', HasHeader: ', HaveHeader, ' Data: ', GetDataStr);
|
||||
|
@ -436,24 +476,26 @@ Begin
|
|||
// Client did not send ADR
|
||||
AuthState := AuthFailed;
|
||||
End Else Begin
|
||||
HaveNode := FindNodeByAddress(GetDataStr);
|
||||
AuthState := WaitPassword;
|
||||
NeedHeader := True;
|
||||
HaveHeader := False;
|
||||
AddressList := GetDataStr;
|
||||
AuthState := WaitPassword;
|
||||
NeedHeader := True;
|
||||
HaveHeader := False;
|
||||
|
||||
StatusUpdate (Owner, 'ADR ' + AddressList);
|
||||
End;
|
||||
End;
|
||||
WaitPassword : If HaveHeader Then Begin
|
||||
AuthState := AuthFailed;
|
||||
|
||||
If (RxCommand = M_PWD) And HaveNode Then Begin
|
||||
Str := GetDataStr;
|
||||
If (RxCommand = M_PWD) Then Begin
|
||||
Password := GetDataStr;
|
||||
|
||||
If Pos('CRAM-MD5-', Str) > 0 Then Begin
|
||||
Delete(Str, 1, Pos('CRAM-MD5-', Str) + 8);
|
||||
If Pos('CRAM-MD5-', Password) > 0 Then Begin
|
||||
Delete(Password, 1, Pos('CRAM-MD5-', Password) + 8);
|
||||
|
||||
MD5Challenge := Digest2String(HMAC_MD5(String2Digest(MD5Challenge), EchoNode.binkPass));
|
||||
PasswordMD5 := True;
|
||||
|
||||
If Str = MD5Challenge Then Begin
|
||||
If AuthenticateNode(AddressList) Then Begin
|
||||
SendFrame (M_OK, '');
|
||||
|
||||
AuthState := AuthOK;
|
||||
|
@ -462,7 +504,9 @@ Begin
|
|||
If ForceMD5 Then
|
||||
SendFrame (M_ERR, 'Required CRAM-MD5 authentication')
|
||||
Else Begin
|
||||
If Str = EchoNode.binkPass Then Begin
|
||||
PasswordMD5 := False;
|
||||
|
||||
If AuthenticateNode(AddressList) Then Begin
|
||||
SendFrame (M_OK, '');
|
||||
|
||||
AuthState := AuthOK;
|
||||
|
@ -470,6 +514,9 @@ Begin
|
|||
End;
|
||||
End;
|
||||
End;
|
||||
|
||||
If AuthState <> AuthOK Then
|
||||
StatusUpdate(Owner, 'Auth failed');
|
||||
End;
|
||||
WaitPwdOK : If HaveHeader Then Begin
|
||||
If RxCommand <> M_OK Then
|
||||
|
@ -546,6 +593,8 @@ Begin
|
|||
End Else Begin
|
||||
SendFrame (M_GET, InFN + ' ' + strI2S(FSize) + ' ' + strI2S(InTime));
|
||||
|
||||
StatusUpdate(Owner, 'Receiving: ' + InFN);
|
||||
|
||||
InPos := FSize;
|
||||
End;
|
||||
End;
|
||||
|
@ -607,6 +656,8 @@ Begin
|
|||
// need to escape filename here and fix file time
|
||||
SendFrame (M_FILE, FileList.QData[FileList.QPos].FileNew + ' ' + strI2S(FileList.QData[FileList.QPos].FileSize) + ' ' + strI2S(TempFileTime) + ' 0');
|
||||
|
||||
StatusUpdate (Owner, 'Sending ' + FileList.QData[FileList.QPos].FileNew);
|
||||
|
||||
TxState := TxSendData;
|
||||
End Else Begin
|
||||
SendFrame (M_EOB, '');
|
||||
|
@ -642,9 +693,126 @@ Begin
|
|||
End;
|
||||
Until ((RxState = RxDone) and (TxState = TxDone)) or (Not Client.Connected) or (TimerUp(TimeOut));
|
||||
|
||||
If Not IsClient Then
|
||||
StatusUpdate(Owner, 'Session complete');
|
||||
|
||||
If Client.Connected Then Client.BufFlush;
|
||||
End;
|
||||
|
||||
// GENERAL FIDO STUFF SHOULD BE RELOCATED SOMEWHERE ELSE?
|
||||
|
||||
Function IsFTNPrimary (EchoNode: RecEchoMailNode) : Boolean;
|
||||
Var
|
||||
Count : Byte;
|
||||
Begin
|
||||
For Count := 1 to 30 Do
|
||||
If (strUpper(EchoNode.Domain) = strUpper(bbsConfig.NetDomain[Count])) and
|
||||
(EchoNode.Address.Zone = bbsConfig.NetAddress[Count].Zone) and
|
||||
(bbsConfig.NetPrimary[Count]) Then Begin
|
||||
Result := True;
|
||||
|
||||
Exit;
|
||||
End;
|
||||
|
||||
Result := False;
|
||||
End;
|
||||
|
||||
Function GetFTNFlowName (Dest: RecEchoMailAddr) : String;
|
||||
Begin
|
||||
If Dest.Point = 0 Then
|
||||
Result := strI2H((Dest.Net SHL 16) OR Dest.Node, 8)
|
||||
Else
|
||||
Result := strI2H(Dest.Point, 8);
|
||||
End;
|
||||
|
||||
Function GetFTNOutPath (EchoNode: RecEchoMailNode) : String;
|
||||
Begin;
|
||||
If IsFTNPrimary(EchoNode) Then
|
||||
Result := bbsConfig.OutboundPath
|
||||
Else
|
||||
Result := DirLast(bbsConfig.OutboundPath) + strLower(EchoNode.Domain + '.' + strPadL(strI2H(EchoNode.Address.Zone, 3), 3, '0')) + PathChar;
|
||||
|
||||
If EchoNode.Address.Point <> 0 Then
|
||||
Result := Result + strI2H((EchoNode.Address.Net SHL 16) OR EchoNode.Address.Node, 8) + '.pnt' + PathChar;
|
||||
End;
|
||||
|
||||
Procedure QueueByNode (Var Queue: TProtocolQueue; SkipHold: Boolean; EchoNode: RecEchoMailNode);
|
||||
Var
|
||||
DirInfo : SearchRec;
|
||||
FLOFile : Text;
|
||||
Str : String;
|
||||
FN : String;
|
||||
Path : String;
|
||||
OutPath : String;
|
||||
Begin
|
||||
OutPath := GetFTNOutPath(EchoNode);
|
||||
|
||||
// QUEUE BY FLOW FILES
|
||||
|
||||
FindFirst (OutPath + '*.?lo', AnyFile, DirInfo);
|
||||
|
||||
While DosError = 0 Do Begin
|
||||
|
||||
If SkipHold And (UpCase(JustFileExt(DirInfo.Name)[1]) = 'H') Then Begin
|
||||
FindNext (DirInfo);
|
||||
|
||||
Continue;
|
||||
End;
|
||||
|
||||
If Not ((strUpper(JustFileName(DirInfo.Name)) = strUpper(GetFTNFlowName(EchoNode.Address))) and EchoNode.Active and (EchoNode.ProtType = 0)) Then Begin
|
||||
FindNext (DirInfo);
|
||||
|
||||
Continue;
|
||||
End;
|
||||
|
||||
Assign (FLOFile, OutPath + DirInfo.Name);
|
||||
Reset (FLOFile);
|
||||
|
||||
While Not Eof(FLOFile) Do Begin
|
||||
ReadLn (FLOFile, Str);
|
||||
|
||||
If (Str = '') or (Str[1] = '!') Then Continue;
|
||||
|
||||
Str := strStripB(Copy(Str, 2, 255), ' ');
|
||||
FN := JustFile(Str);
|
||||
Path := JustPath(Str);
|
||||
|
||||
Queue.Add (True, Path, FN, '');
|
||||
End;
|
||||
|
||||
Close (FLOFile);
|
||||
|
||||
FindNext (DirInfo);
|
||||
End;
|
||||
|
||||
FindClose (DirInfo);
|
||||
|
||||
// QUEUE BY RAW PACKET
|
||||
|
||||
FindFirst (OutPath + '*.?ut', AnyFile, DirInfo);
|
||||
|
||||
While DosError = 0 Do Begin
|
||||
|
||||
If SkipHold And (UpCase(JustFileExt(DirInfo.Name)[1]) = 'H') Then Begin
|
||||
FindNext (DirInfo);
|
||||
|
||||
Continue;
|
||||
End;
|
||||
|
||||
If Not ((strUpper(JustFileName(DirInfo.Name)) = strUpper(GetFTNFlowName(EchoNode.Address))) and EchoNode.Active and (EchoNode.ProtType = 0)) Then Begin
|
||||
FindNext (DirInfo);
|
||||
|
||||
Continue;
|
||||
End;
|
||||
|
||||
Queue.Add (True, OutPath, DirInfo.Name, FileNewExt(DirInfo.Name, 'pkt'));
|
||||
|
||||
FindNext (DirInfo);
|
||||
End;
|
||||
|
||||
FindClose (DirInfo);
|
||||
End;
|
||||
|
||||
// SERVER CLASS IMPLEMENTATION
|
||||
|
||||
Function CreateBINKP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TIOSocket) : TServerClient;
|
||||
|
@ -652,6 +820,11 @@ Begin
|
|||
Result := TBINKPServer.Create(Owner, CliSock);
|
||||
End;
|
||||
|
||||
Procedure Status (Owner: Pointer; Str: String);
|
||||
Begin
|
||||
TServerManager(Owner).Status(Str);
|
||||
End;
|
||||
|
||||
Constructor TBINKPServer.Create (Owner: TServerManager; CliSock: TIOSocket);
|
||||
Begin
|
||||
Inherited Create(Owner, CliSock);
|
||||
|
@ -662,15 +835,26 @@ End;
|
|||
|
||||
Procedure TBINKPServer.Execute;
|
||||
Var
|
||||
Queue : TProtocolQueue;
|
||||
BinkP : TBinkP;
|
||||
Queue : TProtocolQueue;
|
||||
BinkP : TBinkP;
|
||||
Count : Integer;
|
||||
Address : String;
|
||||
Begin
|
||||
Queue := TProtocolQueue.Create;
|
||||
BinkP := TBinkP.Create (Client, Queue, False, bbsConfig.inetBINKPTimeOut);
|
||||
BinkP := TBinkP.Create (Server, Client, Queue, False, bbsConfig.inetBINKPTimeOut);
|
||||
|
||||
BinkP.StatusUpdate := @Status;
|
||||
|
||||
If BinkP.DoAuthentication Then Begin
|
||||
// Pull address and build send queue
|
||||
|
||||
For Count := 1 to strWordCount(BinkP.AddressList, ' ') Do Begin
|
||||
Address := strWordGet(Count, BinkP.AddressList, ' ');
|
||||
|
||||
If BinkP.AuthenticateNode(Address) Then
|
||||
QueueByNode(Queue, False, BinkP.EchoNode);
|
||||
End;
|
||||
|
||||
BinkP.FileList := Queue;
|
||||
BinkP.DoTransfers;
|
||||
End;
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ Uses
|
|||
|
||||
Function CreateFTP (Owner: TServerManager; Config: RecConfig; ND: TNodeData; CliSock: TIOSocket) : TServerClient;
|
||||
|
||||
// user login type: FTPFTN, or regular
|
||||
Type
|
||||
TFTPServer = Class(TServerClient)
|
||||
Server : TServerManager;
|
||||
|
|
|
@ -386,21 +386,21 @@ Begin
|
|||
AddVar ({$IFDEF MPLPARSER} 'userfsreader', {$ENDIF} iBool);
|
||||
End;
|
||||
2 : Begin
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgsyspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.SystemPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgdatapath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.DataPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfglogspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.LogsPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgmsgspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.MsgsPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgattpath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.AttachPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgqwkpath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.QwkPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgsyspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.SystemPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgdatapath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.DataPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfglogspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.LogsPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgmsgspath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.MsgsPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgattpath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.AttachPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgqwkpath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.QwkPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgmenupath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Session.Theme.MenuPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgtextpath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Session.Theme.TextPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgmpepath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Config.ScriptPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgmpepath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @bbsCfg.ScriptPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgtemppath', {$ENDIF} iString, mysMaxPathSize, {$IFNDEF MPLPARSER} @Session.TempPath {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgtimeout', {$ENDIF} iWord, 4, {$IFNDEF MPLPARSER} @Config.Inactivity {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgseeinvis', {$ENDIF} iString, 20, {$IFNDEF MPLPARSER} @Config.AcsSeeInvis {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgtnnodes', {$ENDIF} iByte, 1, {$IFNDEF MPLPARSER} @Config.INetTNNodes {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgtimeout', {$ENDIF} iWord, 4, {$IFNDEF MPLPARSER} @bbsCfg.Inactivity {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgseeinvis', {$ENDIF} iString, 20, {$IFNDEF MPLPARSER} @bbsCfg.AcsSeeInvis {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgtnnodes', {$ENDIF} iByte, 1, {$IFNDEF MPLPARSER} @bbsCfg.INetTNNodes {$ELSE} NIL {$ENDIF});
|
||||
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgnetdesc', {$ENDIF} iString, 30 * 25 - 1, {$IFNDEF MPLPARSER} @Config.NetDesc {$ELSE} NIL {$ENDIF});
|
||||
AddPointer ({$IFDEF MPLPARSER} 'cfgnetdesc', {$ENDIF} iString, 30 * 25 - 1, {$IFNDEF MPLPARSER} @bbsCfg.NetDesc {$ELSE} NIL {$ENDIF});
|
||||
CV[X]^.ArrPos := 1;
|
||||
{$IFNDEF MPLPARSER}
|
||||
CV[X]^.VarSize := 26;
|
||||
|
|
|
@ -7,6 +7,7 @@ Interface
|
|||
Uses
|
||||
DOS,
|
||||
m_FileIO,
|
||||
bbs_dataBase,
|
||||
BBS_Common;
|
||||
|
||||
{$I MPL_TYPES.PAS}
|
||||
|
@ -255,7 +256,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'users.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'users.dat');
|
||||
If Not ioReset(F, SizeOf(RecUser), fmRWDN) Then Exit;
|
||||
|
||||
If ioSeek(F, Pred(Num)) And (ioRead(F, U)) Then Begin
|
||||
|
@ -271,7 +272,7 @@ Var
|
|||
F : File;
|
||||
U : RecUser;
|
||||
Begin
|
||||
Assign (F, Config.DataPath + 'users.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'users.dat');
|
||||
|
||||
If Not ioReset(F, SizeOf(RecUser), fmRWDN) Then Exit;
|
||||
|
||||
|
@ -330,7 +331,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'groups_g.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'groups_g.dat');
|
||||
If Not ioReset(F, SizeOf(RecGroup), fmRWDN) Then Exit;
|
||||
|
||||
If ioSeek(F, Pred(Num)) And (ioRead(F, G)) Then Begin
|
||||
|
@ -355,7 +356,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'fbases.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'fbases.dat');
|
||||
If Not ioReset(F, SizeOf(RecFileBase), fmRWDN) Then Exit;
|
||||
|
||||
If ioSeek(F, Pred(Num)) And (ioRead(F, FB)) Then Begin
|
||||
|
@ -380,7 +381,7 @@ Var
|
|||
Begin
|
||||
Result := False;
|
||||
|
||||
Assign (F, Config.DataPath + 'groups_f.dat');
|
||||
Assign (F, bbsCfg.DataPath + 'groups_f.dat');
|
||||
If Not ioReset(F, SizeOf(RecGroup), fmRWDN) Then Exit;
|
||||
|
||||
If ioSeek(F, Pred(Num)) And (ioRead(F, G)) Then Begin
|
||||
|
@ -2557,7 +2558,7 @@ Begin
|
|||
FN := Session.Theme.ScriptPath + FN
|
||||
Else
|
||||
If Session.Theme.Flags and thmFallBack <> 0 Then
|
||||
FN := Config.ScriptPath + FN;
|
||||
FN := bbsCfg.ScriptPath + FN;
|
||||
|
||||
MPEName := FN;
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ Uses
|
|||
mUtil_MsgPost,
|
||||
mUtil_EchoExport,
|
||||
mUtil_EchoImport,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
{$I MUTIL_ANSI.PAS}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Uses
|
|||
m_FileIO,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Const
|
||||
TotalFiles : Cardinal = 0;
|
||||
|
|
|
@ -8,7 +8,7 @@ Uses
|
|||
m_Output,
|
||||
m_IniReader,
|
||||
mutil_Status,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_MsgBase_Abs,
|
||||
bbs_MsgBase_Squish,
|
||||
bbs_MsgBase_JAM;
|
||||
|
|
|
@ -9,7 +9,7 @@ Uses
|
|||
m_FileIO,
|
||||
m_Strings,
|
||||
m_DateTime,
|
||||
BBS_Common,
|
||||
bbs_DataBase,
|
||||
mUtil_Common;
|
||||
|
||||
Const
|
||||
|
|
|
@ -17,7 +17,7 @@ Uses
|
|||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
mUtil_EchoCore,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_MsgBase_ABS,
|
||||
bbs_MsgBase_JAM,
|
||||
bbs_MsgBase_Squish;
|
||||
|
|
|
@ -13,7 +13,7 @@ Implementation
|
|||
|
||||
Uses
|
||||
m_Strings,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Function ProcessedByAreaFix (Var PKT: TPKTReader) : Boolean;
|
||||
Var
|
||||
|
|
|
@ -13,7 +13,7 @@ Uses
|
|||
m_FileIO,
|
||||
m_Strings,
|
||||
AView,
|
||||
BBS_Common,
|
||||
bbs_DataBase,
|
||||
BBS_MsgBase_ABS,
|
||||
BBS_MsgBase_JAM,
|
||||
BBS_MsgBase_Squish,
|
||||
|
|
|
@ -14,7 +14,7 @@ Uses
|
|||
m_FileIO,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Procedure uImportFileBone;
|
||||
Var
|
||||
|
|
|
@ -14,7 +14,7 @@ Uses
|
|||
m_DateTime,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Procedure uImportFilesBBS;
|
||||
Var
|
||||
|
|
|
@ -14,7 +14,7 @@ Uses
|
|||
m_Strings,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Procedure uImportMessageBases;
|
||||
Var
|
||||
|
|
|
@ -12,7 +12,7 @@ Uses
|
|||
m_Strings,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Procedure uImportNA;
|
||||
Var
|
||||
|
|
|
@ -13,7 +13,8 @@ Uses
|
|||
m_Strings,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_Common,
|
||||
bbs_DataBase;
|
||||
|
||||
Procedure uPostMessages;
|
||||
Const
|
||||
|
|
|
@ -13,7 +13,7 @@ Uses
|
|||
m_DateTime,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_MsgBase_ABS,
|
||||
bbs_MsgBase_JAM,
|
||||
bbs_MsgBase_Squish;
|
||||
|
@ -97,4 +97,4 @@ Begin
|
|||
ProcessResult (rDONE, True);
|
||||
End;
|
||||
|
||||
End.
|
||||
End.
|
||||
|
|
|
@ -14,7 +14,7 @@ Uses
|
|||
m_FileIO,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Type
|
||||
TopListType = (TopCall, TopPost, TopDL, TopUL, TopPCR);
|
||||
|
|
|
@ -13,7 +13,7 @@ Uses
|
|||
m_DateTime,
|
||||
mUtil_Common,
|
||||
mUtil_Status,
|
||||
bbs_Common;
|
||||
bbs_DataBase;
|
||||
|
||||
Procedure uMassUpload;
|
||||
Var
|
||||
|
|
|
@ -42,6 +42,7 @@ Uses
|
|||
m_Input,
|
||||
m_Pipe,
|
||||
bbs_Common,
|
||||
bbs_DataBase,
|
||||
bbs_Core,
|
||||
bbs_NodeInfo,
|
||||
bbs_Cfg_Main;
|
||||
|
@ -63,14 +64,14 @@ Begin
|
|||
Assign (ConfigFile, 'mystic.dat');
|
||||
|
||||
if ioReset(ConfigFile, SizeOf(RecConfig), fmReadWrite + fmDenyNone) Then Begin
|
||||
Read (ConfigFile, Config);
|
||||
Read (ConfigFile, bbsCfg);
|
||||
Close (ConfigFile);
|
||||
End Else Begin
|
||||
WriteLn('ERROR: Unable to read mystic.dat');
|
||||
Halt(1);
|
||||
End;
|
||||
|
||||
If Config.DataChanged <> mysDataChanged Then Begin
|
||||
If bbsCfg.DataChanged <> mysDataChanged Then Begin
|
||||
WriteLn('ERROR: Data files are not current and must be upgraded');
|
||||
Halt(1);
|
||||
End;
|
||||
|
@ -141,7 +142,7 @@ Begin
|
|||
FileMode := 66;
|
||||
|
||||
DirClean (Session.TempPath, '');
|
||||
FileErase (Config.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
FileErase (bbsCfg.DataPath + 'chat' + strI2S(Session.NodeNum) + '.dat');
|
||||
|
||||
{$IFNDEF LOGGING}
|
||||
{$IFNDEF UNIX}
|
||||
|
@ -176,8 +177,8 @@ Var
|
|||
Begin
|
||||
Session.NodeNum := 0;
|
||||
|
||||
For Count := 1 to Config.INetTNNodes Do Begin
|
||||
Assign (ChatFile, Config.DataPath + 'chat' + strI2S(Count) + '.dat');
|
||||
For Count := 1 to bbsCfg.INetTNNodes Do Begin
|
||||
Assign (ChatFile, bbsCfg.DataPath + 'chat' + strI2S(Count) + '.dat');
|
||||
|
||||
If Not ioReset (ChatFile, Sizeof(ChatRec), fmRWDN) Then Begin
|
||||
Session.NodeNum := Count;
|
||||
|
@ -245,21 +246,21 @@ Begin
|
|||
Randomize;
|
||||
|
||||
FileMode := 66;
|
||||
Session.TempPath := Config.SystemPath + 'temp' + strI2S(Session.NodeNum) + PathChar;
|
||||
Session.Pipe := TPipe.Create(Config.DataPath, False, Session.NodeNum);
|
||||
Session.TempPath := bbsCfg.SystemPath + 'temp' + strI2S(Session.NodeNum) + PathChar;
|
||||
Session.Pipe := TPipe.Create(bbsCfg.DataPath, False, Session.NodeNum);
|
||||
|
||||
{$I-}
|
||||
MkDir (Config.SystemPath + 'temp' + strI2S(Session.NodeNum));
|
||||
MkDir (bbsCfg.SystemPath + 'temp' + strI2S(Session.NodeNum));
|
||||
{$I+}
|
||||
|
||||
If IoResult <> 0 Then;
|
||||
|
||||
DirClean (Session.TempPath, '');
|
||||
|
||||
Assign (Session.User.UserFile, Config.DataPath + 'users.dat');
|
||||
Assign (Session.User.UserFile, bbsCfg.DataPath + 'users.dat');
|
||||
{$I-} Reset (Session.User.UserFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
If FileExist(Config.DataPath + 'users.dat') Then Begin
|
||||
If FileExist(bbsCfg.DataPath + 'users.dat') Then Begin
|
||||
Screen.WriteLine ('ERROR: Unable to access USERS.DAT');
|
||||
DisposeClasses;
|
||||
Halt(1);
|
||||
|
@ -269,12 +270,12 @@ Begin
|
|||
End;
|
||||
Close (Session.User.UserFile);
|
||||
|
||||
Assign (Session.VoteFile, Config.DataPath + 'votes.dat');
|
||||
Assign (Session.VoteFile, bbsCfg.DataPath + 'votes.dat');
|
||||
{$I-} Reset (Session.VoteFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (Session.VoteFile);
|
||||
Close (Session.VoteFile);
|
||||
|
||||
Assign (Session.ThemeFile, Config.DataPath + 'theme.dat');
|
||||
Assign (Session.ThemeFile, bbsCfg.DataPath + 'theme.dat');
|
||||
{$I-} Reset (Session.ThemeFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
Screen.WriteLine ('ERROR: No theme configuration.');
|
||||
|
@ -283,9 +284,9 @@ Begin
|
|||
End;
|
||||
Close (Session.ThemeFile);
|
||||
|
||||
If Not Session.LoadThemeData(Config.DefThemeFile) Then Begin
|
||||
If Not Session.LoadThemeData(bbsCfg.DefThemeFile) Then Begin
|
||||
If Not Session.ConfigMode Then Begin
|
||||
Screen.WriteLine ('ERROR: Default theme prompts not found: ' + Config.DefThemeFile + '.txt');
|
||||
Screen.WriteLine ('ERROR: Default theme prompts not found: ' + bbsCfg.DefThemeFile + '.txt');
|
||||
DisposeClasses;
|
||||
Halt(1);
|
||||
End;
|
||||
|
@ -293,16 +294,16 @@ Begin
|
|||
|
||||
If Session.ConfigMode Then Exit;
|
||||
|
||||
CheckDIR (Config.SystemPath);
|
||||
CheckDIR (Config.AttachPath);
|
||||
CheckDIR (Config.DataPath);
|
||||
CheckDIR (Config.MsgsPath);
|
||||
CheckDIR (Config.SemaPath);
|
||||
CheckDIR (Config.QwkPath);
|
||||
CheckDIR (Config.ScriptPath);
|
||||
CheckDIR (Config.LogsPath);
|
||||
CheckDIR (bbsCfg.SystemPath);
|
||||
CheckDIR (bbsCfg.AttachPath);
|
||||
CheckDIR (bbsCfg.DataPath);
|
||||
CheckDIR (bbsCfg.MsgsPath);
|
||||
CheckDIR (bbsCfg.SemaPath);
|
||||
CheckDIR (bbsCfg.QwkPath);
|
||||
CheckDIR (bbsCfg.ScriptPath);
|
||||
CheckDIR (bbsCfg.LogsPath);
|
||||
|
||||
Assign (RoomFile, Config.DataPath + 'chatroom.dat');
|
||||
Assign (RoomFile, bbsCfg.DataPath + 'chatroom.dat');
|
||||
{$I-} Reset (RoomFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
ReWrite (RoomFile);
|
||||
|
@ -312,12 +313,12 @@ Begin
|
|||
End;
|
||||
Close (RoomFile);
|
||||
|
||||
Assign (Session.FileBase.FBaseFile, Config.DataPath + 'fbases.dat');
|
||||
Assign (Session.FileBase.FBaseFile, bbsCfg.DataPath + 'fbases.dat');
|
||||
{$I-} Reset(Session.FileBase.FBaseFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite(Session.FileBase.FBaseFile);
|
||||
Close (Session.FileBase.FBaseFile);
|
||||
|
||||
Assign (Session.Msgs.MBaseFile, Config.DataPath + 'mbases.dat');
|
||||
Assign (Session.Msgs.MBaseFile, bbsCfg.DataPath + 'mbases.dat');
|
||||
{$I-} Reset(Session.Msgs.MBaseFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
Screen.WriteLine ('ERROR: No message base configuration. Use MYSTIC -CFG');
|
||||
|
@ -326,17 +327,17 @@ Begin
|
|||
End;
|
||||
Close (Session.Msgs.MBaseFile);
|
||||
|
||||
Assign (Session.Msgs.GroupFile, Config.DataPath + 'groups_g.dat');
|
||||
Assign (Session.Msgs.GroupFile, bbsCfg.DataPath + 'groups_g.dat');
|
||||
{$I-} Reset (Session.Msgs.GroupFile); {$I-}
|
||||
If IoResult <> 0 Then ReWrite(Session.Msgs.GroupFile);
|
||||
Close (Session.Msgs.GroupFile);
|
||||
|
||||
Assign (Session.FileBase.FGroupFile, Config.DataPath + 'groups_f.dat');
|
||||
Assign (Session.FileBase.FGroupFile, bbsCfg.DataPath + 'groups_f.dat');
|
||||
{$I-} Reset (Session.FileBase.FGroupFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (Session.FileBase.FGroupFile);
|
||||
Close (Session.FileBase.FGroupFile);
|
||||
|
||||
Assign (Session.User.SecurityFile, Config.DataPath + 'security.dat');
|
||||
Assign (Session.User.SecurityFile, bbsCfg.DataPath + 'security.dat');
|
||||
{$I-} Reset (Session.User.SecurityFile); {$I+}
|
||||
If IoResult <> 0 Then Begin
|
||||
ReWrite(Session.User.SecurityFile);
|
||||
|
@ -346,17 +347,17 @@ Begin
|
|||
End;
|
||||
Close (Session.User.SecurityFile);
|
||||
|
||||
Assign (LastOnFile, Config.DataPath + 'callers.dat');
|
||||
Assign (LastOnFile, bbsCfg.DataPath + 'callers.dat');
|
||||
{$I-} Reset(LastOnFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite(LastOnFile);
|
||||
Close (LastOnFile);
|
||||
|
||||
Assign (Session.FileBase.ArcFile, Config.DataPath + 'archive.dat');
|
||||
Assign (Session.FileBase.ArcFile, bbsCfg.DataPath + 'archive.dat');
|
||||
{$I-} Reset(Session.FileBase.ArcFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite(Session.FileBase.ArcFile);
|
||||
Close (Session.FileBase.ArcFile);
|
||||
|
||||
Assign (Session.FileBase.ProtocolFile, Config.DataPath + 'protocol.dat');
|
||||
Assign (Session.FileBase.ProtocolFile, bbsCfg.DataPath + 'protocol.dat');
|
||||
{$I-} Reset (Session.FileBase.ProtocolFile); {$I+}
|
||||
If IoResult <> 0 Then ReWrite (Session.FileBase.ProtocolFile);
|
||||
Close (Session.FileBase.ProtocolFile);
|
||||
|
@ -470,7 +471,7 @@ Begin
|
|||
If Session.TimeOffset > 0 Then
|
||||
Session.SetTimeLeft(Session.TimeOffset)
|
||||
Else
|
||||
Session.SetTimeLeft(Config.LoginTime);
|
||||
Session.SetTimeLeft(bbsCfg.LoginTime);
|
||||
|
||||
{$IFNDEF UNIX}
|
||||
Screen.TextAttr := 7;
|
||||
|
@ -494,7 +495,7 @@ Begin
|
|||
If Session.User.ThisUser.StartMenu <> '' Then
|
||||
Session.Menu.MenuName := Session.User.ThisUser.StartMenu
|
||||
Else
|
||||
Session.Menu.MenuName := Config.DefStartMenu;
|
||||
Session.Menu.MenuName := bbsCfg.DefStartMenu;
|
||||
|
||||
Repeat
|
||||
Session.Menu.ExecuteMenu (True, True, False, True);
|
||||
|
|
|
@ -3542,4 +3542,9 @@
|
|||
! Fixed an issue with useropts variable in MPL which could cause memory
|
||||
corruption.
|
||||
|
||||
<ALPHA 37 RELEASED>
|
||||
! Fixed two leaked file handles during QWK packet generation.
|
||||
|
||||
+ New MCI code: FT returns the total number of files in the current file
|
||||
area.
|
||||
|
||||
<ALPHA 37 RELEASED>
|
||||
|
|
Loading…
Reference in New Issue