input/curl: merge _request_abort() into _request_done()
This is a trivial function. Merge some duplicate code, e.g. the g_cond_broadcast() call.
This commit is contained in:
		| @@ -412,25 +412,6 @@ input_curl_easy_free_indirect(struct input_curl *c) | |||||||
| 	assert(c->easy == NULL); | 	assert(c->easy == NULL); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Aborts and frees a running HTTP request. |  | ||||||
|  * |  | ||||||
|  * The caller must lock the mutex.  Runs in the I/O thread. |  | ||||||
|  */ |  | ||||||
| static void |  | ||||||
| input_curl_request_abort(struct input_curl *c, GError *error) |  | ||||||
| { |  | ||||||
| 	assert(c != NULL); |  | ||||||
| 	assert(c->postponed_error == NULL); |  | ||||||
| 	assert(error != NULL); |  | ||||||
|  |  | ||||||
| 	input_curl_easy_free(c); |  | ||||||
|  |  | ||||||
| 	c->postponed_error = error; |  | ||||||
|  |  | ||||||
| 	g_cond_broadcast(curl.cond); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Abort and free all HTTP requests. |  * Abort and free all HTTP requests. | ||||||
|  * |  * | ||||||
| @@ -439,12 +420,19 @@ input_curl_request_abort(struct input_curl *c, GError *error) | |||||||
| static void | static void | ||||||
| input_curl_abort_all_requests(GError *error) | input_curl_abort_all_requests(GError *error) | ||||||
| { | { | ||||||
|  | 	assert(error != NULL); | ||||||
|  |  | ||||||
| 	while (curl.requests != NULL) { | 	while (curl.requests != NULL) { | ||||||
| 		struct input_curl *is = curl.requests->data; | 		struct input_curl *c = curl.requests->data; | ||||||
| 		input_curl_request_abort(is, g_error_copy(error)); | 		assert(c->postponed_error == NULL); | ||||||
|  |  | ||||||
|  | 		input_curl_easy_free(c); | ||||||
|  | 		c->postponed_error = g_error_copy(error); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	g_error_free(error); | 	g_error_free(error); | ||||||
|  |  | ||||||
|  | 	g_cond_broadcast(curl.cond); | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -455,22 +443,22 @@ input_curl_abort_all_requests(GError *error) | |||||||
| static void | static void | ||||||
| input_curl_request_done(struct input_curl *c, CURLcode result, long status) | input_curl_request_done(struct input_curl *c, CURLcode result, long status) | ||||||
| { | { | ||||||
|  | 	assert(c != NULL); | ||||||
| 	assert(c->easy == NULL); | 	assert(c->easy == NULL); | ||||||
| 	assert(c->base.ready); | 	assert(c->base.ready); | ||||||
|  | 	assert(c->postponed_error == NULL); | ||||||
|  |  | ||||||
| 	if (result != CURLE_OK) { | 	if (result != CURLE_OK) { | ||||||
| 		GError *error = g_error_new(curl_quark(), result, | 		c->postponed_error = g_error_new(curl_quark(), result, | ||||||
| 						 "curl failed: %s", | 						 "curl failed: %s", | ||||||
| 						 c->error); | 						 c->error); | ||||||
| 		input_curl_request_abort(c, error); |  | ||||||
| 	} else if (status < 200 || status >= 300) { | 	} else if (status < 200 || status >= 300) { | ||||||
| 		GError *error = g_error_new(curl_quark(), 0, | 		c->postponed_error = g_error_new(curl_quark(), 0, | ||||||
| 						 "got HTTP status %ld", | 						 "got HTTP status %ld", | ||||||
| 						 status); | 						 status); | ||||||
| 		input_curl_request_abort(c, error); |  | ||||||
| 	} else { |  | ||||||
| 		g_cond_broadcast(curl.cond); |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	g_cond_broadcast(curl.cond); | ||||||
| } | } | ||||||
|  |  | ||||||
| static void | static void | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann