dovecot-2.2: lib-http: Minor API change: Added http_client_reque...

dovecot at dovecot.org dovecot at dovecot.org
Wed Feb 20 11:19:26 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/3bc84d6c9e8d
changeset: 15854:3bc84d6c9e8d
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Feb 20 11:18:59 2013 +0200
description:
lib-http: Minor API change: Added http_client_request_finish_payload()

diffstat:

 src/lib-http/http-client-request.c     |  22 ++++++++++++++++++----
 src/lib-http/http-client.h             |   4 +++-
 src/plugins/fts-solr/solr-connection.c |   2 +-
 3 files changed, 22 insertions(+), 6 deletions(-)

diffs (88 lines):

diff -r 5a068b9c04a9 -r 3bc84d6c9e8d src/lib-http/http-client-request.c
--- a/src/lib-http/http-client-request.c	Wed Feb 20 10:58:02 2013 +0200
+++ b/src/lib-http/http-client-request.c	Wed Feb 20 11:18:59 2013 +0200
@@ -176,7 +176,7 @@
 }
 
 static void
-http_client_request_finish_payload(struct http_client_request *req)
+http_client_request_finish_payload_out(struct http_client_request *req)
 {
 	if (req->payload_output != NULL) {
 		o_stream_unref(&req->payload_output);
@@ -187,7 +187,8 @@
 	http_client_request_debug(req, "Sent all payload");
 }
 
-int http_client_request_send_payload(struct http_client_request **_req,
+static int
+http_client_request_continue_payload(struct http_client_request **_req,
 	const unsigned char *data, size_t size)
 {
 	struct ioloop *prev_ioloop = current_ioloop;
@@ -208,7 +209,7 @@
 	if (data == NULL) {
 		req->payload_input = NULL;
 		if (req->state == HTTP_REQUEST_STATE_PAYLOAD_OUT)
-			http_client_request_finish_payload(req);
+			http_client_request_finish_payload_out(req);
 	} else { 
 		req->payload_input = i_stream_create_from_data(data, size);
 	}
@@ -255,6 +256,19 @@
 	return ret;
 }
 
+int http_client_request_send_payload(struct http_client_request **_req,
+	const unsigned char *data, size_t size)
+{
+	i_assert(data != NULL);
+
+	return http_client_request_continue_payload(_req, data, size);
+}
+
+int http_client_request_finish_payload(struct http_client_request **_req)
+{
+	return http_client_request_continue_payload(_req, NULL, 0);
+}
+
 int http_client_request_send_more(struct http_client_request *req)
 {
 	struct http_client_connection *conn = req->conn;
@@ -279,7 +293,7 @@
 			if (req->client->ioloop != NULL)
 				io_loop_stop(req->client->ioloop);
 		} else {
-			http_client_request_finish_payload(req);
+			http_client_request_finish_payload_out(req);
 		}
 
 	} else {
diff -r 5a068b9c04a9 -r 3bc84d6c9e8d src/lib-http/http-client.h
--- a/src/lib-http/http-client.h	Wed Feb 20 10:58:02 2013 +0200
+++ b/src/lib-http/http-client.h	Wed Feb 20 11:18:59 2013 +0200
@@ -84,9 +84,11 @@
 					      void *context);
 
 /* submits request and blocks until provided payload is sent. Multiple calls
-   are allowed; payload transmission is ended when data == NULL. */
+   are allowed; payload transmission is ended with
+   http_client_request_finish_payload(). */
 int http_client_request_send_payload(struct http_client_request **req,
 	const unsigned char *data, size_t size);
+int http_client_request_finish_payload(struct http_client_request **req);
 
 void http_client_switch_ioloop(struct http_client *client);
 
diff -r 5a068b9c04a9 -r 3bc84d6c9e8d src/plugins/fts-solr/solr-connection.c
--- a/src/plugins/fts-solr/solr-connection.c	Wed Feb 20 10:58:02 2013 +0200
+++ b/src/plugins/fts-solr/solr-connection.c	Wed Feb 20 11:18:59 2013 +0200
@@ -524,7 +524,7 @@
 	i_assert(conn->posting);
 
 	if (!post->failed) {
-		if (http_client_request_send_payload(&post->http_req, NULL, 0) <= 0 ||
+		if (http_client_request_finish_payload(&post->http_req) <= 0 ||
 			conn->request_status < 0) {
 			ret = -1;
 		}


More information about the dovecot-cvs mailing list