QWK networking (bbs side) complete. Now onto MIS...

This commit is contained in:
mysticbbs 2013-08-28 23:28:53 -04:00
parent 3868c9b4dc
commit 1c3dfaff3a
16 changed files with 97 additions and 27 deletions

View File

@ -483,6 +483,8 @@ Var
List.Add(strPadR(strAddr2Str(bbsCfg.NetAddress[A]), 23, ' ') + ' ' + strPadR(bbsCfg.NetDomain[A], 8, ' ') + ' ' + strPadR(strYN(bbsCfg.NetPrimary[A]), 3, ' ') + ' ' + bbsCfg.NetDesc[A], 0);
End;
Var
Count : Byte;
Begin
Result := 0;
@ -512,6 +514,12 @@ Begin
End;
Until False;
For Count := 1 to 30 Do Begin
If bbsCfg.NetPrimary[Count] Then Break;
If Count = 30 Then ShowMsgBox(0, 'WARNING: No address is set to primary');
End;
List.Close;
Box.Close;

View File

@ -215,7 +215,6 @@ Begin
Form.AddNone ('4', ' 4 SMTP Server Options', 26, 9, 26, 9, 27, '');
Form.AddNone ('5', ' 5 NNTP Server Options', 26, 10, 26, 10, 27, '');
Form.AddNone ('6', ' 6 BINKP Server Options', 26, 11, 26, 11, 27, '');
Form.AddNone ('7', ' 7 FTN-FTP Server Options', 26, 12, 26, 12, 27, '');
Res := Form.Execute;
MenuPos[2] := Form.ItemPos;
@ -236,7 +235,6 @@ Begin
'4' : Configuration_SMTPServer;
'5' : Configuration_NNTPServer;
'6' : Configuration_BINKPServer;
// '7' : Configuration_FTNFTPServer;
'X' : Break;
Else
MenuPtr := 0;

View File

@ -31,7 +31,7 @@ Type
End;
Const
Num_Cmds = 102;
Num_Cmds = 101;
MenuCmds : Array[1..Num_Cmds] of CmdRec = (
// AUTOSIG MENU COMMANDS
( Name: 'AE'; Desc: 'Autosig editor' ),
@ -112,7 +112,6 @@ Const
// OFFLINE MAIL MENU COMMANDS
( Name: 'OS'; Desc: 'Set QWK scanned bases' ),
( Name: 'OD'; Desc: 'Download QWK packet' ),
( Name: 'OE'; Desc: 'Download QWKE packet' ),
( Name: 'OU'; Desc: 'Upload REP packet' ),
// DOWNLOAD QUEUE MENU COMMANDS

View File

@ -114,7 +114,7 @@ Begin
Box.Open (3, 4, 77, 22);
VerticalLine (17, 5, 20);
VerticalLine (17, 5, 21);
VerticalLine (66, 5, 21);
Form.AddStr ('N', ' Name' , 11, 5, 19, 5, 6, 30, 40, @MBase.Name, Topic + 'Message base description');
@ -133,6 +133,7 @@ Begin
Form.AddStr ('S', ' Sponsor' , 8, 18, 19, 18, 9, 30, 30, @MBase.Sponsor, Topic + 'User name of base''s sponser');
Form.AddStr ('T', ' R Template' , 5, 19, 19, 19, 12, 20, 20, @MBase.RTemplate, Topic + 'Template for full screen reader');
Form.AddStr ('M', ' L Template' , 5, 20, 19, 20, 12, 20, 20, @MBase.ITemplate, Topic + 'Template for lightbar message list');
Form.AddBits ('0', ' QWK Network' , 4, 21, 19, 21, 13, MBAllowQWKNet, @MBase.Flags, Topic + 'Is this base a QWK network base?');
Form.AddAttr ('Q', ' Quote Color' , 53, 5, 68, 5, 13, @MBase.ColQuote, Topic + 'Color for quoted text');
Form.AddAttr ('X', ' Text Color' , 54, 6, 68, 6, 12, @MBase.ColText, Topic + 'Color for message text');

View File

@ -83,7 +83,7 @@ Begin
Box.Open (5, 5, 75, 18);
VerticalLine (24, 7, 16);
VerticalLine (24, 7, 17);
VerticalLine (67, 7, 12);
Form.AddStr ('B', ' BBS Name', 14, 7, 26, 7, 10, 25, 30, @bbsCfg.BBSName, Topic);
@ -93,9 +93,10 @@ Begin
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.AddStr ('Q', ' QWK Net Menu', 10, 14, 26, 14, 14, 20, 20, @bbsCfg.QwkNetMenu, Topic + 'QWK menu for QWK network users');
Form.AddStr ('H', ' Theme', 17, 15, 26, 15, 7, 20, 20, @bbsCfg.DefThemeFile, Topic);
Form.AddBol ('K', ' Ask Theme', 13, 16, 26, 16, 11, 3, @bbsCfg.ThemeOnStart, Topic + 'Ask theme each connection');
Form.AddTog ('E', ' Terminal', 14, 17, 26, 17, 10, 10, 0, 3, 'Ask Detect Detect/Ask ANSI', @bbsCfg.DefTermMode, Topic);
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);

