Archived Forum Post

Index of archived forum posts

Question:

FTP Implicit or Explicit Mode?

Aug 06 '12 at 16:04

I want ask you which mode is used by Chillkat FTP2 ActiveX component if connection uses following properties.

loFtpClass.Port = 990
loFtpClass.AuthTls = 0
loFtpClass.AuthSsl = 1
loFtpClass.Passive = 1
Is it implicit or explicit mode?


Answer

Port 990 is the customary implicit SSL/TLS port for the FTP protocol. Usually, if you're connecting to port 990 you would want implicit SSL/TLS. The "Ssl" property is for indicating implicit SSL/TLS, so you would do this:

loFtpClass.Port = 990
loFtpClass.Ssl = 1
loFtpClass.AuthTls = 0
loFtpClass.AuthSsl = 0

There is an AutoFix property that defaults to 1 (true), meaning that common mistakes like this are auto-fixed. If the port is 990, and the app specifies AuthTls = 1 or AuthSsl = 1, then these properties are auto-fixed to be reset to 0 and the Ssl property is set to 1. The only way this is incorrect is if an FTP server administrator, for some weird reason, decides to break custom and configure the FTP server so that port 990 is explicit. In that case, you'd need to make sure AutoFix = 0 to prevent the FTP2 component from correcting the mistake.

Typically, when explicit SSL/TLS is used, the FTP control port is 21 (not 990) and you would set either AuthSsl or AuthTls equal to 1.