在 2015-03-12 13:44:27,"Ray Satiro via curl-library" <[email protected]> 
写道:
On 3/11/2015 12:35 PM, 兰天 wrote:

My write callback function is follow:int Writer(char *data, size_t size, size_t 
nmemb, void *stream){    CURL_DATA_INFO *out = (CURL_DATA_INFO *) stream;    
unsigned int uiSizes = size * nmemb;unsigned int uiLoadContentLen = 0;    if 
(NULL == out || 0 == size || 0 == nmemb){LOG_ERR("NULL == out || 0 == size || 0 
== nmemb");//return -1;    }
if ( uiSizes <= out->uiBufLen - 
out->uiWriteBufLen){//LOG_DBG("uiSizes:%u,buffer length:%u,writen 
lengh:%u",uiSizes,out->uiBufLen, out->uiWriteBufLen);    memcpy(out->pszDownBuf 
+ out->uiWriteBufLen, data, uiSizes);out->uiWriteBufLen += 
uiSizes;if(out->uiWriteBufLen > out->uiBufLen){LOG_ERR("invalid write buf 
len:%u", out->uiWriteBufLen);}uiLoadContentLen = uiSizes;return 
uiLoadContentLen;}else{LOG_ERR("too large file, size=%u, writen=%u", uiSizes, 
out->uiWriteBufLen);//return -2;}//return 0;}after I running the program for 2 
hours  ,the programe stop with the follow infomations:* Failed writing body (1 
!= 16384)* Closing connection #21* Failed writing body (1 != 16384)* Closing 
connection #7* Operation timed out after 40000 milliseconds with 186810 out of 
269621 bytes received* Closing connection #58


Thank you for not top posting however your mail client is now garbling the 
quoting. The e-mail you sent makes your reply look like it's a reply I made. 
You may be able to fix that by hitting enter twice below whatever you've quoted.

As I said you need to review CURLOPT_WRITEFUNCTION [1]. Your function prototype 
should be:

size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata);

Your callback must always return a value and it's not doing that. Also you need 
to properly handle 0 bytes, for example if(!uiSizes) return 0.

I'm still curious what version of libcurl is actually loaded here. If you could 
dump the version as I showed in my previous e-mail that would help.

thank you for answering , my libcurl version is 7.36 ,this version is ok? and I 
am testing.....best regards.....

[1]: http://curl.haxx.se/libcurl/c/CURLOPT_WRITEFUNCTION.html


-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to