This commit is contained in:
mysticbbs 2013-09-23 20:39:00 -04:00
parent 5a9badaf1c
commit ce0e8b8180
4 changed files with 66 additions and 10 deletions

View File

@ -136,6 +136,7 @@ Begin
PrintStatus (NIL, 1, 'Sending ' + Queue.QData[Count]^.FileNew); 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 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); FileErase (Queue.QData[Count]^.FilePath + Queue.QData[Count]^.FileName);
RemoveFilesFromFLO (GetFTNOutPath(EchoNode), TempPath, Queue.QData[Count]^.FilePath + Queue.QData[Count]^.FileName); RemoveFilesFromFLO (GetFTNOutPath(EchoNode), TempPath, Queue.QData[Count]^.FilePath + Queue.QData[Count]^.FileName);
End Else End Else

View File

@ -665,8 +665,10 @@ Begin
If RxCommand = M_GOT Then Begin If RxCommand = M_GOT Then Begin
FileList.QData[FileList.QPos]^.Status := QueueSuccess; 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); 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; HaveHeader := False;
NeedHeader := True; NeedHeader := True;
@ -774,6 +776,19 @@ Begin;
End; End;
Procedure RemoveFilesFromFLO (OutPath, TP, FN: String); 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 Var
Str : String; Str : String;
DirInfo : SearchRec; DirInfo : SearchRec;
@ -788,9 +803,13 @@ Begin
// Need to review the code and figure out why I did it this way to // Need to review the code and figure out why I did it this way to
// begin with. // begin with.
// tlog('begin removefilesfromflo ' + outpath + '*.?lo');
FindFirst (OutPath + '*.?lo', AnyFile, DirInfo); FindFirst (OutPath + '*.?lo', AnyFile, DirInfo);
While DosError = 0 Do Begin While DosError = 0 Do Begin
// tlog ('renaming ' + outpath + dirinfo.name + ' to ' + tp + dirinfo.name);
FileRename (OutPath + DirInfo.Name, TP + DirInfo.Name); FileRename (OutPath + DirInfo.Name, TP + DirInfo.Name);
Assign (NewFile, OutPath + DirInfo.Name); Assign (NewFile, OutPath + DirInfo.Name);
@ -803,6 +822,8 @@ Begin
While Not Eof (OrigFile) Do Begin While Not Eof (OrigFile) Do Begin
ReadLn (OrigFile, Str); ReadLn (OrigFile, Str);
// tlog('got orig str: '+ str);
If (Str = '') or (Str[1] = '!') Then If (Str = '') or (Str[1] = '!') Then
WriteLn (NewFile, Str) WriteLn (NewFile, Str)
Else Begin Else Begin
@ -814,6 +835,8 @@ Begin
Matched := (strUpper(FN) = strUpper(Str)); Matched := (strUpper(FN) = strUpper(Str));
End; End;
// tlog ('matching: ' + fn + ' with ' + str);
If Not Matched Then If Not Matched Then
WriteLn (NewFile, Str); WriteLn (NewFile, Str);
End; End;
@ -873,11 +896,11 @@ Begin
FN := JustFile(Str); FN := JustFile(Str);
Path := JustPath(Str); Path := JustPath(Str);
Queue.Add (True, Path, FN, ''); If Queue.Add (True, Path, FN, '') Then
Queue.QData[Queue.QSize]^.Extra := OutPath;
End; End;
Close (FLOFile); Close (FLOFile);
FindNext (DirInfo); FindNext (DirInfo);
End; End;
@ -901,7 +924,8 @@ Begin
Continue; Continue;
End; 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); FindNext (DirInfo);
End; End;
@ -954,6 +978,10 @@ Begin
QueueByNode(Queue, False, BinkP.EchoNode); QueueByNode(Queue, False, BinkP.EchoNode);
Server.Status (ProcessID, 'Queued ' + strI2S(Queue.QSize - Before) + ' files for ' + Addr2Str(BinkP.EchoNode.Address)); 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;
End; End;

View File

@ -571,6 +571,7 @@ Begin
End; End;
(* (*
// works with google chrome auth, not IE
Procedure TFTPServer.cmdUSER; Procedure TFTPServer.cmdUSER;
Begin Begin
ResetSession; ResetSession;
@ -580,10 +581,10 @@ Begin
UserName := Data; UserName := Data;
End Else End Else
Client.WriteLine(re_UserUnknown); Client.WriteLine(re_BadPW);
End; End;
*) *)
// works with IE for auth prompt, not chrome
Procedure TFTPServer.cmdUSER; Procedure TFTPServer.cmdUSER;
Begin Begin
ResetSession; ResetSession;
@ -595,7 +596,6 @@ Begin
Client.WriteLine(re_UserOkay); Client.WriteLine(re_UserOkay);
End; End;
(* (*
Procedure TFTPServer.cmdPASS; Procedure TFTPServer.cmdPASS;
Begin Begin
@ -620,7 +620,7 @@ End;
Procedure TFTPServer.cmdPASS; Procedure TFTPServer.cmdPASS;
Begin Begin
If UserName = '' Then Begin If UserName = '' Then Begin
Client.WriteLine ('332 Need account'); Client.WriteLine ('332 No account');
Exit; Exit;
End; End;
@ -667,6 +667,8 @@ Begin
End; End;
Procedure TFTPServer.cmdPASV; Procedure TFTPServer.cmdPASV;
Var
WaitSock : TIOSocket;
Begin Begin
If LoggedIn Then Begin If LoggedIn Then Begin
If Not bbsCfg.inetFTPPassive 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) + ').'); Client.WriteLine(re_PassiveOK + '(' + strReplace(Client.HostIP, '.', ',') + ',' + strI2S(WordRec(DataPort).Hi) + ',' + strI2S(WordRec(DataPort).Lo) + ').');
IsPassive := True; IsPassive := True;
WaitSock := TIOSocket.Create;
WaitSock.FTelnetServer := False;
WaitSock.FTelnetClient := False;
WaitSock.WaitInit(bbsCfg.inetInterface, DataPort);
DataSocket := WaitSock.WaitConnection(10000);
WaitSock.Free;
End Else End Else
Client.WriteLine(re_BadCommand); Client.WriteLine(re_BadCommand);
End; End;
@ -1020,7 +1033,7 @@ Var
Begin Begin
If LoggedIn Then 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; QWKCreatePacket;
Exit; Exit;

View File

@ -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 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 continues to expand. Some things that will probably be mentioned will be
vague, and serve mostly to remind me of my own ideas. 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 FUTURE / IDEAS / WORK IN PROGRESS / NOTES
========================================= =========================================
- MIS escape confirmation
- Prompts for CONFIG editors
- matrix disconnect if they use the XL command too many times - matrix disconnect if they use the XL command too many times
- index00.html or whatever in FTP server - index00.html or whatever in FTP server
- buffer echomail export and use mailer LR pointers - buffer echomail export and use mailer LR pointers