diff --git a/mystic/fidopoll.pas b/mystic/fidopoll.pas index e0ab84b..f0d4272 100644 --- a/mystic/fidopoll.pas +++ b/mystic/fidopoll.pas @@ -136,6 +136,7 @@ Begin PrintStatus (NIL, 1, 'Sending ' + Queue.QData[Count]^.FileNew); If FTP.SendFile(EchoNode.ftpPassive, Queue.QData[Count]^.FilePath + Queue.QData[Count]^.FileName, Queue.QData[Count]^.FileNew) = ftpResOK Then Begin + // only remove by markings... or move to removefilesfromflo FileErase (Queue.QData[Count]^.FilePath + Queue.QData[Count]^.FileName); RemoveFilesFromFLO (GetFTNOutPath(EchoNode), TempPath, Queue.QData[Count]^.FilePath + Queue.QData[Count]^.FileName); End Else diff --git a/mystic/mis_client_binkp.pas b/mystic/mis_client_binkp.pas index d2b462a..232282d 100644 --- a/mystic/mis_client_binkp.pas +++ b/mystic/mis_client_binkp.pas @@ -665,8 +665,10 @@ Begin If RxCommand = M_GOT Then Begin FileList.QData[FileList.QPos]^.Status := QueueSuccess; + // only erase if certain markings OR move + // this to removefilesfromflow FileErase (FileList.QData[FileList.QPos]^.FilePath + FileList.QData[FileList.QPos]^.FileName); - RemoveFilesFromFLO (SetOutPath, TempPath, FileList.QData[FileList.QPos]^.FilePath + FileList.QData[FileList.QPos]^.FileName); + RemoveFilesFromFLO (FileList.QData[FileList.QPos]^.Extra, TempPath, FileList.QData[FileList.QPos]^.FilePath + FileList.QData[FileList.QPos]^.FileName); HaveHeader := False; NeedHeader := True; @@ -774,6 +776,19 @@ Begin; End; Procedure RemoveFilesFromFLO (OutPath, TP, FN: String); +(* +procedure tlog (s: string); +var + t : text; +begin + assign (t, bbscfg.logspath + 'flo.log'); + {$I-}Append(t);{$I+} + if ioresult <> 0 then rewrite(t); + + writeln(t, s); + close(t); +end; +*) Var Str : String; DirInfo : SearchRec; @@ -788,9 +803,13 @@ Begin // Need to review the code and figure out why I did it this way to // begin with. +// tlog('begin removefilesfromflo ' + outpath + '*.?lo'); + FindFirst (OutPath + '*.?lo', AnyFile, DirInfo); While DosError = 0 Do Begin +// tlog ('renaming ' + outpath + dirinfo.name + ' to ' + tp + dirinfo.name); + FileRename (OutPath + DirInfo.Name, TP + DirInfo.Name); Assign (NewFile, OutPath + DirInfo.Name); @@ -803,6 +822,8 @@ Begin While Not Eof (OrigFile) Do Begin ReadLn (OrigFile, Str); +// tlog('got orig str: '+ str); + If (Str = '') or (Str[1] = '!') Then WriteLn (NewFile, Str) Else Begin @@ -814,6 +835,8 @@ Begin Matched := (strUpper(FN) = strUpper(Str)); End; +// tlog ('matching: ' + fn + ' with ' + str); + If Not Matched Then WriteLn (NewFile, Str); End; @@ -873,11 +896,11 @@ Begin FN := JustFile(Str); Path := JustPath(Str); - Queue.Add (True, Path, FN, ''); + If Queue.Add (True, Path, FN, '') Then + Queue.QData[Queue.QSize]^.Extra := OutPath; End; - Close (FLOFile); - + Close (FLOFile); FindNext (DirInfo); End; @@ -901,7 +924,8 @@ Begin Continue; End; - Queue.Add (True, OutPath, DirInfo.Name, FileNewExt(DirInfo.Name, 'pkt')); + If Queue.Add(True, OutPath, DirInfo.Name, FileNewExt(DirInfo.Name, 'pkt')) Then + Queue.QData[Queue.QSize]^.Extra := OutPath; FindNext (DirInfo); End; @@ -954,6 +978,10 @@ Begin QueueByNode(Queue, False, BinkP.EchoNode); Server.Status (ProcessID, 'Queued ' + strI2S(Queue.QSize - Before) + ' files for ' + Addr2Str(BinkP.EchoNode.Address)); + + BinkP.SetBlockSize := BinkP.EchoNode.binkBlock; + BinkP.UseMD5 := BinkP.EchoNode.binkMD5 > 0; + BinkP.ForceMD5 := BinkP.EchoNode.binkMD5 = 2; End; End; diff --git a/mystic/mis_client_ftp.pas b/mystic/mis_client_ftp.pas index 517fd58..02d677f 100644 --- a/mystic/mis_client_ftp.pas +++ b/mystic/mis_client_ftp.pas @@ -571,6 +571,7 @@ Begin End; (* +// works with google chrome auth, not IE Procedure TFTPServer.cmdUSER; Begin ResetSession; @@ -580,10 +581,10 @@ Begin UserName := Data; End Else - Client.WriteLine(re_UserUnknown); + Client.WriteLine(re_BadPW); End; *) - +// works with IE for auth prompt, not chrome Procedure TFTPServer.cmdUSER; Begin ResetSession; @@ -595,7 +596,6 @@ Begin Client.WriteLine(re_UserOkay); End; - (* Procedure TFTPServer.cmdPASS; Begin @@ -620,7 +620,7 @@ End; Procedure TFTPServer.cmdPASS; Begin If UserName = '' Then Begin - Client.WriteLine ('332 Need account'); + Client.WriteLine ('332 No account'); Exit; End; @@ -667,6 +667,8 @@ Begin End; Procedure TFTPServer.cmdPASV; +Var + WaitSock : TIOSocket; Begin If LoggedIn Then Begin If Not bbsCfg.inetFTPPassive Then Begin @@ -685,6 +687,17 @@ Begin Client.WriteLine(re_PassiveOK + '(' + strReplace(Client.HostIP, '.', ',') + ',' + strI2S(WordRec(DataPort).Hi) + ',' + strI2S(WordRec(DataPort).Lo) + ').'); IsPassive := True; + + WaitSock := TIOSocket.Create; + + WaitSock.FTelnetServer := False; + WaitSock.FTelnetClient := False; + + WaitSock.WaitInit(bbsCfg.inetInterface, DataPort); + + DataSocket := WaitSock.WaitConnection(10000); + + WaitSock.Free; End Else Client.WriteLine(re_BadCommand); End; @@ -1020,7 +1033,7 @@ Var Begin If LoggedIn Then Begin - If strUpper(Data) = strUpper(bbsCfg.QwkBBSID + '.qwk') Then Begin + If strUpper(JustFile(Data)) = strUpper(bbsCfg.QwkBBSID + '.qwk') Then Begin QWKCreatePacket; Exit; diff --git a/mystic/todo.pas b/mystic/todo.pas index c8a28f1..06b0516 100644 --- a/mystic/todo.pas +++ b/mystic/todo.pas @@ -1,3 +1,15 @@ +IMMEDIATE PRIORITIES (IN ORDER) FOR 1.10 AS OF Sept 22, 2013 + +1. Netmail/echomail pass-through and HUB stuff +1. FTP FTN server +2. AreaFix +3. TIC processing +4. FileFix +5. Netmail attachments/File hatching +6. Gating + +===================================== + This file showcases the direction of where this software wants to go as it continues to expand. Some things that will probably be mentioned will be vague, and serve mostly to remind me of my own ideas. @@ -44,6 +56,8 @@ BUGS AND POSSIBLE ISSUES FUTURE / IDEAS / WORK IN PROGRESS / NOTES ========================================= +- MIS escape confirmation +- Prompts for CONFIG editors - matrix disconnect if they use the XL command too many times - index00.html or whatever in FTP server - buffer echomail export and use mailer LR pointers