Wieso "sorry". Dafür ist das forum doch da. Anbei die änderung die ich bei mir gemacht habe. Müsste so ca. bei zeile 2000 sein. Ich hoffe das hilft dir weiter.
Gruss
Edit ich habe nun mal ein Compare gemacht. An folgenden stellen ist es enthalten. Mit diesen änderungen sollte es auf jedenfall wiederkommen. Wichtig ist das du dann beide Connections trennst und neu verbindest. Anders bekommt man (bzw. ich) das nichtmehr auf die füsse.
Delphi-Quellcode:
procedure TIdFTP.SendTransferType(AValue: TIdFTPTransferType);
var
s: string;
begin
s := '';
case AValue of
ftAscii: s := 'A'; {do not localize}
ftBinary: s := 'I'; {do not localize}
else
raise EIdFTPUnsupportedTransferType.Create(RSFTPUnsupportedTransferType);
end;
try
SendCmd('TYPE ' + s, 200); {do not localize}
except
end;
end;
Delphi-Quellcode:
procedure TIdFTP.DisconnectNotifyPeer;
begin
if IOHandler.Connected then begin
try
IOHandler.WriteLn('QUIT'); {do not localize}
except
end;
IOHandler.CheckForDataOnSource(100);
if not IOHandler.InputBufferIsEmpty then begin
GetInternalResponse;
end;
end;
end;
Delphi-Quellcode:
procedure TIdFTP.SendInternalPassive(const ACmd: String; var VIP: string;
var VPort: TIdPort);
var
i, bLeft, bRight: integer;
s: string;
begin
SendDataSettings;
try
SendCmd(ACmd, 227); {do not localize}
except
end;
Delphi-Quellcode:
procedure TIdFTP.SendPBSZ;
begin
{NOte that PBSZ - protection buffer size must always be zero for FTP TLS}
if FUsingSFTP
or (FUseTLS = utUseImplicitTLS)
then begin
//protection buffer size
try
SendCmd('
PBSZ 0');
{do not localize}
except
end;
end;
end;
Delphi-Quellcode:
procedure TIdFTP.SendDataSettings;
begin
if FUsingSFTP then begin
if not FUsingCCC then begin
SendPBSZ;
try
SendPROT;
except
end;
if FUseCCC then begin
FUsingCCC := (SendCmd('CCC') div 100) = 2; {do not localize}
if FUsingCCC then begin
(IOHandler as TIdSSLIOHandlerSocketBase).PassThrough := True;
end;
end;
end;
end;
end;