Einzelnen Beitrag anzeigen

DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#20

AW: Indy FTP: Probleme mit sehr langsamen Verbindungen

  Alt 11. Jun 2010, 20:21
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;
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (11. Jun 2010 um 20:35 Uhr)
  Mit Zitat antworten Zitat