Wersja cURL/OS, o którym mowa, to 7,15 i Red Hat 5, są one ustawione w kamieniu, więc nie można ich zmienić.Funkcja Progu libcURL nie jest wywoływana
Rzeczywista funkcja postęp, który nie jest w ogóle wywołany kod
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;
}
Setup:
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)
Gdzie CurlUtil ma klasę, że kod istnieje w CURLOPT_DEBUGFUNCTION działa dobrze i jest. ustawione w tej samej funkcji w ten sam sposób.
Czy jesteś w 100% pewien, że dane są przesyłane? Nie można go również wywołać, jeśli transfer jest zbyt szybki. Czy "progressCallback" jest statyczne? –
Jeśli 'progressCallback()' nie jest zadeklarowany jako 'static', musi być. Nie możesz użyć niestanowiącej metody klasy jako wywołania zwrotnego (chyba że zawiniesz ją w thunk). –
... a jeśli komentarze Remy'ego lub Collin są poprawne, pytanie jest błędne ... –