/** * Abort and free all HTTP requests, but don't invoke their callback * functions. */ static void http_client_abort_all_requests(void) { while (http_client.requests != NULL) { struct http_request *request = http_client.requests->data; http_request_abort(request); } }
/** * Abort and free all HTTP requests, but don't invoke their handler * methods. */ static void http_client_abort_all_requests(GError *error) { while (http_client.requests != NULL) { struct http_request *request = http_client.requests->data; http_request_abort(request, g_error_copy(error)); } g_error_free(error); }
/** * Called by curl when new data is available. */ static size_t http_request_writefunction(void *ptr, size_t size, size_t nmemb, void *stream) { struct http_request *request = stream; g_string_append_len(request->body, ptr, size * nmemb); if (request->body->len > MAX_RESPONSE_BODY) /* response body too large */ http_request_abort(request); return size * nmemb; }