cURL версия/OS, о которой идет речь, составляет 7.15 и Red Hat 5, они установлены на камне, хотя и не могут их изменить.libcURL Функция выполнения, не называемая
Реальная функция прогресс, который не вызывается вообще кодом
int CurlUtil::progressCallback(void *clientp, double dltotal, double dlnow,
double ultotal, double ulnow)
{
DEFN_METHOD_NAME("progressCallback");
EX_ENTRY_EXIT();
EX_DEBUG("Total downloaded " << dlnow << "/" << dltotal);
EX_DEBUG("Total uploaded " << ulnow << "/" << ultotal);
CurlUtil* curlUtil = (CurlUtil*)clientp;
// If you return anything but 0, curl will abort transfer
return (true == curlUtil->killed()) ? 1 : 0;
}
Во время установки:
curl_easy_setopt(m_curl, CURLOPT_NOPROGRESS, 0);
curl_easy_setopt(m_curl, CURLOPT_PROGRESSFUNCTION, CurlUtil::progressCallback);
curl_easy_setopt(m_curl, CURLOPT_PROGRESSDATA, this)
Где CurlUtil является класс, что код существует в CURLOPT_DEBUGFUNCTION работает отлично и есть. таким же образом устанавливается в одной и той же функции.
Действительно ли вы на 100% уверены, что данные фактически передаются? Он также не может быть вызван, если передача выполняется слишком быстро. Становится ли 'progressCallback' статическим? –
Если 'progressCallback()' не объявлен как 'static', это должно быть. Вы не можете использовать метод нестатического класса в качестве обратного вызова (если вы не обернете его в thunk). –
... и если комментарии Remy или Collin действительны, вопрос неверен ... –