Я пытаюсь подключиться к FTP-серверу с помощью WinGate FTP Proxy. InternetOpen() успешно выполняет соответствующий дескриптор во всех случаях.InternetConnect не удается подключиться к FTP-серверу через ftp-прокси
В случае Proxy Authentication выключен, InternetConnect() возвращает правильную ручку, и я могу продолжить дальнейшие фтп операций, но в случае Proxy Authentication включен, InternetConnect() возвращает NULL.
На MSDN они упоминаются прокси использовать InternetSetOption() с INTERNET_OPTION_PROXY_USERNAME и INTERNET_OPTION_PROXY_PASSWORD флагами, чтобы установить прокси-имя пользователя и пароль на ручке возвращенного InternetConnect, но это возвращение NULL и на печать GetLastError(), я получаю следующее сообщение:
InternetConnect не удалось: 12014
220 WinGate Двигатель FTP шлюз готов
331 отправить пароль
530 Au й Failed
if ((hHandle=InternetOpen("Upload", INTERNET_OPEN_TYPE_PROXY, "ftp=ftp://<servername>:<port>", NULL, 0)) == NULL)
{
printf("InternetOpen failed: %d", GetLastError());
printInternetErrorMsg(function);
return false;
}
char buffer[1024];
string proxy_username,proxy_password;
// get ftp proxy username and password
// ..
if ((m_itConnect=InternetConnect(hHandle, ftpserver, INTERNET_DEFAULT_FTP_PORT, ftpusrname, ftppasswd, INTERNET_SERVICE_FTP, NULL, NULL)) == NULL){
printf("InternetConnect failed: %d", GetLastError());
printInternetErrorMsg(function);
//Internet Connect Fails with following error when Proxy Authentication is ON
//InternetConnect failed: 12014
//220 WinGate Engine FTP Gateway ready
//331 send password
//530 Auth Failed
return false;
}
strcpy(buffer,proxy_username.c_str());
if (!InternetSetOption (m_itConnect, INTERNET_OPTION_PROXY_USERNAME, (LPVOID) buffer, lstrlen (buffer)))
{
printf("Unable to set proxy authetication settings (username). Error returned: %d", GetLastError());
return false;
}
strcpy(buffer, proxy_password.c_str());
if (!InternetSetOption (m_itConnect, INTERNET_OPTION_PROXY_PASSWORD, (LPVOID) buffer, lstrlen (buffer)))
{
printf("Unable to set proxy authetication settings (password). Error returned: %d", GetLastError());
return false;
}
}
printf("InternetConnect successful ...");
return true;
Любая помощь приветствуется. Спасибо заранее.