-
Notifications
You must be signed in to change notification settings - Fork 70
Description
Using OpenSSL , my program works to connect to a FTP server running TLS 1.2.
Snippet of code from a stand alone example...
Gets A "session reuse required" error.
If i switch to the openSSL IOHandler, it all works.
` IdFTP1 := tidftp.Create(nil);
ssl := TIdSSLIOHandlerSocketSChannel.Create(nil);
IdFTP1.OnStatus := FTPStatus;
IdFTP1.OnTLSNotAvailable := TLSNotAvailable;
IdFTP1.OnTLSHandShakeFailed := TLSHandShakeFailed;
IdFTP1.OnTLSNegCmdFailed := TLSNegCmdFailed;
IdFTP1.IOHandler := ssl;
IdFTP1.UseTLS := utUseExplicitTLS;
IdFTP1.Passive := True;
IdFTP1.Host := 'some-sever.com';
IdFTP1.Username := 'user';
IdFTP1.Password := 'pass';
IdFTP1.Connect;
IdFTP1.DataPortProtection := ftpdpsPrivate;
Memo1.lines.add('');
if IdFTP1.SupportsTLS then
Memo1.lines.add('TLS IS SUPPORTED')
else
Memo1.lines.add('TLS IS NOT SUPPORTED');
Memo1.lines.add('');
IdFTP1.list; /// < ---- FAILS RIGHT HERE. session reuse required
for i := 0 to IdFTP1.DirectoryListing.Count - 1 do
begin
Memo1.lines.add(IdFTP1.DirectoryListing.Items[i].FileName);
end;
IdFTP1.TransferType := ftBinary;
if fileexists('test.txt') then
IdFTP1.Put('test.txt');
IdFTP1.Disconnect;
IdFTP1.Free;
ssl.Free;
`