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