cURL Version/OS in Frage ist 7.15 und Red Hat 5, diese sind in Stein gesetzt, obwohl so nicht ändern können.libcURL Fortschritt Funktion wird nicht aufgerufen
Die tatsächliche Fortschritt Funktion, die bei allen
nichtint 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;
}
Der Setup-Code aufgerufen wird:
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)
Wo CurlUtil die Klasse ist, dass der Code in der CURLOPT_DEBUGFUNCTION funktioniert gut und ist. in der gleichen Funktion auf die gleiche Weise eingerichtet.
Sind Sie 100% sicher, dass Daten tatsächlich übertragen werden? Es kann auch nicht aufgerufen werden, wenn die Übertragung zu schnell ist. Ist 'progressCallback' statisch? –
Wenn 'progressCallback()' nicht als 'statisch' deklariert ist, muss es sein. Sie können eine nicht statische Klassenmethode nicht als Rückruf verwenden (es sei denn, Sie wickeln sie in einen Thunk). –
... und wenn die Kommentare von Remy oder Collin gültig sind, ist die Frage falsch ... –