diff --git a/mystic/bbs_cfg_archive.pas b/mystic/bbs_cfg_archive.pas index 7200c27..131e100 100644 --- a/mystic/bbs_cfg_archive.pas +++ b/mystic/bbs_cfg_archive.pas @@ -35,7 +35,7 @@ Begin Form.AddBol ('A', ' Active ' , 20, 7, 30, 7, 8, 3, @Arc.Active, ''); Form.AddStr ('X', ' Extension ' , 17, 8, 30, 8, 11, 4, 4, @Arc.Ext, ''); - Form.AddTog ('O', ' OS ' , 24, 9, 30, 9, 4, 7, 0, 3, 'Windows Linux OSX All', @Arc.OSType, ''); + Form.AddTog ('O', ' OS ' , 24, 9, 30, 9, 4, 7, 0, 4, 'Windows Linux OSX All OS/2', @Arc.OSType, ''); Form.AddStr ('D', ' Description ' , 15, 10, 30, 10, 13, 30, 30, @Arc.Desc, ''); Form.AddStr ('P', ' Pack Cmd ' , 18, 11, 30, 11, 10, 35, 80, @Arc.Pack, ''); Form.AddStr ('U', ' Unpack Cmd ' , 16, 12, 30, 12, 12, 35, 80, @Arc.Unpack, ''); diff --git a/mystic/bbs_cfg_protocol.pas b/mystic/bbs_cfg_protocol.pas index 7525a48..fe23ca4 100644 --- a/mystic/bbs_cfg_protocol.pas +++ b/mystic/bbs_cfg_protocol.pas @@ -34,7 +34,7 @@ Begin VerticalLine (22, 7, 13); Form.AddBol ('A', ' Active ' , 14, 7, 24, 7, 8, 3, @Prot.Active, ''); - Form.AddTog ('O', ' OS ' , 18, 8, 24, 8, 4, 7, 0, 3, 'Windows Linux OSX All', @Prot.OSType, ''); + Form.AddTog ('O', ' OS ' , 18, 8, 24, 8, 4, 7, 0, 4, 'Windows Linux OSX All OS/2', @Prot.OSType, ''); Form.AddBol ('B', ' Batch ' , 15, 9, 24, 9, 7, 3, @Prot.Batch, ''); Form.AddChar ('K', ' Hot Key ' , 13, 10, 24, 10, 9, 1, 254, @Prot.Key, ''); Form.AddStr ('D', ' Description ' , 9, 11, 24, 11, 13, 40, 40, @Prot.Desc, ''); diff --git a/mystic/bbs_cfg_syscfg.pas b/mystic/bbs_cfg_syscfg.pas index d48d07d..e69dee4 100644 --- a/mystic/bbs_cfg_syscfg.pas +++ b/mystic/bbs_cfg_syscfg.pas @@ -285,7 +285,7 @@ Begin 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.AddBol ('L', ' Logging', 22, 14, 33, 14, 12, 3, @bbsCfg.inetLogging, Topic + 'Enable server logging'); Form.Execute; diff --git a/mystic/mis.pas b/mystic/mis.pas index 5d69604..c18e379 100644 --- a/mystic/mis.pas +++ b/mystic/mis.pas @@ -365,6 +365,7 @@ Begin TelnetServer.Server.FTelnetServer := True; TelnetServer.ClientMaxIPs := bbsConfig.InetTNDupes; + TelnetServer.LogFile := 'telnet'; Result := True; End; @@ -374,6 +375,7 @@ Begin SMTPServer.Server.FTelnetServer := False; SMTPServer.ClientMaxIPs := bbsConfig.INetSMTPDupes; + SMTPServer.LogFile := 'smtp'; Result := True; End; @@ -383,6 +385,7 @@ Begin POP3Server.Server.FTelnetServer := False; POP3Server.ClientMaxIPs := bbsConfig.inetPOP3Dupes; + POP3Server.LogFile := 'pop3'; Result := True; End; @@ -392,6 +395,7 @@ Begin FTPServer.Server.FTelnetServer := False; FTPServer.ClientMaxIPs := bbsConfig.inetFTPDupes; + FTPServer.LogFile := 'ftp'; Result := True; End; @@ -401,6 +405,7 @@ Begin NNTPServer.Server.FTelnetServer := False; NNTPServer.ClientMaxIPs := bbsConfig.inetNNTPDupes; + NNTPServer.LogFile := 'nntp'; Result := True; End; @@ -410,6 +415,7 @@ Begin BINKPServer.Server.FTelnetServer := False; BINKPServer.ClientMaxIPs := bbsConfig.inetBINKPDupes; + BINKPServer.LogFile := 'binkp'; Result := True; End; diff --git a/mystic/mis_client_binkp.pas b/mystic/mis_client_binkp.pas index 13cb98c..50ed278 100644 --- a/mystic/mis_client_binkp.pas +++ b/mystic/mis_client_binkp.pas @@ -839,6 +839,7 @@ Var BinkP : TBinkP; Count : Integer; Address : String; + Before : LongInt; Begin Queue := TProtocolQueue.Create; BinkP := TBinkP.Create (Server, Client, Queue, False, bbsConfig.inetBINKPTimeOut); @@ -850,8 +851,13 @@ Begin For Count := 1 to strWordCount(BinkP.AddressList, ' ') Do Begin Address := strWordGet(Count, BinkP.AddressList, ' '); - If BinkP.AuthenticateNode(Address) Then + If BinkP.AuthenticateNode(Address) Then Begin + Before := Queue.QSize; + QueueByNode(Queue, False, BinkP.EchoNode); + + Server.Status ('Queued ' + strI2S(Queue.QSize - Before) + ' files for ' + strAddr2Str(BinkP.EchoNode.Address)); + End; End; BinkP.FileList := Queue; diff --git a/mystic/mis_server.pas b/mystic/mis_server.pas index 3c6ca5e..2ddef71 100644 --- a/mystic/mis_server.pas +++ b/mystic/mis_server.pas @@ -24,6 +24,7 @@ Type NodeInfo : TNodeData; Server : TIOSocket; ServerStatus : TStringList; + LogFile : String[20]; StatusUpdated : Boolean; ClientList : TList; NewClientProc : TServerCreateProc; @@ -83,6 +84,7 @@ Begin TextPath := Cfg.DataPath; NodeInfo := ND; Config := Cfg; + LogFile := ''; For Count := 1 to ClientMax Do ClientList.Add(NIL); @@ -164,6 +166,7 @@ End; Procedure TServerManager.Status (Str: String); Var Res : String; + T : Text; Begin If ServerStatus = NIL Then Exit; @@ -184,6 +187,18 @@ Begin ServerStatus.Add(strRep(' ', 14) + Copy(Res, 75, 255)); End Else ServerStatus.Add(Res); + + If Config.inetLogging And (LogFile <> '') Then Begin + FileMode := 66; + Assign (T, Config.LogsPath + 'server_' + LogFile + '.log'); + {$I-} Append (T); {$I+} + If (IoResult <> 0) and (IoResult <> 5) Then + {$I-} ReWrite(T); {$I+} + If IoResult = 0 Then Begin + WriteLn (T, Res); + Close (T); + End; + End; Except { ignore exceptions here -- happens when socketstatus is NIL} { need to review criticals now that they are in FP's RTL} diff --git a/mystic/records.pas b/mystic/records.pas index 70df126..11d102a 100644 --- a/mystic/records.pas +++ b/mystic/records.pas @@ -47,6 +47,15 @@ Const OSType = 2; {$ENDIF} + // OSTYPE 3 = RESERVED FOR "ALL" OS TYPES IN CONFIGURATION + + {$IFDEF OS2} + PathChar = '\'; + LineTerm = #13#10; + OSID = 'OS/2'; + OSType = 4; + {$ENDIF} + mysMaxAcsSize = 30; // Max ACS string size mysMaxPathSize = 80; mysMaxMsgLines = 1000; // Max message base lines @@ -285,7 +294,7 @@ Type // INTERNET SERVER SETTINGS inetDomain : String[25]; inetIPBlocking : Boolean; - inetIPLogging : Boolean; + inetLogging : Boolean; inetSMTPUse : Boolean; inetSMTPPort : Word; inetSMTPMax : Word; diff --git a/mystic/whatsnew.txt b/mystic/whatsnew.txt index 747898c..5a60459 100644 --- a/mystic/whatsnew.txt +++ b/mystic/whatsnew.txt @@ -3547,4 +3547,11 @@ + New MCI code: FT returns the total number of files in the current file area. + + MIS BINKP server is now active. Configuration is in the system + configuration with the rest of the servers. + + + All MIS servers now maintain their own independant log files in the LOGS + directory, assuming "Server Logging" is turned on in Internet Server + Options. +