dovecot-2.2: lib-http server: Added http_server_request_get_resp...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Aug 5 14:24:43 UTC 2014
details: http://hg.dovecot.org/dovecot-2.2/rev/c9151da3a9b3
changeset: 17678:c9151da3a9b3
user: Timo Sirainen <tss at iki.fi>
date: Tue Aug 05 16:22:43 2014 +0200
description:
lib-http server: Added http_server_request_get_response()
Also make sure that only a single response can be created for a request.
diffstat:
src/lib-http/http-server-request.c | 6 ++++++
src/lib-http/http-server-response.c | 2 ++
src/lib-http/http-server.h | 6 ++++++
3 files changed, 14 insertions(+), 0 deletions(-)
diffs (51 lines):
diff -r 8bb726d6c5db -r c9151da3a9b3 src/lib-http/http-server-request.c
--- a/src/lib-http/http-server-request.c Tue Aug 05 16:09:44 2014 +0200
+++ b/src/lib-http/http-server-request.c Tue Aug 05 16:22:43 2014 +0200
@@ -93,6 +93,12 @@
return req->pool;
}
+struct http_server_response *
+http_server_request_get_response(struct http_server_request *req)
+{
+ return req->response;
+}
+
void http_server_request_halt_payload(struct http_server_request *req)
{
i_assert(req->state <= HTTP_SERVER_REQUEST_STATE_QUEUED);
diff -r 8bb726d6c5db -r c9151da3a9b3 src/lib-http/http-server-response.c
--- a/src/lib-http/http-server-response.c Tue Aug 05 16:09:44 2014 +0200
+++ b/src/lib-http/http-server-response.c Tue Aug 05 16:22:43 2014 +0200
@@ -41,6 +41,8 @@
{
struct http_server_response *resp;
+ i_assert(req->response == NULL);
+
resp = req->response = p_new(req->pool, struct http_server_response, 1);
resp->request = req;
resp->status = status;
diff -r 8bb726d6c5db -r c9151da3a9b3 src/lib-http/http-server.h
--- a/src/lib-http/http-server.h Tue Aug 05 16:09:44 2014 +0200
+++ b/src/lib-http/http-server.h Tue Aug 05 16:22:43 2014 +0200
@@ -65,6 +65,10 @@
const struct http_request *
http_server_request_get(struct http_server_request *req);
pool_t http_server_request_get_pool(struct http_server_request *req);
+/* Returns the response created for the request with
+ http_server_response_create(), or NULL if none. */
+struct http_server_response *
+http_server_request_get_response(struct http_server_request *req);
/* Send a failure response to the request with given status/reason. */
void http_server_request_fail(struct http_server_request *req,
unsigned int status, const char *reason);
@@ -78,6 +82,8 @@
void (*callback)(void *),
void *context);
+/* Start creating the response for the request. This function can be called
+ only once for each request. */
struct http_server_response *
http_server_response_create(struct http_server_request *req,
unsigned int status, const char *reason);
More information about the dovecot-cvs
mailing list