DataFlex
DataFlex
Upgrade an FTP Control Channel to TLS (ConvertToTls)
See more FTP Examples
Demonstrates the Chilkat Ftp2.ConvertToTls method, which upgrades an already-connected clear FTP control channel to explicit TLS. It takes no arguments and is used with a manually staged connection created by ConnectOnly while Ssl is disabled.
Background: This exposes the explicit-FTPS
AUTH TLS upgrade as a discrete step for the rare case where you need to do something on the clear connection first — inspect the greeting, apply a workaround — before securing it. In the normal case you simply set AuthTls and let Connect perform the upgrade automatically; this manual path exists for staged control.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFtp
String sTemp1
Move False To iSuccess
// Demonstrates the Ftp2.ConvertToTls method, which upgrades an already-connected clear FTP control
// channel to explicit TLS. It takes no arguments. It is used with a manually staged connection
// created by ConnectOnly while Ssl is disabled.
Get Create (RefClass(cComChilkatFtp2)) To hoFtp
If (Not(IsComObjectCreated(hoFtp))) Begin
Send CreateComObject of hoFtp
End
Set ComHostname Of hoFtp To "ftp.example.com"
Set ComPort Of hoFtp To 21
// Connect in clear text first (Ssl is false).
Get ComConnectOnly Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// Upgrade the control channel to explicit TLS (AUTH TLS).
Get ComConvertToTls Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// Now authenticate over the encrypted control channel.
Set ComUsername Of hoFtp To "myFtpLogin"
Set ComPassword Of hoFtp To "myPassword"
Get ComLoginAfterConnectOnly Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Control channel upgraded to TLS and logged in."
Get ComDisconnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
End_Procedure