C
C
Log In After ConnectOnly on an FTP Server
See more FTP Examples
Demonstrates the Chilkat Ftp2.LoginAfterConnectOnly method, which authenticates a control connection previously established by ConnectOnly. It takes no arguments, sends USER, PASS, and ACCT when required, then performs normal post-login initialization.
Background: This is the second half of the two-step connect. Beyond sending the credentials, it runs the same post-login setup
Connect would — for example issuing TYPE I and any auto-negotiated features — so the session ends up in the same ready state either way. The value of the split is entirely in what you can do in the gap between the two calls.Chilkat C Downloads
#include <C_CkFtp2.h>
void ChilkatSample(void)
{
BOOL success;
HCkFtp2 ftp;
success = FALSE;
// Demonstrates the Ftp2.LoginAfterConnectOnly method, which authenticates a control connection
// previously established by ConnectOnly. It takes no arguments and sends USER, PASS, and (when
// required) ACCT, then performs normal post-login initialization.
ftp = CkFtp2_Create();
CkFtp2_putHostname(ftp,"ftp.example.com");
CkFtp2_putPort(ftp,21);
// First connect without logging in.
success = CkFtp2_ConnectOnly(ftp);
if (success == FALSE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
// Set credentials (for example, after inspecting the greeting), then log in.
CkFtp2_putUsername(ftp,"myFtpLogin");
CkFtp2_putPassword(ftp,"myPassword");
success = CkFtp2_LoginAfterConnectOnly(ftp);
if (success == FALSE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
printf("Logged in.\n");
success = CkFtp2_Disconnect(ftp);
if (success == FALSE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
CkFtp2_Dispose(ftp);
}