dovecot-2.2: lib-http: client: Fixed conflict between request ab...
dovecot at dovecot.org
dovecot at dovecot.org
Fri Oct 24 22:39:46 UTC 2014
details: http://hg.dovecot.org/dovecot-2.2/rev/84b5e075c62c
changeset: 18000:84b5e075c62c
user: Stephan Bosch <stephan at rename-it.nl>
date: Sat Oct 25 01:38:42 2014 +0300
description:
lib-http: client: Fixed conflict between request abort and request delayed error.
diffstat:
src/lib-http/http-client-private.h | 2 --
src/lib-http/http-client-request.c | 12 +++++++-----
2 files changed, 7 insertions(+), 7 deletions(-)
diffs (61 lines):
diff -r d913fe3a926a -r 84b5e075c62c src/lib-http/http-client-private.h
--- a/src/lib-http/http-client-private.h Sat Oct 25 01:38:42 2014 +0300
+++ b/src/lib-http/http-client-private.h Sat Oct 25 01:38:42 2014 +0300
@@ -273,8 +273,6 @@
void http_client_request_resubmit(struct http_client_request *req);
void http_client_request_retry(struct http_client_request *req,
unsigned int status, const char *error);
-void http_client_request_send_error(struct http_client_request *req,
- unsigned int status, const char *error);
void http_client_request_error_delayed(struct http_client_request **_req);
void http_client_request_error(struct http_client_request *req,
unsigned int status, const char *error);
diff -r d913fe3a926a -r 84b5e075c62c src/lib-http/http-client-request.c
--- a/src/lib-http/http-client-request.c Sat Oct 25 01:38:42 2014 +0300
+++ b/src/lib-http/http-client-request.c Sat Oct 25 01:38:42 2014 +0300
@@ -54,6 +54,10 @@
* Request
*/
+static void
+http_client_request_send_error(struct http_client_request *req,
+ unsigned int status, const char *error);
+
static struct http_client_request *
http_client_request_new(struct http_client *client, const char *method,
http_client_request_callback_t *callback, void *context)
@@ -861,15 +865,13 @@
return TRUE;
}
-void
+static void
http_client_request_send_error(struct http_client_request *req,
unsigned int status, const char *error)
{
http_client_request_callback_t *callback;
bool sending = (req->state == HTTP_REQUEST_STATE_PAYLOAD_OUT);
- if (req->state >= HTTP_REQUEST_STATE_FINISHED)
- return;
req->state = HTTP_REQUEST_STATE_ABORTED;
callback = req->callback;
@@ -890,8 +892,7 @@
{
struct http_client_request *req = *_req;
- if (req->state >= HTTP_REQUEST_STATE_FINISHED)
- return;
+ i_assert(req->state == HTTP_REQUEST_STATE_ABORTED);
i_assert(req->delayed_error != NULL && req->delayed_error_status != 0);
http_client_request_send_error(req, req->delayed_error_status,
@@ -906,6 +907,7 @@
{
if (req->state >= HTTP_REQUEST_STATE_FINISHED)
return;
+ req->state = HTTP_REQUEST_STATE_ABORTED;
if (req->queue != NULL)
http_client_queue_drop_request(req->queue, req);
More information about the dovecot-cvs
mailing list