![]() |
idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Hi,
ein freund von mir hat einen glftpd Ftp-Server +ssl. Das connecten läuft super kann auch was runterladen usw aber ich kann die ordner einfach nicht auflisten lassen! Ich habe folgenden code:
Delphi-Quellcode:
Fehler:
procedure TForm1.SSLconnect;
//var // FIdFTPClient: TIdFTP; // FIdSSLHandler: TIdSSLIOHandlerSocketOpenSSL; begin try FIdFTPClient.Host:=ed_ip.text; FIdFTPClient.Port:=strtointdef(ed_port.text,21); FIdFTPClient.Username:=ed_user.text; FIdFTPClient.Password:=ed_pw.text; if cb_ssl.Checked then begin FIdFTPClient.IOHandler:=FIdSSLHandler; FIdSSLHandler.SSLOptions.CertFile:='Z:\Delphi\ftp ssl\ssl.cer'; FIdSSLHandler.SSLOptions.Method:=sslvSSLv23; FIdSSLHandler.SSLOptions.Mode:=sslmClient; FIdSSLHandler.SSLOptions.VerifyMode := [sslvrfPeer]; FIdSSLHandler.PassThrough := False; FIdSSLHandler.OnVerifyPeer := MeinSSLZertifikatChecker; FIdSSLHandler.Destination:=FIdFTPClient.Host; FIdSSLHandler.host:=FIdFTPClient.Host; FIdFTPClient.IOHandler := FIdSSLHandler; FIdFTPClient.UseTLS := utUseExplicitTLS; FIdFTPClient.AUTHCmd := tAuto; FIdFTPClient.DataPortProtection:=ftpdpsPrivate; FIdFTPClient.UseTLS:=utUseImplicitTLS; FIDFTPClient.ReadTimeout:=15000; FIDFTPClient.Passive:=true; FIdFTPClient.DataPortProtection:=ftpdpsPrivate; FIdFTPClient.UseTLS:=utUseExplicitTLS; end else begin FIdFTPClient.UseTLS := utNoTLSSupport; FIdFTPClient.DataPortProtection := ftpdpsClear; end; FIdFTPClient.Connect; finally end; end; procedure TForm1.list; begin FTP.List(slList,'',false);// Hier is der Fehler //usw. end; Zitat:
mfg gandime |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Moin,
ist denn sichergestellt, dass es sich bei FTP und FIdFTPClient um dieselbe Komponente handelt? Grüße vom marabu |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
ja sry ich hab was vergessen zu übertragen... hier nochmal richtig:
Delphi-Quellcode:
und ich rufe es so auf:
procedure TForm1.list(FTP:TidFTP);
begin FTP.List(slList,'',false);// Hier is der Fehler //usw. end;
Delphi-Quellcode:
List(FIdFTPClient);
|
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Hi gandime,
probier mal bitte das ReadTimeout des IOHandlers auch zu setzen. Welche Indy-Version verwendest Du und was sagt das Log des Servers? Du könntest auch testhalber mal die Methoden OnStatus und OnStatusInfo des SSLIOHandlers implementieren. Da bekommst Du auch ein paar Debugmeldungen. Gruß Assertor |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Es ist mal wieder etwas unglaubliches passiert was ich nicht verstehe!
Erstmal die infos nach dem Connecten: idFTP: Zitat:
Zitat:
Zitat:
IdFTP: Zitat:
Zitat:
Zitat:
Außerdem sobald ich ein paar Minuten auf dem FTP-Server Connected bin und nichts mache und danach wieder die Ordner auslesen möchte bekomme ich folgenden Fehler: Zitat:
|
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Hi gandime,
Zitat:
Gruß Assertor |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Die einzige genauere Version von Indy konnte ich bloß in der Hilfe finden.
Ich hoffe das das die richtige Version ist die ich habe: Indy.Sockets Version 10.1.1 Diese Indy-Version war bei der Installation von CodeGear Delphi 2007 dabei und ich war damit immer größten teils zufrieden! Ich hatte früher schon öfters Indy-updates installiert aber dann funktionierte die IdHttp-Komponente nicht mehr mit SSL naja wieder zum Thema: Meine OpenSSL DLLS heißen wie folgt: libeay32.ddl und ssleay32.dll die sind schon etwas älter aber ich kann nicht genau sagen welche Version das ist aber ich schätze die sind schon mindestens 1,5 Jahre alt! Ich kann sie auch gerne Hochladen aber ich weiß nicht ob das gegen die Lizenzen von OpenSSL o.ä. verstößt deshalb frage ich besser nach ;-) Sowohl FIdFTPClient als auch FIdSSLHandler habe ich aus der Komponenten Liste auf meine Form gezogen (ich weiss nicht wie man das genau nennt :gruebel: ) und sonst hmm mehr Code als ich im ersten Post geschrieben habe, habe ich selbst noch nicht da ich bis dahin die Ordner nicht auslesen konnte! So Rufe ich die Connection auf:
Delphi-Quellcode:
procedure TForm1.btConnectClick(Sender: TObject);
begin if FIdFTPClient.Connected=false then begin SSLconnect; edDir.text:=FIdFTPClient.RetrieveCurrentDir; list(FIDFTPClient,lvFTP); end; end; |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
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 ![]() 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:
Gruß Assertor |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Nach dem "minimirten" Code und dem OpenSSL update läuft jetzt alles super danke!
Blos jetzt hab ich noch eine frage^^ Wie erkenne ich an dem erhaltenen String von der Liste ob es sich um einen Ordner, Verknüpfung oder eine Datei handelt? ich erhalte folgendes: Zitat:
Die 5 wüsste ich jetzt nicht Dann die zwei glftpd sind einmal Gruppe und Besitzer Dann Dateigröße Dann Datum und zum schluss Name Ich würde ja fast sagen das es etwas mit der 5 zutun hat aber bei verschiedenen Ordnern bekomme ich verschiedene Nummern! |
Re: idFTP.list bei glftpd (ftpserver) +ssl ->Read Timeout
Hi,
Zitat:
MfG Benedikt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz