예제 #1
0
/**
 * 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);
	}
}
예제 #2
0
/**
 * 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);
}
예제 #3
0
/**
 * 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;
}