Hi gandime,
ok, danke für die Infos! Ja, das ist die Default
Indy Installation von D2007.
Die DLLs solltest Du ersetzen. Das klingt nach Version ~ 0.9.6m. Probier mal bitte meine DLLs von hier
http://www.delphipraxis.net/internal...hlight=openssl. Benenne das enthaltene Headerfile (bei Dir also Version 10) in IdSSLOpenSSLHeaders.pas um und lege es ins Projektverzeichnis, damit es vom Compiler gefunden wird.
Zusätzlich fällt mir an Deinem Code auf, daß Du sehr viele Dinge explizit (sogar doppelt) vorgibst. Kannst Du das zum Testen einschränken?
Beispiel:
Zitat von
gandime:
Delphi-Quellcode:
procedure TForm1.SSLconnect;
...
begin
FIdFTPClient.Host := ed_ip.text;
FIdFTPClient.Port := strtointdef(ed_port.text,21);
FIdFTPClient.Username := ed_user.text;
FIdFTPClient.Password := ed_pw.text;
// die beiden folgenden kannst Du auch global festlegen, wird ja innerhalb des if/else nicht geändert...
FIdFTPClient.ReadTimeout := 15000;
FIdSSLHandler.SSLOptions.Method := sslvSSLv23;
if cb_ssl.Checked then
begin
FIdFTPClient.IOHandler := FIdSSLHandler;
end
else
begin
FIdFTPClient.IOHandler := nil;
end;
FIdFTPClient.Connect;
end;
try-finally ergibt hier keinen Sinn, Du machst ja nichts im Finally. Lokale Zertifikate bitte erst nach den Tests wieder einfügen. Achte auch auf den korrekten Port wenn Du utUseExplicitTLS verwendest (i.d.R. Port 21). Bei Implicit-TLS/SSL wäre das 990.
Gruß Assertor