View File

@ -152,6 +152,7 @@ Begin
Form.AddBol ('I', ' Mail Index' , 7, 12, 23, 12, 14, 3, @U.UseLBMIdx, Topic + 'Start reading email at message index');
Form.AddTog ('N', ' Node Chat' , 7, 13, 23, 13, 14, 8, 0, 1, 'Standard Full', @U.UseFullChat, Topic + 'User''s node chat type');
Form.AddTog ('C', ' Code Page' , 7, 14, 23, 14, 14, 5, 0, 1, 'CP437 UTF-8', @U.CodePage, Topic + 'User''s character translation');
Form.AddBol ('Q', ' QWKE Packet' , 7, 15, 23, 15, 14, 3, @U.QwkExtended, Topic + 'Use QWKE (instead of QWK)');
End;
4 : Begin
Form.Clear;
@ -190,6 +191,7 @@ Begin
Form.AddBits ('P', ' No PW Change', 7, 10, 23, 10, 14, UserNoPWChange, @U.Flags, Topic + 'Exclude from forced password change');
Form.AddBits ('H', ' No History' , 7, 11, 23, 11, 14, UserNoHistory, @U.Flags, Topic + 'Exclude from BBS history stats');
Form.AddBits ('T', ' No Timeout' , 7, 12, 23, 12, 14, UserNoTimeout, @U.Flags, Topic + 'Exclude from inactivity timeout');
Form.AddBits ('Q', ' QWK Network' , 7, 13, 23, 13, 14, UserQWKNetwork, @U.Flags, Topic + 'User is a QWK network account');
End;
End;

View File

@ -246,7 +246,7 @@ Procedure TBBSCore.SystemLog (Str: String);
Var
tLOG : Text;
Begin
Assign (tLOG, bbsCfg.LogsPath + 'sysop.' + strI2S(NodeNum));
Assign (tLOG, bbsCfg.LogsPath + 'node' + strI2S(NodeNum) + '.log');
{$I-} Append(tLOG); {$I+}
If IoResult <> 0 Then ReWrite (tLOG);

View File

@ -458,7 +458,8 @@ Begin
While Not Eof(Session.User.UserFile) Do Begin
Read (Session.User.UserFile, TempUser);
If TempUser.Flags AND UserDeleted <> 0 Then Continue;
If (TempUser.Flags AND UserDeleted <> 0) and
(TempUser.Flags AND UserQWKNetwork <> 0) Then Continue;
Session.io.PromptInfo[1] := TempUser.Handle;
Session.io.PromptInfo[2] := TempUser.City;

View File

@ -704,6 +704,7 @@ Begin
End;
'Q' : Case Code[2] of
'A' : LastMCIValue := TBBSCore(Core).User.ThisUser.Archive;
'E' : LastMCIValue := OutYN (TBBSCore(Core).User.ThisUser.QwkExtended);
'L' : LastMCIValue := OutYN (TBBSCore(Core).User.ThisUser.QwkFiles);
'O' : ShowRandomQuote;
End;

View File

@ -258,7 +258,7 @@ Begin
'M' : Case Cmd[2] of
'A' : Session.Msgs.ChangeArea(CmdData);
'C' : Session.Msgs.CheckEMail(CmdData);
'D' : Session.Msgs.SetMessagePointers;
'D' : Session.Msgs.SetMessagePointers (Pos('/ALL', strUpper(CmdData)) > 0);
'G' : Session.Msgs.MessageGroupChange (CmdData, True, True);
'L' : Session.Msgs.NetMailLookup (True, '', '');
'M' : Session.Msgs.SendMassEmail;
@ -285,8 +285,7 @@ Begin
End;
'O' : Case Cmd[2] of
'S' : Session.Msgs.ToggleNewScan(True, CmdData);
'D' : Session.Msgs.DownloadQWK(False, CmdData);
'E' : Session.Msgs.DownloadQWK(True, CmdData);
'D' : Session.Msgs.DownloadQWK(Session.User.ThisUser.QwkExtended, CmdData);
'U' : Session.Msgs.UploadREP;
End;
'Q' : Case Cmd[2] of

