diff --git a/mystic/bbs_database.pas b/mystic/bbs_database.pas index 724b253..62883c2 100644 --- a/mystic/bbs_database.pas +++ b/mystic/bbs_database.pas @@ -398,7 +398,10 @@ Begin Msg^.SetOrig(bbsCfg.NetAddress[TempBase.NetAddr]); Case TempBase.NetType of - 1 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEcho); + 1 : If TempBase.QwkConfID = 0 Then + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEchoOut) + Else + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileQwk); 2 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNews); 3 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNet); End; diff --git a/mystic/bbs_msgbase.pas b/mystic/bbs_msgbase.pas index 65a0b2d..0f5d004 100644 --- a/mystic/bbs_msgbase.pas +++ b/mystic/bbs_msgbase.pas @@ -696,7 +696,11 @@ Begin Case TempBase.NetType of 1 : Begin - Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEcho); + If TempBase.QwkConfID = 0 Then + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEchoOut) + Else + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileQwk); + If Session.ExitLevel > 5 Then Session.ExitLevel := 7 Else Session.ExitLevel := 5; End; 2 : Begin @@ -3878,7 +3882,10 @@ Begin Msg^.SetOrig(bbsCfg.NetAddress[mArea.NetAddr]); Case mArea.NetType of - 1 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEcho); + 1 : If mArea.QwkConfID = 0 Then + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEchoOut) + Else + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileQwk); 2 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNews); 3 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNet); End; diff --git a/mystic/mis_client_binkp.pas b/mystic/mis_client_binkp.pas index c1d3cf5..de0ad7a 100644 --- a/mystic/mis_client_binkp.pas +++ b/mystic/mis_client_binkp.pas @@ -114,6 +114,7 @@ Type Password : String; PasswordMD5 : Boolean; FileList : TProtocolQueue; + RcvdFiles : LongInt; Constructor Create (O: Pointer; Var C: TIOSocket; Var FL: TProtocolQueue; IsCli: Boolean; TOV: Word); Destructor Destroy; Override; @@ -172,6 +173,7 @@ Begin Password := ''; HaveNode := False; AuthState := SendWelcome; + RcvdFiles := 0; If Not IsClient and UseMD5 Then AuthState := SendChallenge; @@ -635,6 +637,8 @@ Begin Close (InFile); SendFrame (M_GOT, InFN + ' ' + strI2S(InSize) + ' ' + strI2S(InTime)); + Inc (RcvdFiles); + RxState := RxWaitFile; End; End; @@ -863,6 +867,7 @@ Var Count : Integer; Address : String; Before : LongInt; + F : File; Begin Queue := TProtocolQueue.Create; BinkP := TBinkP.Create (Server, Client, Queue, False, bbsConfig.inetBINKPTimeOut); @@ -885,6 +890,12 @@ Begin BinkP.FileList := Queue; BinkP.DoTransfers; + + If BinkP.RcvdFiles > 0 Then Begin + Assign (F, bbsConfig.SemaPath + 'echomail.in'); + ReWrite (F, 1); + Close (F); + End; End; BinkP.Free; diff --git a/mystic/mis_client_nntp.pas b/mystic/mis_client_nntp.pas index ddcfcb9..1a30665 100644 --- a/mystic/mis_client_nntp.pas +++ b/mystic/mis_client_nntp.pas @@ -634,7 +634,10 @@ Begin MsgBase^.SetMailType(mmtEchoMail); Case TempBase.NetType of - 1 : Assign (SemFile, bbsConfig.SemaPath + fn_SemFileEcho); + 1 : If TempBase.QwkConfID = 0 Then + Assign (SemFile, bbsConfig.SemaPath + fn_SemFileEchoOut) + Else + Assign (SemFile, bbsConfig.SemaPath + fn_SemFileQwk); 2 : Assign (SemFile, bbsConfig.SemaPath + fn_SemFileNews); End; diff --git a/mystic/mutil_common.pas b/mystic/mutil_common.pas index 384bb29..771726a 100644 --- a/mystic/mutil_common.pas +++ b/mystic/mutil_common.pas @@ -356,7 +356,10 @@ Begin Msg^.SetOrig(bbsCfg.NetAddress[mArea.NetAddr]); Case mArea.NetType of - 1 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEcho); + 1 : If mArea.QwkConfID = 0 Then + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileEchoOut) + Else + Assign (SemFile, bbsCfg.SemaPath + fn_SemFileQwk); 2 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNews); 3 : Assign (SemFile, bbsCfg.SemaPath + fn_SemFileNet); End; diff --git a/mystic/mutil_echoexport.pas b/mystic/mutil_echoexport.pas index e04c50f..99a85a1 100644 --- a/mystic/mutil_echoexport.pas +++ b/mystic/mutil_echoexport.pas @@ -371,6 +371,8 @@ Begin ProcessStatus ('Total |15' + strI2S(TotalEcho) + ' |07echo |15' + strI2S(TotalNet) + ' |07net', True); ProcessResult (rDONE, True); + + FileErase (bbsCfg.SemaPath + fn_SemFileEchoOut); End; End. diff --git a/mystic/mutil_echoimport.pas b/mystic/mutil_echoimport.pas index 46805a6..f4e9174 100644 --- a/mystic/mutil_echoimport.pas +++ b/mystic/mutil_echoimport.pas @@ -417,6 +417,8 @@ Begin ProcessStatus ('Total |15' + strI2S(TotalEcho) + ' |07echo |15' + strI2S(TotalNet) + ' |07net |15' + strI2S(TotalDupes) + ' |07dupe', True); ProcessResult (rDONE, True); + + FileErase (bbsCfg.SemaPath + fn_SemFileEchoIn); End; End. diff --git a/mystic/qwkpoll.pas b/mystic/qwkpoll.pas index 80a388c..a67a125 100644 --- a/mystic/qwkpoll.pas +++ b/mystic/qwkpoll.pas @@ -229,7 +229,7 @@ Begin If QWK.TotalMessages > 0 Then ExecuteArchive (TempPath, Path + QwkNet.PacketID + '.rep', QwkNet.ArcType, TempPath + '*', 1); - DirClean (TempPath, ''); + DirClean (TempPath, ''); WriteLn (' - Exported ', QWK.TotalMessages, ' messages'); diff --git a/mystic/records.pas b/mystic/records.pas index 1fe5974..d23c1d2 100644 --- a/mystic/records.pas +++ b/mystic/records.pas @@ -23,7 +23,7 @@ Const mysSoftwareID = 'Mystic BBS'; mysCopyYear = '1997-2013'; - mysVersion = '1.10 A37'; + mysVersion = '1.10 A38'; mysDataChanged = '1.10 A11'; mysCopyNotice = 'Copyright (C) ' + mysCopyYear + ' By James Coyle'; @@ -71,11 +71,13 @@ Const mysMaxMenuStack = 8; mysMaxThemeText = 514; - fn_SemFileEcho = 'echomail.now'; - fn_SemFileNews = 'newsmail.now'; - fn_SemFileNet = 'netmail.now'; - fn_tplMsgEdit = 'ansiedit'; - fn_tplTextEdit = 'ansitext'; + fn_SemFileEchoOut = 'echomail.out'; + fn_SemFileEchoIn = 'echomail.in'; + fn_SemFileNews = 'newsmail.out'; + fn_SemFileNet = 'netmail.out'; + fn_SemFileQwk = 'qwkmail.out'; + fn_tplMsgEdit = 'ansiedit'; + fn_tplTextEdit = 'ansitext'; ColumnValue : Array[0..1] of Byte = (80, 40); diff --git a/mystic/todo.pas b/mystic/todo.pas index 24025fb..087c644 100644 --- a/mystic/todo.pas +++ b/mystic/todo.pas @@ -7,6 +7,7 @@ design elements/issues. BUGS AND POSSIBLE ISSUES ======================== +- shift+c key in OSX does not work without shiftlock (rudi)? - need to add QWK network ID to all message bases (remove QWK net flag?) - need to add QWK networking editor (type: hub, or node) - need to add QWK network link back to networks defined in editor for each @@ -42,11 +43,9 @@ BUGS AND POSSIBLE ISSUES FUTURE / IDEAS / WORK IN PROGRESS / NOTES ========================================= +- auto create qwk network message bases? - ability when editing a posted message to be able to toggle the Private flag if the base is Pub/Priv -- toutput on unix should detect XTERM settings for window size and restore - them on exit. -- NODELIST copy function (process nodelist directory and copy+copy to data) - when editing an already posted message with reference linkage, export the quote data from the original message... - in file listing jump to files by typing the file number @@ -57,7 +56,8 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES - add QWKNet base type or no? leaning towards no because it might limit hybrid FIDO/QWK networks which maybe we can do currently? need to think about the SENT flag and how we could determine which type it was circulated - to. + to. most likely would have to do external pointers for each tosser and + just set the SENT flag when its first encountered - make tiosocket buffer size dynamic. increase data sockets in ftp to 32kb - all display files to search for .hlp before ANS? - fix END in lightbar file lists so it doesn't suck. @@ -71,7 +71,7 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES - when mutil is tossing a packet and auto creates an area figure out if there can be a way to automatically create the uplink back to the originating node. -- expand max filename size for 70 to 255 chars? +- expand max filename size for 70 to 255 chars? do below first... - make file list use buffered IO class for reading .dir files (8k) - global user editor for user flags, def protocol, etc etc - ability to configure auto signatures (2 of them) one for handle and one @@ -91,16 +91,15 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES - Test with file description editor. - Strip pipe colors/ANSI from message option? - allow ANSI option for msg bases? +- revamp file directory listing editor to use new ansi classes - AREAS.BBS import? - PGUP/DOWN moves bases in message base editor? - AreaFix - Echomail export saves last scanned pointers -- Echomail export support for netmail routing - FileFix / TIC ! Use NetReply in RecMB also Reply to another base? -- QWK put/get per individual users via FTP - EXCLUDE from all files list. important. -- Reply to echomail via netmail. +- Reply to echomail via netmail (this is allowed already using ext reply acs). - Amiga .readme and .TIC processing (similar) - ^^ or utility to find .readme in the smae dir and add to file_id.diz if it does not exist. @@ -109,7 +108,7 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES - MUTIL create FILES.BBS in the file base directory - MUTILs new DIR import of msg bases could have optional config to reference a series of .NA files to get the name/description of bases. -- QWK via email +- QWK via email? - Blind upload for single file upload (also message upload) - Email validation - Recode FCHECK into MUTIL, but also add the option to phsyically delete the @@ -167,7 +166,6 @@ FUTURE / IDEAS / WORK IN PROGRESS / NOTES - BBS email forward to e-mail address - Email pasword resets - Email verification -- QWK Networking support internally WHO CAN HELP THIS HAPPEN? - MPL trunc/round? - Salted MD5, SHA-1 or SHA-256 password encryption? - User editor: Reset password/Force change... cannot view PWs diff --git a/mystic/whatsnew.txt b/mystic/whatsnew.txt index 11ab57c..9ccbda6 100644 --- a/mystic/whatsnew.txt +++ b/mystic/whatsnew.txt @@ -3732,3 +3732,29 @@ screen size upon exit. + + + Mystic now creates "echomail.in" whenever it receives a new file from an + authenticated connection via the BINKP server. + + + The semaphore files named echomail.now, newsmail.now, and netmail.now + have all been changed to .out, ie echomail.out, newsmail.out, netmail.out + You will need to update any scripts that key off of those files. + + + Mystic now creates "qwkmail.out" whenever new messages have been posted + in a base assigned to a QWK network. + + + MUTIL EchoImport function now deletes echomail.in semaphore file after + it is done tossing messages. + + + MUTIL EchoExport function now deletes echomail.out semaphore file after it + is done exporting messages. + + ! Fixed a problem with the BINKP server and CRAM MD5 authentication. + + ! Fixed a problem with FIDOPOLL and BINKP where a file transfer would appear + to get stuck in certain situations when a file was skipped. + + ! Fixed a compatibility issue with the BINKP server when used against a BINKD + client. + +