]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-http: Minor API change: Added http_client_request_finish_payload()
authorTimo Sirainen <tss@iki.fi>
Wed, 20 Feb 2013 09:18:59 +0000 (11:18 +0200)
committerTimo Sirainen <tss@iki.fi>
Wed, 20 Feb 2013 09:18:59 +0000 (11:18 +0200)
src/lib-http/http-client-request.c
src/lib-http/http-client.h
src/plugins/fts-solr/solr-connection.c

index 8be0acc9df88d2a3de3c0028f7b2da9e6c043b95..fa9446bdd913ac64eb944d3b48f9b0f519a63de8 100644 (file)
@@ -176,7 +176,7 @@ void http_client_request_submit(struct http_client_request *req)
 }
 
 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_finish_payload(struct http_client_request *req)
        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 @@ int http_client_request_send_payload(struct http_client_request **_req,
        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 @@ int http_client_request_send_payload(struct http_client_request **_req,
        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 @@ int http_client_request_send_more(struct http_client_request *req)
                        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 {
index 947fa06a3205cb53d0d5aee11da7fb45c1eea647..3ccb053c21ced1e1ae97efccb97fb21a44212600 100644 (file)
@@ -84,9 +84,11 @@ void http_client_request_set_destroy_callback(struct http_client_request *req,
                                              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);
 
index 4c836c352a290681e5792a36c5bac2f5018817b8..6ccbf24ac2427136930b1e08fd198f2be10b39ec 100644 (file)
@@ -524,7 +524,7 @@ int solr_connection_post_end(struct solr_connection_post *post)
        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;
                }