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);
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

View File

@ -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;

View File

@ -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;

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
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