Hello,

In my case, the below addition was helpful for multi-part aborted 
connections:

procedure TFtpServer.FreeCurrentPasvPort(AClient : TFtpCtrlSocket);
var
    CurrentPort : Integer;
    ErrorCode   : Integer;
begin
    { FLD changed following lines, 
        }
    { FreeCurrentPasvPort might be called when the socket is already 
closed! }
    if AClient.DataSocket.State = wsClosed then
        Val(AClient.DataSocket.Port, CurrentPort, ErrorCode)
    else
        Val(AClient.DataSocket.GetXPort, CurrentPort, ErrorCode);
    if (CurrentPort > 0) and // SubZero 23.10.2006
       (CurrentPort >= FPasvPortRangeStart) and
       (CurrentPort <= (FPasvPortRangeStart + FPasvPortRangeSize)) then 
begin
        PBoolean(PChar(FPasvPortTable) +
                 SizeOf(Boolean) * (CurrentPort - FPasvPortRangeStart))^ := 
FALSE;
    end;
    AClient.PassiveMode := FALSE;  // FLD 29.12.05
end;

Francois, I know you said you are busy but please apply this in your code as 
well. At least it is harmless for anybody.

Best Regards,

SZ
www.fastream.com 

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to