I'm new to this and I'm looking at the samples, docs and list archives...   I 
cannot find definitive information on whether 'curl_easy_perform' always 
returns 
after all the calls to 'recv_hdr'  and  'recv_data' have returned or if the 
call 
backs are multi-threaded.

Is it the same for the share and multi interfaces as the easy?


// the header call back function
size_t recv_hdr( void *ptr, size_t size, size_t nmemb, void *userdata) {      
// 
receive header line    }

// the body call back function
static size_t recv_data(void *ptr, size_t size, size_t nmemb, void *data) {   
 //  receive body data    }

// the main CURL call
void callUrl() {

    CURL *curl;
    CURLcode resp;
    CurlContinuationData *pCurlData = new CurlContinuationData();  // a struct 
for data

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, 
"http://curl.haxx.se/libcurl/c/curl_easy_setopt.html";);

        // set body call back function
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, recv_data);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA,  pCurlData);
        
        // set header call back function        curl_easy_setopt(curl, 
CURLOPT_HEADERFUNCTION,  recv_hdr);
        curl_easy_setopt(curl, CURLOPT_HEADERDATA,  pCurlData);
        
        resp = curl_easy_perform(curl);

        curl_easy_cleanup(curl);
    }

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

Reply via email to