On Wed, Sep 30, 2009 at 5:29 AM, Daniel Stenberg <[email protected]> wrote:
> ------------------------------07ac4edfb36c >> > > This looks like a mime separator libcurl uses when sending multipart > formposts. I'd suggest you use CURLOPT_DEBUGFUNCTION and/or wireshark to get > to see exactly what libcurl sends and what the server responds. I've taken two screenshots of wireshark output: http://www.vengeancestudio.com/forumpics/post.gif http://www.vengeancestudio.com/forumpics/continue.gif > // suck in as much data as is ready >> while( CURLM_CALL_MULTI_PERFORM == curl_multi_perform( >> CurlMultiHandle, &CurlStillRunning)); //note semicolon >> > > Note that this loop will of course not perform the entire transfer... > There is, of course, a periodic check to see if there is more data to transfer, and that code looks like this: if ( CurlStillRunning) { vLogFile << "checkWebserverReturn 1 CurlStillRunning=" << CurlStillRunning << endl; struct timeval timeout; int rc; fd_set fdread; fd_set fdwrite; fd_set fdexcep; int maxfd; FD_ZERO(&fdread); FD_ZERO(&fdwrite); FD_ZERO(&fdexcep); // set a suitable timeout to play around with timeout.tv_sec = 1; timeout.tv_usec = 0; // get file descriptors from the transfers curl_multi_fdset( CurlMultiHandle, &fdread, &fdwrite, &fdexcep, &maxfd); rc = select( maxfd + 1, &fdread, &fdwrite, &fdexcep, &timeout); switch( rc) { case -1: // select error break; case 0: // timeout default: // timeout or readable/writable sockets while ( CURLM_CALL_MULTI_PERFORM == curl_multi_perform( CurlMultiHandle, &CurlStillRunning)); break; } vLogFile << "checkWebserverReturn 2 CurlStillRunning=" << CurlStillRunning << endl; if ( !CurlStillRunning) curlCleanup(); } For the shown data, this code ran six times before completing the transfer.
------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