View File

@ -64,7 +64,7 @@ Type
Procedure MessageNewScan (Data: String);
Procedure MessageQuickScan (Data: String);
Procedure GlobalMessageSearch (Mode: Char);
Procedure SetMessagePointers;
Procedure SetMessagePointers (ForceGlobal: Boolean);
Procedure ViewSentEmail;
Function ResolveOrigin (Var mArea: RecMessageBase) : String;
// QWK and QWKE goodies
@ -780,6 +780,7 @@ End;
Procedure TMsgBase.ToggleNewScan (QWK: Boolean; Data: String);
Var
Total : LongInt;
QwkNet : Boolean;
Procedure List_Bases;
Begin
@ -801,6 +802,8 @@ Var
While Not Eof(MBaseFile) Do Begin
Read (MBaseFile, MBase);
If QwkNet And (MBase.Flags AND MBAllowQWKNet = 0) Then Continue;
If Session.User.Access(MBase.ListACS) Then Begin
Inc (Total);
@ -923,6 +926,8 @@ Begin
Session.User.IgnoreGroup := Pos('/ALLGROUP', strUpper(Data)) > 0;
QwkNet := Pos('/QWKNET', strUpper(Data)) > 0;
List_Bases;
If Total = 0 Then Begin
@ -3281,7 +3286,7 @@ Begin
MBase := TempBase;
End;
Procedure TMsgBase.SetMessagePointers;
Procedure TMsgBase.SetMessagePointers (ForceGlobal: Boolean);
Var
NewDate : LongInt;
@ -3322,7 +3327,6 @@ Var
End;
Var
Global : Boolean;
InDate : String[8];
Begin
Session.io.OutFull (Session.GetPrompt(458));
@ -3332,11 +3336,13 @@ Begin
If Not DateValid(InDate) Then Exit;
NewDate := DateStr2Dos(InDate);
Global := Session.io.GetYN(Session.GetPrompt(459), False);
If Not ForceGlobal Then
ForceGlobal := Session.io.GetYN(Session.GetPrompt(459), False);
Session.io.OutFullLn (Session.GetPrompt(460));
If Global Then Begin
If ForceGlobal Then Begin
ioReset (MBaseFile, SizeOf(RecMessageBase), fmRWDN);
ioRead (MBaseFile, MBase);
@ -3532,7 +3538,10 @@ Begin
While Not Eof(Session.User.UserFile) Do Begin
Read (Session.User.UserFile, Session.User.ThisUser);
If (Session.User.ThisUser.Flags AND UserDeleted = 0) and Session.User.Access(ACS) Then Begin
If (Session.User.ThisUser.Flags AND UserDeleted = 0) and
(Session.User.ThisUser.Flags AND UserQWKNetwork = 0) and
Session.User.Access(ACS) Then Begin
Session.io.PromptInfo[1] := Session.User.ThisUser.Handle;
Session.io.OutFullLn (Session.GetPrompt(392));

View File

@ -310,7 +310,10 @@ Begin
While Not Eof(UserFile) Do Begin
Read (UserFile, TempUser);
If TempUser.Flags AND UserDeleted <> 0 Then Continue;
If (TempUser.Flags AND UserDeleted <> 0) Then Continue;
// If (TempUser.Flags AND UserDeleted <> 0) or
// (TempUser.Flags AND UserQWKNetwork <> 0) Then Continue;
If Pos(Str, strUpper(TempUser.Handle)) > 0 Then Begin
If First Then Begin
@ -356,6 +359,8 @@ Begin
Read (UserFile, TempUser);
If (((RecNum > 0) And (TempUser.PermIdx = RecNum)) or (strUpper(TempUser.RealName) = Str) or (strUpper(TempUser.Handle) = Str)) and (TempUser.Flags And UserDeleted = 0) Then Begin
//If ExcludeQWK and (TempUser.Flags AND UserQWKNetwork <> 0) Then Continue;
If Adjust Then UserNum := FilePos(UserFile);
Result := True;
@ -1047,6 +1052,8 @@ Var
Count : Byte;
Ch : Char;
Begin
If ThisUser.Flags and UserQWKNetwork <> 0 Then Exit;
{$IFDEF LOGGING} Session.SystemLog('Logon3'); {$ENDIF}
Chat.Available := True;
@ -1207,6 +1214,7 @@ Begin
If Session.User.ThisUser.Security = 0 Then Begin
Session.io.OutFullLn(Session.GetPrompt(477));
Session.User.ThisUser.Flags := Session.User.ThisUser.Flags AND UserDeleted;
Exit;
End Else
Session.io.OutFullLn(Session.GetPrompt(476));
@ -1437,6 +1445,7 @@ Begin
30 : ThisUser.QwkFiles := Not ThisUser.QwkFiles;
31 : Session.FileBase.SelectArchive;
32 : ThisUser.Protocol := Session.FileBase.SelectProtocol(False, True);
33 : ThisUser.QwkExtended := Not ThisUser.QwkExtended;
End;
End;

