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