cURL / Mailing Lists / curl-library / Single Mail


Question regarding limiting the response size in a client using libcurl

From: Sachin Nikumbh <>
Date: Tue, 29 Apr 2014 15:33:25 -0400


I am writing a C client using libcurl to communicate with a proprietary
server. I am registering a function handle to receive the response from the
server using something like:

curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, responseBodyReceiver );

I want to stop reading response and close connection from the client if the
total data received exceeds some preset response size limit.

So, I want the responseBodyReceiver to look something like:

size_t responseBodyReceiver(void *buffer, size_t size, size_t nmemb, void
        size_t realsize = size * nmemb;
        ResponseData *mem = static_cast<ResponseData*>(userp);

        size_t newSize = mem->size + realsize;

        if( newSize > RESPONSE_SIZE_LIMIT ){

            // I would like to stop reading and exit. But want to
            // break connection from the client side before I exit


            mem->memory = (char*)realloc( mem->memory, newSize );
            memcpy( &(mem->memory[mem->size]), buffer, realsize );
            mem->size = newSize;

            return realsize;
I am not sure how I can exit the responseBodyReceiver by closing the
connection from the client side.

Any help would be highly appreciated,


List admin:
Received on 2014-04-29