View File

@ -187,7 +187,8 @@ Begin
While Not EOF(UserFile) Do Begin
Read (UserFile, User);
If User.Flags And UserDeleted <> 0 Then Continue;
If (User.Flags And UserDeleted <> 0) or
(User.Flags And UserQWKNetwork <> 0) Then Continue;
BarOne.Update(FilePos(UserFile), FileSize(UserFile));

View File

@ -492,6 +492,9 @@ Begin
If Session.TimeOffset > 0 Then
Session.TimeSaved := Session.User.ThisUser.TimeLeft;
If (Session.User.ThisUser.Flags AND UserQWKNetwork <> 0) and (bbsCfg.QwkNetMenu <> '') Then
Session.Menu.MenuName := bbsCfg.QwkNetMenu
Else
If Session.User.ThisUser.StartMenu <> '' Then
Session.Menu.MenuName := Session.User.ThisUser.StartMenu
Else

View File

@ -342,7 +342,8 @@ Type
inetBINKPDupes : Byte;
inetBINKPTimeOut: Word;
inetBINKPCram5 : Boolean;
Reserved : Array[1..778] of Char;
QwkNetMenu : String[20];
Reserved : Array[1..757] of Char;
End;
Const
@ -354,6 +355,7 @@ Const
UserNoPWChange = $00000020;
UserNoHistory = $00000040;
UserNoTimeout = $00000080;
UserQWKNetwork = $00000100;
Type
RecUser = Record // USERS.DAT
@ -422,7 +424,8 @@ Type
Credits : LongInt;
Protocol : Char;
CodePage : Byte; // 0 = CP437, 1 = UTF8
Reserved : Array[1..388] of Byte;
QwkExtended : Boolean;
Reserved : Array[1..387] of Byte;
End;
RecEvent = Record
@ -493,6 +496,7 @@ Const
MBNoAttach = $00000008; // 4
MBPrivate = $00000010; // 5
MBPrivReply = $00000020; // 6
MBAllowQWKNet = $00000040; // 7
Type
RecMessageBase = Record // MBASES.DAT

View File

@ -3554,4 +3554,38 @@
directory, assuming "Server Logging" is turned on in Internet Server
Options.
+ In order to maintain consistancy and for easier file association, telnet
node logs have changed from "sysop.nodenumber" to "node<nodenumber>.log"
in the logs directory.
+ Users can now be flaged as "QWK Network Account" in the User editor.
Account names should be the same as their QWK Network BBSID. These users
will bypass a majority of the login procedures and can have their own
distinct start menu (found in General Settings). A new default menu called
"qwknetwork.mnu" has been included as an example of how one should likely
be setup.
+ Message bases can now be flagged as "Allow QWK Networking" which means that
the message base will be allowed to be selected for scanning by QWK network
scans.
+ The OS menu command (Set QWK scan settings) now has the /QWKNET option
available in command data. This limits the message bases listed to ONLY
show bases flagged for QWK networking.
+ The OE menu command has been removed. Instead, a setting now saves the
users preference of QWK or QWKE packets. You will need to update your
QWK menu to remove this command and to add the toggle of the QWKE packet,
or you can optionally use the new qwk.mnu included as a guide/replacement.
+ New Menu command GE (edit user preferences) optional data: 33. This
toggles the user's preference for QWKE style packets on or off.
+ New MCI code QE returns Yes/No based on the users QWK Extended setting.
+ The MD menu command (set message lastread pointers) now has the optional
data option of /ALL. If this is used, Mystic will NOT has if the user
wants to update their current base, and will instead force the update for
all message bases.
<ALPHA 37 RELEASED>